zoukankan      html  css  js  c++  java
  • Cobbler自动化部署

    一、Cobbler服务的介绍

    Cobbler是一个免费开源系统安装部署软件,用于自动化网络安装操作系统

    Cobbler集成了DNS DHCP软件包更新,以及配置管理,方便操作系统安装自动化

    Cobbler支持命令行管理,WEB界面管理,同时提供API接口便于二次开发

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

    1.1    cobbler设计模式

    1)    发行版(distro): 表示操作系统。它承载了内核和initrd引导程序

    2)    存储库(repository): 保存yum缓存文件的镜像仓库

    3)    配置文件(profile):定义操作系统的发行版的ks配置文件,也包含内核参数信息等

    4)    系统(system):主要配置网络接口, 固定IP以及MAC地址

    1.2 cobbler运行流程

    1)    DHCP服务分配IP地址

    2)    Client(获取IP地址、Next_server IP地址)

    3)    Next_server(获取启动内核、initrd等文件)

    4)    tftp (PXE引导文件、启动Cobbler选择界面)

    5)    kickstart (确定加载项,根据NFS,httpd,ftp等共享)

    二、cobbler服务的安装

    2.1基础环境准备

    # 将主机名称修改为cobbler
    hostnamectl set-hostname cobbler
    # uname -r
    3.10.0-327.el7.x86_64

    # cobbler的本机IP # ifconfig eth0 | awk -F '[: ]+' 'NR==2 {print $3}'
    192.168.7.7
    # 关闭selinux
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 # 关闭NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld

    2.2 安装cobbler相关软件并启动服务

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum install cobbler cobbler-web dhcp tftp rsync pykickstart httpd xinetd -y
    
    systemctl start httpd
    systemctl start cobblerd
    systemctl enable httpd
    systemctl enable cobblerd

    服务相关目录介绍:

    # 配置文件概述  /etc/cobbler                     
    /etc/cobbler/settings             # cobbler主配置文件
    /etc/cobbler/dhcp.template        # DHCP服务的配置模板
    /etc/cobbler/tftpd.template       # tftp服务的配置模板
    /etc/cobbler/rsync.template       # rsync服务的配置模板
    /etc/cobbler/iso                  # iso模板配置文件目录
    /etc/cobbler/pxe                  # pxe模板文件目录
    /etc/cobbler/power                # 电源的配置文件目录
    /etc/cobbler/users.conf           # web访问的用户名密码配置文件
    /etc/cobbler/users.digest         # 用于web访问的用户名密码配置文件
    /etc/cobbler/dnsmasq.template     # DNS服务的配置模板
    /etc/cobbler/modules.conf         # cobbler模板配置文件
    
    # cobbler数据目录 /var/lib/cobbler
    /var/lib/cobbler/config           # 配置文件
    /var/lib/cobbler/kickstarts       # 默认存放kickstart文件
    /var/lib/cobbler/loaders          # 存放的各种引导程序
    /var/www/cobbler                  # 系统安装镜像目录
    /var/www/cobbler/ks_mirror        # 导入的系统镜像列表
    /var/www/cobbler/images           # 导入的系统镜像启动文件
    /var/www/cobbler/repo_mirror      # yum源存储目录
    /var/log/cobbler/install.log      # 客户端系统安装日志
    /var/log/cobbler/cobbler.log      # cobbler日志

    2.3 执行cobbler check,将列出的配置项进行修复。

    cobbler check

     2.3.1 按第1、2项的提示修改配置文件(以下两种方法任选其一,使用sed进行替换也可以)

    # 1.手动进行修改,server和next_server为本机IP
    # vim /etc/cobbler/settings
    server: 192.168.7.7
    next_server: 192.168.7.7
    
    # 2.可以使用cobbler setting命令动态修改,需要先将allow_dynamic_settings设置为1
    # vim /etc/cobbler/settings +26
    allow_dynamic_settings: 1
    # 重启cobblerd服务后,再动态修改
    systemctl restart cobblerd
    cobbler setting edit --name=server --value=192.168.7.7
    cobbler setting edit --name=next_server --value=192.168.7.7

    2.3.2 按第3步提示,修改tftp的配置

    sed -i 's#disable = yes#disable = no#g' /etc/xinetd.d/tftp

    2.3.3 按第4步的提示,执行cobbler get-loaders下载网络需要执行文件

    cobbler get-loaders

    2.3.4 按第5步提示,启动rsyncd服务

    systemctl start rsyncd
    systemctl enable rsyncd

    2.3.5 按第7步提示,使用openssl生成用户名和密码,并粘贴到配置文件当中。

    openssl passwd -1 -salt 'cobbler' 'cobbler'
    $1$cobbler$M6SE55xZodWc9.vAKLJs6.
    # vim /etc/cobbler/settings +30
    default_password_crypted: $1$cobbler$M6SE55xZodWc9.vAKLJs6.

    2.3.6 安装软件包和电源管理包

    yum install debmirror fence-agents -y

    2.3.7 修改/etc/debmirror配置

    安装完成后执行cobber check,有如下提示

      需要注释@dists和@arches两行内容:

    # vim /etc/debmirror.conf
    #@dists="sid";
    @sections="main,main/debian-installer,contrib,non-free";
    #@arches="i386";

    2.3.8 重启cobbler服务并同步信息,有如下提示则完成配置

    systemctl restart cobbler
    cobbler sync

     2.4 修改配置让cobbler管理dhcp

    # vim /etc/cobbler/settings +60
    manage_dhcp: 1
    
    # 配置dhcp模板文件,修改网关、DNS、子网掩码、DHCP地址池。
    # vim /etc/cobbler/dhcp.template
    # 如下图配置完成后重启服务
    systemctl restart xinetd
    systemctl restart cobbler cobbler sync

     三、Cobbler基础应用

    cobbler使用第一步要定义distro,如果已经有OS镜像安装文件,使用import方式导入

    定义发生版本CentOS6CentOS7,修改kickstart文件(默认文件/var/lib/cobbler/kickstarts/default.ks

    3.1 在VMware Workstation 上面挂载CentOS7.2的系统镜像

    # 在系统内挂载CentOS7系统ISO光盘
    mount /dev/cdrom /mnt/
    
    # 如果使用的是KVM虚拟机,则需要把镜像文件拷贝到虚拟机内进行挂载
    mount CentOS-7.2-x86_64-DVD-1511.iso /mnt/

    3.2 CentOS7.2镜像导入到cobbler

    cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64
    
    # 不指定kickstart,可以自定义ks文件,选择不同的KS文件进行安装。
    --path    镜像路径
    --name  安装源定义名称
    --arch    指定操作系统平台是32/64位
    Cobbler会将镜像中的所有的文件拷贝到本地一份,存放到如下目录中:
    /var/www/cobbler/ks_mirror/CentOS-7-x86_64/

     

      3.3 修改CentOS-7-x86_64默认的ks文件

    # 由于默认的ks文件是/var/lib/cobbler/kickstarts/sample_end.ks,无法满足我们的需求,所以要自定义ks文件,下面的命令进行修改:
    cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-x86_64.cfg
    
    # CentOS7 ks文件的内容
    cat /var/lib/cobbler/kickstarts/centos7-x86_64.cfg 
    #Kickstart Configurator by leon
    #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
    #rootpw --iscrypted $1$cobbler$M6SE55xZodWc9.vAKLJs6.
    #Use text mode install
    text
    #Install OS instead of upgrade
    install
    #Use NFS installation Media
    url --url=$tree
    #url --url=http://192.168.7.7/CentOS-7.2-x86_64
    #System bootloader configuration
    bootloader --location=mbr
    #Clear the Master Boot Record
    zerombr
    #Partition clearing information
    clearpart --all --initlabel 
    #Disk partitioning information        注:如果是KVM虚拟机,磁盘类型为vda,还需要注意swap分区的大小
    part /boot --fstype xfs --size 1024 --ondisk sda
    part swap --size 10240 --ondisk sda
    part / --fstype xfs --size 1 --grow --ondisk sda
    #System authorization infomation
    auth  --useshadow  --enablemd5 
    #Network information
    $SNIPPET('network_config')
    #network --bootproto=dhcp --device=eth0 --onboot=on
    # Reboot after installation
    reboot
    #Firewall configuration
    firewall --disabled 
    #SELinux configuration
    selinux --disabled
    #Do not configure XWindows
    skipx
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    %end
    
    
    #Package install information
    
    %packages
    @base
    @core
    sysstat
    iptraf
    ntp
    lrzsz
    ncurses-devel
    openssl-devel
    zlib-devel
    OpenIPMI-tools
    nmap
    screen
    %end
    
    %post
    systemctl disable postfix.service
    $yum_config_stanza
    %end

    查看是否修改后的结果

    3.4 将CentOS7默认网卡名称修改为eth0

    # 增加内核参数
    cobbler profile edit --name CentOS-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'

     3.5 可制作两个不同版本的系统,再定义一个Centos6.5的镜像

    umount /dev/cdrom
    mount /dev/cdrom /mnt/

      3.6 将CentOS6.5的镜像导入cobbler当中

     cobbler import --path=/mnt/ --name=CentOS-6-x86_64 --arch=x86_64

     

     3.7 修改CentOS6.5的默认KS文件

    cobbler profile edit --name=CentOS-6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Cobbler-CentOS-6.5-x86_64.cfg
    systemctl restart xinetd
    systemctl restart cobbler cobbler sync
    cat /var/lib/cobbler/kickstarts/Cobbler-CentOS-6.5-x86_64.cfg #platform=x86, AMD64, or Intel EM64T # System authorization information auth --useshadow --enablemd5 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel #partition information 注:如果是KVM虚拟机,磁盘类型为vda,还需要注意swap分区的大小 part /boot --fstype ext4 --size 1024 --ondisk sda part swap --size=2048 part / --fstype ext4 --size 1 --grow --ondisk sda # Use text mode install text # Firewall configuration firewall --disable # Run the Setup Agent on first boot firstboot --disable # System keyboard keyboard us # System language lang en_US # Use network installation url --url=$tree # If any cobbler repo definitions were referenced in the kickstart profile, include them here. $yum_repo_stanza # Network information $SNIPPET('network_config') # Reboot after installation reboot #Root password rootpw --iscrypted $default_password_crypted # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System timezone timezone Asia/Shanghai # Install OS instead of upgrade install # Clear the Master Boot Record zerombr %packages @base @compat-libraries @debugging @development tree nmap sysstat lrzsz dos2unix telnet %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %post %end

    3.8 创建空的虚拟机使用PXE的方式启动,进行安装系统。

      四、客户端自动重装

    使用epel源安装koan软件

    yum install koan -y
    koan --replace-self --server=192.168.7.7 --profile=CentOS-7-x86_64
    reboot

    重启后会自动进行安装

     

      五、自定义仓库

    仓库所在的位置

    5.1 添加一个zabbix的阿里源

    cobbler repo add --name=zabbix3.4 --mirror=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ --arch=x86_64 --breed=yum

    5.2 查看已添加的源,并向本地同步软件

    cobbler repo list
       zabbix3.4 
    cobbler reposync

    # 删除已添加的源
    cobbler repo remove --name=zabbix3.4

      5.3 把源加入report的配置文件当中

    cobbler profile edit --name=CentOS-7-x86_64 --repos=zabbix3.4

     还要确认ks文件中是否配置有yum_config_stanza这一行

     5.4 待安装系统的时候会安装添加上源的配置文件

    安装软件的时候就会自动到仓库中下载

     5.5 还需要定时同步 cobbler的软件包

    echo "0 0 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >>/var/spool/cron/root

    六、修改cobbler默认显示的页面

    vim /etc/cobbler/pxe/pxedefault.template

     七、cobbler自定义安装

    由于kickstart指定某台服务器使用某个具体的ks文件比较复杂,所以引用cobbler就变得非常简单。通过物理MAC地址来区分。

    Cobbler system主要目的配置网络接口,通过system指定服务器MAC地址来固定机器的IP、掩码、网关、DNS、主机名等实现基础环境的标准化。

    7.1 安装前规划

    MAC:    00:50:56:22:3F:00
    IP:     192.168.7.10
    子网:    255.255.255.0
    网关:    192.168.7.2
    DNS:    114.114.114.114
    主机名称:linux-leon1.com
    系统版本:CentOS 7.2

    7.2 上机有MAC地址是通过VM来获取到的,如果是物理机,则验收的时候就可以拿到MAC地址

    # cobbler profile list
       CentOS-6-x86_64
       CentOS-7-x86_64
    # cobbler system add --name=linux-leon1.com --mac=00:50:56:22:3F:00 --profile=CentOS-7-x86_64 --ip-address=192.168.7.10 --subnet=255.255.255.0 --gateway=192.168.7.2 
    --interface=eth0 --static=1 --hostname=linux-leon1.com --name-servers='114.114.114.114' # cobbler system list linux-leon1.com # cobbler system report # cobbler sync

     

     7.3 启动虚拟机,自动进行安装操作。

    虚拟机已经起来,查看下配置

     

  • 相关阅读:
    authentication与网站安全验证
    Android 不一样的原生分享
    iOS学习笔记——AutoLayout的约束
    积累一下SQL
    关于数据链接底层
    减少生成的dll数量
    iOS学习笔记——使用ChildViewController
    iOS学习笔记——键盘处理
    iOS学习笔记——触控与手势
    iOS学习笔记——多控制器管理
  • 原文地址:https://www.cnblogs.com/cyleon/p/11460061.html
Copyright © 2011-2022 走看看