zoukankan      html  css  js  c++  java
  • cobbler自动安装系统

    一、简介

    Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。

    Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

    Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

    二、cobbler提供的功能

    使用 Cobbler,您无需进行人工干预即可安装机器。Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP 和 TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler 可以:

    l  使用一个以前定义的模板来配置 DHCP 服务(如果启用了管理 DHCP)

    l  将一个存储库(yum 或 rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统

    l  在 DHCP 配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP 和 MAC 地址)

    l  在 TFTFP 服务目录下创建适当的 PXE 文件

    l  重新启动 DHCP 服务以反映更改

    l  重新启动机器以开始安装(如果电源管理已启用)

    安装环境:centos 7

    首先关闭防火墙和selinux

    [root@localhost ~]#systemctl stop firewalld

    [root@localhost ~]#setenforce 0

    1、安装centos 7 yum源

    [root@localhost ~]#rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

    2、安装cobbler工具

    [root@localhost ~]#yum install  httpd dhcp cobbler-web xinetd cobbler pykickstart tftp -y

    3、启动并检查和进行初始操作

    [root@localhost ~]#systemctl start cobblerd

    [root@localhost ~]#systemctl start httpd

    [root@localhost ~]#systemctl start xinetd

    [root@localhost ~]#cobbler check

     

    根据提示一步步完成,然后重启cobbler

    3.1、在/etc/cobbler/settings文件第384行

    server: 127.0.0.1改成server: 192.168.56.133(本机ip)

    3.2、在/etc/cobbler/settings文件第272行

    next_server: 127.0.0.1改成192.168.56.133(本机ip)

    3.3、在/etc/xinetd.d/tftp文件里

    disable= yes改成disable= no

    3.4、生成cobbler默认密码,然后

    [root@linux-node2 ~]# openssl passwd -1 -salt 'cobbler' 'cobbler'

    $1$cobbler$M6SE55xZodWc9.vAKLJs6.

    3.5、在etc/cobbler/settings第101行,

    default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."修改成刚生成的        密码default_password_crypted: "$1$cobbler$M6SE55xZodWc9.vAKLJs6."

    3.6、启动rsync服务

    systemctl start rsyncd

    3.7、执行cobbler get-loaders命令下载相关的文件

     

    3.8、重启cobbler并在此检测

    [root@localhost ~]#systemctl restart cobblerd

    [root@localhost ~]#cobbler check

     

    这三项可以不用管

    3.9、让cobbler来管理dhcp

    在/etc/cobbler/settings文件第242行

    manage_dhcp:0改成manage_dhcp:1即可

    然后修改cobbler的dhcp模版文件在自动生成dhcp文件

    路径:/etc/cobbler/dhcp.template

    只需修改如下几行即可(修改成自己的网段等)

    subnet 192.168.56.0 netmask 255.255.255.0 {

         option routers             192.168.56.2;

         option domain-name-servers 192.168.56.2;

         option subnet-mask         255.255.255.0;

         range dynamic-bootp        192.168.56.100 192.168.56.254;

    3.10、重启cobbler及cobbler check

    [root@localhost ~]#systemctl restart cobblerd

    [root@localhost ~]#cobbler check   #自动生成dhcp文件并重启dhcp

    可以看到是由cobbler在管理dhcp

     

    4、镜像导入

    4.1、挂载镜像

    [root@localhost ~]#mount /dev/cdrom /mnt

    mount: /dev/sr0 is write-protected, mounting read-only

    4.2、导入(会把镜像导入到/var/www/cobbler/ks_mirror/目录下)

    [root@localhost ~]#cobbler import --path=/mnt/ --name=centos-7-x86_64 --arch=x86_64

     

    4.3、cobbler profile 指令

    [root@localhost ~]#  cobbler profile

    usage

    =====

    cobbler profile add

    cobbler profile copy

    cobbler profile dumpvars

    cobbler profile edit

    cobbler profile find

    cobbler profile getks

    cobbler profile list

    cobbler profile remove

    cobbler profile rename

    cobbler profile report

    可以看到 cobbler profile的各指令

    [root@localhost ~]# cobbler profile list

       centos-7-x86_64

    可以看到有几个镜像

    [root@localhost ~]# cobbler profile report

    Name                           : centos-7-x86_64

    TFTP Boot Files                : {}

    Comment                        :

    DHCP Tag                       : default

    Distribution                   : centos-7-x86_64

    Enable gPXE?                   : 0

    Enable PXE Menu?               : 1

    Fetchable Files                : {}

    Kernel Options                 : {}

    Kernel Options (Post Install)  : {}

    Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks      #默认的ks路径

    Kickstart Metadata             : {}

    Management Classes             : []

    Management Parameters          : <<inherit>>

    Name Servers                   : []

    Name Servers Search Path       : []

    Owners                         : ['admin']

    Parent Profile                 :

    Internal proxy                 :

    Red Hat Management Key         : <<inherit>>

    Red Hat Management Server      : <<inherit>>

    Repos                          : []

    Server Override                : <<inherit>>

    Template Files                 : {}

    Virt Auto Boot                 : 1

    Virt Bridge                    : xenbr0

    Virt CPUs                      : 1

    Virt Disk Driver Type          : raw

    Virt File Size(GB)             : 5

    Virt Path                      :

    Virt RAM (MB)                  : 512

    Virt Type                      : kvm

    可以看到各镜像的详细信息

    4.3、加载自定义的ks文件

    [root@localhost ~]#cobbler profile edit --name=centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg

    4.4、修改centos7内核参数把网卡变成eth模式

    [root@localhost ~]#cobbler profile edit --name=centos-7-x86_64  --kopts='net.ifnames=0 biosdevname=0'

    4.5、运行cobbler sync更新配置即可

    [root@localhost ~]#cobbler sync

    4.6、重新创建个虚拟机启动,看到如下表示ok的,就会自动安装了

     

    注:ks文件内容如下

    lang en_US

    keyboard us

    timezone Asia/Shanghai

    rootpw --iscrypted $default_password_crypted

    text

    install

    url --url=$tree

    bootloader --location=mbr

    zerombr

    clearpart --all --initlabel

    part /boot --fstype xfs --size 1024 --ondisk sda

    part / --fstype xfs --size 1 --grow --ondisk sda

    auth --useshadow --enablemd5

    $SNIPPET('network_config')

    reboot

    firewall --disabled

    selinux --disabled

    skipx

    %pre

    $SNIPPET('log_ks_pre')

    $SNIPPET('kickstart_start')

    $SNIPPET('pre_install_network_config')

    $SNIPPET('pre_anamon')

    %end

    %packages

    @base

    @core

    sysstat

    iptraf

    ntp

    lrzsz

    ncurses-devel

    openssl-devel

    zlib-devel

    OpenIPMI-tools

    nmap

    screen

    %end

    %post

    systemctldisable postfix.service

    $yum_config_stanza

    %end

  • 相关阅读:
    Flex的 Event中属性currentTarget与target的差别
    考研复试机试题(2010)
    Android应用性能优化之使用SparseArray替代HashMap
    机房收费重构版总结
    中英文对照 —— 缩略词
    NLP(paper + code)
    NLP(paper + code)
    优化与凸优化初始
    优化与凸优化初始
    工具类与工具函数 —— 素数相关
  • 原文地址:https://www.cnblogs.com/guigujun/p/6581086.html
Copyright © 2011-2022 走看看