cobbler

  • cobbler已关闭评论
  • 147 次浏览
  • A+
所属分类:linux技术
摘要

管理distro安装一个空壳centos8的虚拟机,不需要给镜像
进来后就发现可以自动获取ip选择我们刚才上传的镜像

正在安装包

安装完成,登录查看ip


cobbler部署

#先关闭防火墙和selinux [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 //cobbler服务,selinux必须得是disabled状态,所以要重启 [root@localhost ~]# vim /etc/selinux/config  SELINUX=disabled  #配置yum源 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# rm -rf * [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo [root@localhost yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #配置epel源 [root@localhost yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm [root@localhost yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* [root@localhost yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*   #安装cobbler以及相关的软件 [root@localhost ~]# yum module list | grep cobbler cobbler              3               default [d]                              Versatile Linux deployment server cobbler              3.3             default [d]                              Versatile Linux deployment server  [root@localhost ~]# yum -y module enable cobbler:3 [root@localhost ~]# yum -y install httpd dhcp* tftp tftp-server cobbler cobbler-web pykickstart rsync rsync-daemon  #设置服务开机自启动 [root@localhost ~]# systemctl enable --now httpd [root@localhost ~]# systemctl enable --now rsyncd [root@localhost ~]# systemctl enable --now tftp [root@localhost ~]# systemctl enable --now cobblerd  #修改server的ip地址为本机ip [root@localhost ~]# sed -i 's/^server: 127.0.0.1/server: 192.168.111.139/' /etc/cobbler/settings.yaml  #修改tftp的ip地址为本机ip [root@localhost ~]# sed -i 's/^next_server: 127.0.0.1/next_server: 192.168.111.139/' /etc/cobbler/settings.yaml  #生成加密的密码 [root@localhost ~]# openssl passwd -1 -salt "$RANDOM" 'cobbler123' $1$19347$.N/4En3JI0k2gUp8mvULQ/  #将新生成的加密密码加入到配置文件 [root@localhost ~]# vim /etc/cobbler/settings.yaml default_password_crypted: "$1$19347$.N/4En3JI0k2gUp8mvULQ/"			//修改为刚生成的加密的密码  #将cobbler的dhcp功能打开 [root@localhost ~]# sed -i "s#manage_dhcp: false#manage_dhcp: true#" /etc/cobbler/settings.yaml [root@localhost ~]# grep 'manage_dhcp:' /etc/cobbler/settings.yaml manage_dhcp: true  #重启cobbler [root@localhost ~]# systemctl restart cobblerd  #通过cobbler check 核对当前设置是否有问题 [root@localhost ~]# cobbler check The following are potential configuration items that you may want to fix:  1: SELinux is enabled. Please review the following wiki page for details on ensuring Cobbler works correctly in your SELinux environment:     https://github.com/cobbler/cobbler/wiki/Selinux 2: some network boot-loaders are missing from /var/lib/cobbler/loaders. If you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, and yaboot. 3: reposync is not installed, install yum-utils or dnf-plugins-core 4: yumdownloader is not installed, install yum-utils or dnf-plugins-core 5: debmirror package is not installed, it will be required to manage debian deployments and repositories 6: fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them  Restart cobblerd and then run 'cobbler sync' to apply changes.  #问题1解决办法: [root@localhost ~]# yum -y install syslinux* [root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/ [root@localhost ~]# cp /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/ [root@localhost ~]# ls /var/lib/cobbler/loaders/ menu.c32  pxelinux.0  #问题2和问题三的解决办法: [root@localhost ~]# yum -y install yum-utils  #问题4和问题5可以忽略, 因为是debian系统才需要解决,显示使用的是centos8 Debian系统解决办法安装fence-agents  #配置DHCP模板文件 [root@localhost ~]# vim /etc/cobbler/dhcp.template  23 subnet 192.168.111.0 netmask 255.255.255.0 {  24      option routers             192.168.111.255;  25      option domain-name-servers 8.8.8.8;  26      option subnet-mask         255.255.255.0;  27      range dynamic-bootp        192.168.111.100 192.168.111.110;  28      default-lease-time         21600;  29      max-lease-time             43200;  30      next-server                $next_server;  #同步cobbler配置 [root@localhost ~]# systemctl restart httpd cobblerd [root@localhost ~]# cobbler sync task started: 2022-09-24_163754_sync task started (id=Sync, time=Sat Sep 24 16:37:54 2022) running python triggers from /var/lib/cobbler/triggers/task/sync/pre/* running shell triggers from /var/lib/cobbler/triggers/task/sync/pre/* shell triggers finished successfully running pre-sync triggers cleaning trees removing: /var/lib/tftpboot/grub/system removing: /var/lib/tftpboot/grub/system_link removing: /var/lib/tftpboot/grub/images copying bootloaders running: ['rsync', '-rpt', '--copy-links', '--exclude=.cobbler_postun_cleanup', '/var/lib/cobbler/loaders/', '/var/lib/tftpboot'] received on stdout:  received on stderr:  running: ['rsync', '-rpt', '--copy-links', '--exclude=README.grubconfig', '/var/lib/cobbler/grub_config/', '/var/lib/tftpboot'] received on stdout:  received on stderr:  copying distros to tftpboot copying images generating PXE configuration files generating PXE menu structure rendering DHCP files generating /etc/dhcp/dhcpd.conf cleaning link caches running post-sync triggers running python triggers from /var/lib/cobbler/triggers/sync/post/* running python trigger cobbler.modules.sync_post_restart_services running: dhcpd -t -q received on stdout:  received on stderr:  running: service dhcpd restart received on stdout:  received on stderr: Redirecting to /bin/systemctl restart dhcpd.service  running shell triggers from /var/lib/cobbler/triggers/sync/post/* shell triggers finished successfully running python triggers from /var/lib/cobbler/triggers/change/* running python trigger cobbler.modules.scm_track running python trigger cobbler.modules.managers.genders running shell triggers from /var/lib/cobbler/triggers/change/* shell triggers finished successfully *** TASK COMPLETE *** 

管理distro

#挂载镜像 [root@localhost ~]# mount /dev/cdrom /mnt/ mount: /mnt: WARNING: device write-protected, mounted read-only.  #导入镜像 [root@localhost ~]# cobbler import --path=/mnt/ --name=zxr arch=x86_64 task started: 2022-09-24_164154_import task started (id=Media import, time=Sat Sep 24 16:41:54 2022) running python triggers from /var/lib/cobbler/triggers/task/import/pre/* running shell triggers from /var/lib/cobbler/triggers/task/import/pre/* shell triggers finished successfully Found a candidate signature: breed=redhat, version=rhel8 Found a matching signature: breed=redhat, version=rhel8 Adding distros from path /var/www/cobbler/distro_mirror/zxr: creating new distro: zxr-x86_64 trying symlink: /var/www/cobbler/distro_mirror/zxr -> /var/www/cobbler/links/zxr-x86_64 creating new profile: zxr-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/distro_mirror/zxr for zxr-x86_64 processing repo at : /var/www/cobbler/distro_mirror/zxr/AppStream need to process repo/comps: /var/www/cobbler/distro_mirror/zxr/AppStream looking for /var/www/cobbler/distro_mirror/zxr/AppStream/repodata/*comps*.xml Keeping repodata as-is :/var/www/cobbler/distro_mirror/zxr/AppStream/repodata processing repo at : /var/www/cobbler/distro_mirror/zxr/BaseOS need to process repo/comps: /var/www/cobbler/distro_mirror/zxr/BaseOS looking for /var/www/cobbler/distro_mirror/zxr/BaseOS/repodata/*comps*.xml Keeping repodata as-is :/var/www/cobbler/distro_mirror/zxr/BaseOS/repodata *** TASK COMPLETE ***  #查看cobbler镜像列表 [root@localhost ~]# cobbler list distros:    zxr-x86_64  profiles:    zxr-x86_64  systems:  repos:  images:  mgmtclasses:  packages:  files:  #查看详细信息 [root@localhost ~]# cobbler distro report --name zxr-x86_64 Name                           : zxr-x86_64 Architecture                   : x86_64 Automatic Installation Template Metadata : {'tree': 'http://@@http_server@@/cblr/links/zxr-x86_64'} TFTP Boot Files                : {} Boot loader                    : grub Breed                          : redhat Comment                        :  Fetchable Files                : {} Initrd                         : /var/www/cobbler/distro_mirror/zxr/images/pxeboot/initrd.img Kernel                         : /var/www/cobbler/distro_mirror/zxr/images/pxeboot/vmlinuz Kernel Options                 : {} Kernel Options (Post Install)  : {} Management Classes             : [] OS Version                     : rhel8 Owners                         : ['admin'] Redhat Management Key          :  Remote Boot Initrd             : ~ Remote Boot Kernel             : ~ Template Files                 : {}  #创建kickstarts自动安装脚本(文件以.ks结尾,勿tab) [root@localhost ~]# cobbler profile get-autoinstall --name zxr-x86_64 > /var/lib/cobbler/templates/zxr.ks #对脚本进行修改 [root@localhost ~]# vim /var/lib/cobbler/templates/zxr.ks  .......................... firewall --disable				//关闭防火墙 ......................... %packages @^minimal-environment			//设置为最小化  #查看一下 [root@localhost ~]# cat /var/lib/cobbler/templates/zxr.ks # Sample kickstart file for current EL, Fedora based distributions.  #platform=x86, AMD64, or Intel EM64T # System authorization information auth  --useshadow  --enablemd5 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # 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=http://192.168.111.139/cblr/links/zxr-x86_64 # If any cobbler repo definitions were referenced in the kickstart profile, include them here. repo --name=source-1 --baseurl=http://192.168.111.139/cobbler/distro_mirror/zxr/AppStream repo --name=source-2 --baseurl=http://192.168.111.139/cobbler/distro_mirror/zxr/BaseOS  # Network information network --bootproto=dhcp --device=eth0 --onboot=on    # Reboot after installation reboot  #Root password rootpw --iscrypted $1$19347$.N/4En3JI0k2gUp8mvULQ/ # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System timezone timezone  America/New_York # Install OS instead of upgrade install # Clear the Master Boot Record zerombr # Allow anaconda to partition the system as needed autopart  %pre set -x -v exec 1>/tmp/ks-pre.log 2>&1  # Once root's homedir is there, copy over the log. while : ; do     sleep 10     if [ -d /mnt/sysimage/root ]; then         cp /tmp/ks-pre.log /mnt/sysimage/root/         logger "Copied %pre section log to system"         break     fi done &    # Enable installation monitoring  %end  %packages @^minimal-environment  %post --nochroot set -x -v exec 1>/mnt/sysimage/root/ks-post-nochroot.log 2>&1  %end  %post set -x -v exec 1>/root/ks-post.log 2>&1  # Start yum configuration curl "http://192.168.111.139/cblr/svc/op/yum/profile/zxr-x86_64" --output /etc/yum.repos.d/cobbler-config.repo  # End yum configuration    # Start post_install_network_config generated code # End post_install_network_config generated code  # Start download cobbler managed config files (if applicable) # End download cobbler managed config files (if applicable)  # Start koan environment setup echo "export COBBLER_SERVER=192.168.111.139" > /etc/profile.d/cobbler.sh echo "setenv COBBLER_SERVER 192.168.111.139" > /etc/profile.d/cobbler.csh # End koan environment setup  $SNIPPET('redhat_register') # Begin cobbler registration # cobbler registration is disabled in /etc/cobbler/settings.yaml # End cobbler registration  # Enable post-install boot notification  # Start final steps  curl "http://192.168.111.139/cblr/svc/op/autoinstall/profile/zxr-x86_64" -o /root/cobbler.ks # End final steps %end  #如果是真实环境,那么部署就已经完成,如果是虚拟机就还需执行以下步骤 [root@localhost ~]# cd /usr/share/cobbler/bin/ [root@localhost bin]# ls migrate-data-v2-to-v3.py  migrate-settings.sh  mkgrub.sh  settings-migration-v1-to-v2.sh [root@localhost bin]# bash mkgrub.sh  [root@localhost bin]# cd /var/lib/cobbler/loaders/ [root@localhost loaders]# ll total 72 drwxr-xr-x. 2 root root    79 Sep 24 16:57 grub lrwxrwxrwx. 1 root root    31 Sep 24 16:57 ldlinux.c32 -> /usr/share/syslinux/ldlinux.c32 -rw-r--r--. 1 root root 26272 Sep 24 16:31 menu.c32 -rw-r--r--. 1 root root 42376 Sep 24 16:31 pxelinux.0  #进行同步 [root@localhost loaders]# cobbler sync  #重启服务 [root@localhost loaders]# systemctl restart httpd cobblerd rsyncd dhcpd 

进行测试

安装一个空壳centos8的虚拟机,不需要给镜像
进来后就发现可以自动获取ip选择我们刚才上传的镜像
cobbler
正在安装包
cobbler
安装完成,登录查看ip