Cobbler 部署

时间:2021-06-11 13:42:04

环境介绍

Cobbler 操作系统: Centos-7.2-x86_64
Cobbler服务器地址: 10.90.0.10

部署 Cobbler

  1. 安装 Centos epel 原

    [root@node1 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

  2. 安装软件&启动服务

    [root@node1 ~]# yum install httpd dhcp tftp python-ctypes cobbler cobbler-web pykickstart fence-agents
    [root@node1 ~]# systemctl start cobblerd.service
    [root@node1 ~]# systemctl enable httpd
    [root@node1 ~]# systemctl start httpd
    # 下载cobbler相关组件
    [root@node1 ~]# cobbler get-loaders
    出现*** TASK COMPLETE ***字符表示下载成功
    检查需要修改的配置:由于不同的环境,提示会不一样,只需要安装提示内容一一解决即可
  3. 检查需要修改的配置:由于不同的环境,提示会不一样,只需要安装提示内容一一解决即可。

    [root@localhost ~]# cobbler check
    The following are potential configuration items that you may want to fix: 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
    2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
    3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
    4 : enable and start rsyncd.service with systemctl
    5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
    6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one Restart cobblerd and then run 'cobbler sync' to apply changes.
    解决第一个和第二个提示:设置cobbler地址和设置dhcp服务器地址
    [root@node1 ~]# vim /etc/cobbler/settings
    next_server: 10.90.0.10
    server: 10.90.0.10
    第三个和第四个提示解决:启动tftp和rsyncd服务
    [root@node1 ~]# yum -y install tftp-server xinetd
    启用tftp服务:
    [root@node1 ~]# vim /etc/xinetd.d/tftp
    disable = no
    启动xinetd服务:
    [root@node1 ~]# systemctl enable rsyncd.service
    [root@node1 ~]# systemctl enable xinetd
    [root@node1 ~]# systemctl start xinetd.service
    [root@node1 ~]# netstat -nulp | grep xinetd
    udp 0 0 0.0.0.0:69 0.0.0.0:* 3659/xinetd
    第5个可以不用解决 debian系统
    第六个提示解决:设置cobbler密码,同时也是安装服务器的登录密码
    [root@node1 ~]# openssl passwd -1 -salt 'Tczaflw@521' 'Tczaflw@521'
    $1$JM/i5ygv$cLMbz2ud00P6KI9XiEGj10
    修改cobbler把生成的密码放入配置文件
    [root@node1 ~]# vim /etc/cobbler/settings
    default_password_crypted: "$1$JM/i5ygv$cLMbz2ud00P6KI9XiEGj10"
    [root@node1 ~]# cobbler check
    只剩下5即可
  4. Cobbler管理DHCP服务器配置

    1. 编辑cobbler配置文件,开启cobbler管理dhcp

      [root@node1 ~]# vim /etc/cobbler/settings
      manage_dhcp: 1
    2. 编辑cobbler的dhcp管理模版,设置dhcp分配的网段,网管,dns信息

      [root@node1 ~]# vim /etc/cobbler/dhcp.template
      subnet 10.90.0.0 netmask 255.255.0.0 {
      option routers 10.90.0.10;
      option domain-name-servers 114.114.114.114;
      option subnet-mask 255.255.0.0;
      range dynamic-bootp 10.90.0.100 10.90.0.200;
    3. 同步cobbler配置:同步之前先重启cobbler保证所有配置生效

      [root@node1 ~]# systemctl restart cobblerd.service
      [root@node1 ~]# cobbler sync
  5. Cobbler导入镜像

    1. 挂载iso文件到系统

      [root@node1 ~]# mount /dev/cdrom /mnt
    2. 导入镜像文件到cobbler

      cobbler import --path=/mnt/ --name=Centos-7.2-x86_64 --arch=x86_64
      task started: 2016-11-19_170133_import
      task started (id=Media import, time=Sat Nov 19 17:01:33 2016)
      Found a candidate signature: breed=redhat, version=rhel6
      Found a candidate signature: breed=redhat, version=rhel7
      Found a matching signature: breed=redhat, version=rhel7
      Adding distros from path /var/www/cobbler/ks_mirror/Centos-7.2-x86_64:
      creating new distro: Centos-7.2-x86_64
      trying symlink: /var/www/cobbler/ks_mirror/Centos-7.2-x86_64 -> /var/www/cobbler/links/Centos-7.2-x86_64
      creating new profile: Centos-7.2-x86_64
      associating repos
      checking for rsync repo(s)
      checking for rhn repo(s)
      checking for yum repo(s)
      starting descent into /var/www/cobbler/ks_mirror/Centos-7.2-x86_64 for Centos-7.2-x86_64
      processing repo at : /var/www/cobbler/ks_mirror/Centos-7.2-x86_64
      need to process repo/comps: /var/www/cobbler/ks_mirror/Centos-7.2-x86_64
      looking for /var/www/cobbler/ks_mirror/Centos-7.2-x86_64/repodata/*comps*.xml
      Keeping repodata as-is :/var/www/cobbler/ks_mirror/Centos-7.2-x86_64/repodata
      *** TASK COMPLETE ***
    3. 查看cobbler已经有了一个安装源;使用如下命令可以获取到cobbler命令详细报表

      [root@node1 ~]# cobbler profile list
      Centos-7.2-x86_64
      [root@node1 ~]# cobbler profile report
      Name : Centos-7.2-x86_64
      TFTP Boot Files : {}
      Comment :
      DHCP Tag : default
      Distribution : Centos-7.2-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
      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. centos7的自动安装ks 文件---CentOS-7.2-x86_64.cfg

      #Kickstart Configurator for cobbler by Jason Zhao
      #platform=x86, AMD64, or Intel EM64T
      #System language
      lang en_US
      #System keyboard
      keyboard us
      #Sytem timezone
      timezone Asia/Shanghai
      #Root password
      rootpw --iscrypted $default_password_crypted #cobbler 配置文件中的密码
      #Use text mode install
      text
      #Install OS instead of upgrade
      install
      #Use NFS installation Media
      url --url=$tree # URL地址(也就是安装源)设置为$tree表示自动获取;
      #System bootloader configuration
      bootloader --location=mbr
      #Clear the Master Boot Record
      zerombr
      #Partition clearing information
      clearpart --all --initlabel
      #Disk partitioning information
      part / --fstype="xfs" --size=3072
      part /boot --fstype="xfs" --size=500
      part /software --fstype="xfs" --grow --size=1
      #System authorization infomation
      auth --useshadow --enablemd5
      #Network information
      $SNIPPET('network_config') # 网卡配置也无须手动配置而是由cobbler进行配置。
      #network --bootproto=dhcp --device=em1 --onboot=on
      # Reboot after installation
      reboot
      #Firewall configuration
      firewall --disabled
      #SELinux configuration
      selinux --disabled
      #Do not configure XWindows
      skipx
      #Package install information
      %pre
      $SNIPPET('log_ks_pre')
      $SNIPPET('kickstart_start')
      $SNIPPET('pre_install_network_config')
      # Enable installation monitoring
      $SNIPPET('pre_anamon')
      %end %packages --nobase
      @ core
      %end %post
      systemctl disable postfix.service
      %end
    5. 修改Centos-7.2-x86_64的kickstart文件

      [root@node1 ~]# cobbler profile edit --name Centos-7.2-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.2-x86_64.cfg
      [root@node1 ~]# cobbler profile report | grep Kickstart
      Kickstart : /var/lib/cobbler/kickstarts/CentOS-7.2-x86_64.cfg
      Kickstart Metadata : {}
      在装机时设置Centos7网卡为eth0
      [root@node1 ~]# cobbler profile edit --name=Centos-7.2-x86_64 --kopts='net.ifnames=0 biosdevname=0'
      设置完成使用cobbler sync进行同步配置
  6. 配置 cobbler_web
     Cobbler 部署

  7. 测试安装-成功
    Cobbler 部署