美文网首页Linux科技
cobbler自动批量安装操作系统

cobbler自动批量安装操作系统

作者: Miracle001 | 来源:发表于2018-10-31 10:20 被阅读1次
    环境
    cat /etc/redhat-release 
    uname -r
    getenforce 
    systemctl status firewalld
    hostname -I
    yum repolist
    
    
    1
    2
    yum安装cobbler
    yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
    cobbler依赖epel源下载
    
    3
    cobbler语法检查前先启动http和cobbler
    systemctl start httpd
    systemctl start cobblerd
    
    进行语法检查
    cobbler check
    
    4
    解决报错问题
    解决问题1-2
    
    # 备份
    cp /etc/cobbler/settings /etc/cobbler/settings.bak
    
    # 修改server参数的值为提供cobbler服务的主机相应的IP地址或主机名
    sed -i 's/server: 127.0.0.1/server: 192.168.25.101/' /etc/cobbler/settings 
    
    # 修改next_server参数的值为提供PXE服务的主机相应的IP地址
    sed -i 's/next_server: 127.0.0.1/next_server: 192.168.25.101/' /etc/cobbler/settings
    
    解决问题3
    
    # 修改tftp配置文件
    sed -i 's#yes#no#' /etc/xinetd.d/tftp
    
    systemctl start tftp.socket
    systemctl enable tftp.socket
    
    解决问题4
    
    下载所需的软件包
    cobbler get-loaders
    ls /var/lib/cobbler/loaders/
    
    5
    解决问题5
    
    # 启动rsync服务
    systemctl start rsyncd
    systemctl enable rsyncd
    
    解决问题6
    debian相关无需修改
    
    解决问题7
    
    # 修改安装完成后的root密码
    sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'fgq' '123456'`\"#" /etc/cobbler/settings
    
    
    # 启用cobbler的DHCP管理
    sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
    
    # 防止重装
    sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
    
    # 修改DHCP模板
    sed -i.ori 's#192.168.1#192.168.25#g;22d;23d' /etc/cobbler/dhcp.template
    
    # cobbler组配置文件的位置
    
    # 修改完成之后要进行同步,否则不生效
    cobbler sync
    cobbler check
    
    6 7
    # 重启所有服务
    systemctl restart httpd.service
    systemctl restart cobblerd.service
    systemctl restart dhcpd.service
    systemctl restart rsyncd.service
    systemctl restart tftp.socket
    
    ss -ntl
    25151--cobblerd
    873--rsyncd
    443/80--httpd
    
    
    8
    web界面访问并导入镜像
    注意是https,IP地址是服务器的IP
    浏览器:https://192.168.25.101/cobbler_web
    账号和密码默认都是cobbler
    如图9-10
    
    9
    10
    在虚拟机上添加镜像
    
    11
    挂载镜像
    mount /dev/cdrom /mnt/
    df -h|grep mnt
    
    12
    进入web界面导入镜像
    选择Import DVD  
    输入Prefix(文件前缀)----CentOS7.4
    选择Arch(版本)--根据自己要导入的镜像来选择----x86_64
    Breed(品牌)----Rad Hat based
    Path(要从什么地方导入)----/mnt/
    在导入镜像的时候要注意路径,防止循环导入
    信息配置好后,点击run,即可进行导入
    
    点击run后,如下图14
    
    13 14
    导入过程使用rsync进行导入的,所以看rsync三个进程消失表示导入完毕
    ps -ef|grep rsync
    
    15
    点击Events,查看日志
    State:如果是running--表示正在导入
    
    16
    导入后生成的文件夹
    ll /var/www/cobbler/ks_mirror/
    
    17
    空白虚拟机安装centos系统
    创建一台空白虚拟机,进行测试网路安装
    注意:虚拟机的内存不能小于2G,网卡的配置要保证网络互通
    
    # 启动虚拟机
    启动虚拟机即可发现会有cobbler的选择界面
    如下图18
    
    选择CentOS7.4即可进行安装,安装过程与光盘安装一致,这里就不在复述。
    
    18
    安装完成
    root--123456
    
    重启网络服务(其他不用更改)
    systemctl restart network
    ping www.qq.com  可以访问网络
    
    19
    20
    21
    定制化安装操作系统
    选择Distros--查看导入的镜像
    点击edit
    
    1
    在内核参数中添加net.ifnames=0 biosdevname=0
    目的:能够让显示的网卡变为eth0 ,而不是CentOS7中的ens33
    修改完成后点击保存
    
    2
    选择Profiles,查看镜像属性
    
    3
    选择"Kickstart Templates"
    再选择"Create New Kickstart File"
    
    4
    配置文件名---->CentOS-7-x86_64.cfg
    添加ks文件--如下--CentOS-7 ks配置文件
    创建完成后点击Save进行保存
    
    CentOS-7 ks配置文件--参考
    
    # Cobbler for Kickstart Configurator for CentOS 7 by fgq
    install
    url --url=$tree
    text
    lang en_US.UTF-8
    keyboard us
    zerombr
    bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
    #Network information
    $SNIPPET('network_config')
    #network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7
    timezone --utc Asia/Shanghai
    authconfig --enableshadow --passalgo=sha512
    rootpw  --iscrypted $default_password_crypted
    clearpart --all --initlabel
    part /boot --fstype xfs --size 1024
    part swap --size 2048
    part / --fstype xfs --size 1 --grow
    firstboot --disable
    selinux --disabled
    firewall --disabled
    logging --level=info
    reboot
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    %end
    
    %packages
    @^minimal
    @compat-libraries
    @core
    @debugging
    @development
    bash-completion
    chrony
    dos2unix
    kexec-tools
    lrzsz
    nmap
    sysstat
    telnet
    tree
    vim
    wget
    %end
    
    %post
    systemctl disable postfix.service
    %end
    
    5
    自定义安装系统
    
    选择"systems" 
    再选择"Create New System" 创建一个新的系统
    
    6
    定义系统信息
    Name--cobbler中文件名称
    Profile--选择镜像
    Kickstart--选择之前定义的ks文件
    
    7
    配置全局网络信息
    Hostname--主机名
    Gateway--网关
    Name Servers--DNS
    
    8
    配置网卡信息,eth0
    需要注意,选择static静态
    
    9
    虚拟机查看或自动生成mac地址
    
    10
    以上的所有配置完成后,点击Save进行保存
    
    cobbler web界面说明
    
    11
    开启虚拟机
    
    12 13
    安装完成后测试
    注意:这方法安装
    文件系统没有使用逻辑卷
    不用重启,就可以ping通网络
    
    14
    eth0没有IP地址的原因是其配置文件ONBOOT=no
    
    15
    vi /etc/sysconfig/network-scripts/eth0
    ONBOOT=no  把no改为yes
    
    systemctl restart network
    ip a  eth0有IP地址了
    
    image.png
    cobbler常见错误
    printf: write error: No space left on device
    原因是虚拟机内存不足2G,将虚拟机内存调整为2G即可。(此错误只会出现在CentOS7.3之上)
    
    [root@Cobbler ~]# cobbler sync
    Traceback (most recent call last):
      File "/usr/bin/cobbler", line 36, in <module>
        sys.exit(app.main())
      File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 662, in main
        rc = cli.run(sys.argv)
      File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 269, in run
        self.token         = self.remote.login("", self.shared_secret)
      File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__
        return self.__send(self.__name, args)
      File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in __request
        verbose=self.__verbose
      File "/usr/lib64/python2.7/xmlrpclib.py", line 1273, in request
        return self.single_request(host, handler, request_body, verbose)
      File "/usr/lib64/python2.7/xmlrpclib.py", line 1306, in single_request
        return self.parse_response(response)
      File "/usr/lib64/python2.7/xmlrpclib.py", line 1482, in parse_response
        return u.close()
      File "/usr/lib64/python2.7/xmlrpclib.py", line 794, in close
        raise Fault(**self._stack[0])
    xmlrpclib.Fault: <Fault 1: "<class 'cobbler.cexceptions.CX'>:'login failed'">
    
    解决办法
    
    systemctl restart httpd.service
    systemctl restart cobblerd.service
    cobbler check
    
    参考文章:
    https://blog.csdn.net/admin_root1/article/details/78911718
    

    相关文章

      网友评论

        本文标题:cobbler自动批量安装操作系统

        本文链接:https://www.haomeiwen.com/subject/pmiwtqtx.html