Cobbler Install CentOS实现

snow chuai汇总、整理、撰写---2021/05/29


1. 配置与实现Cobbler Server
1) 安装工具
[root@srv ~]# yum install epel-release -y
[root@srv ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
[root@srv ~]# yum --enablerepo=epel install cobbler cobbler-web dhcp \ tftp-server pykickstart httpd rsync xinetd -y
2) 配置cobbler服务 [root@srv ~]# vim /etc/cobbler/settings ...... ...... # 242行,定义使用Cobbler DHCP服务 manage_dhcp: 1 ...... ...... # 修改278行,定义tftp_server所在的IP next_server: 192.168.1.11 ...... ...... # 修改390行,定义Cobbler Server所监听的IP server: 192.168.1.11
3) 开启相关服务 [root@srv ~]# systemctl enable --now httpd [root@srv ~]# systemctl enable --now cobblerd
4) 设定部署机器的root密码 # -1的参数为阿拉伯数字1,不是L # 指令格式为: openssl passwd -1 -salt "密码" "确认密码" [root@srv ~]# openssl passwd -1 -salt "123456" "123456" # 赋值输出的密码 $1$123456$wOSEtcyiP2N/IfIl15W6Z0
[root@srv ~]# vim /etc/cobbler/settings ...... ...... # 修改101行,修改密码字段为所生成的密码 default_password_crypted: "$1$123456$wOSEtcyiP2N/IfIl15W6Z0" ...... ......
[root@srv ~]# systemctl restart cobblerd
5) 启动rsync服务 [root@srv ~]# systemctl enable --now rsyncd
6) 配置tftp服务 [root@srv ~]# /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
[root@srv ~]# systemctl enable --now xinetd
7) 配置coobler dhcp服务 [root@srv ~]# vim /etc/cobbler/dhcp.template ...... ...... # 修改dhcp中的subnet、routers、domain-name-servers、dynamic-bootp字段改为自己所需的配置 subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option domain-name-servers 192.168.1.10; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.1.250 192.168.1.253; ...... ......
8) 同步coobler服务相关配置 [root@srv ~]# cobbler sync task started: 2021-05-29_145513_sync task started (id=Sync, time=Sat May 29 14:55:13 2021) running pre-sync triggers cleaning trees removing: /var/lib/tftpboot/grub/images copying bootloaders trying hardlink /usr/share/syslinux/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0 trying hardlink /usr/share/syslinux/menu.c32 -> /var/lib/tftpboot/menu.c32 trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk copying distros to tftpboot copying images generating PXE configuration files generating PXE menu structure rendering DHCP files generating /etc/dhcp/dhcpd.conf rendering TFTPD files generating /etc/xinetd.d/tftp 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/* running python triggers from /var/lib/cobbler/triggers/change/* running python trigger cobbler.modules.manage_genders running python trigger cobbler.modules.scm_track running shell triggers from /var/lib/cobbler/triggers/change/* *** TASK COMPLETE ***
[root@srv ~]# systemctl restart dhcpd
2. 创建镜像并实现自动安装CentOS
1) 挂载iso作为镜像的源
[root@srv ~]# mkdir /mnt/cdrom
[root@srv ~]# mount ./CentOS-7-x86_64-Minimal-2009.iso /mnt/cdrom
mount: /dev/loop0 is write-protected, mounting read-only
2) 导入镜像 [root@srv ~]# cobbler import --path=/mnt/cdrom --name=CentOS79 task started: 2021-05-29_150622_import task started (id=Media import, time=Sat May 29 15:06:22 2021) 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/CentOS79: creating new distro: CentOS79-x86_64 trying symlink: /var/www/cobbler/ks_mirror/CentOS79 -> /var/www/cobbler/links/CentOS79-x86_64 creating new profile: CentOS79-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/CentOS79 for CentOS79-x86_64 processing repo at : /var/www/cobbler/ks_mirror/CentOS79 need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS79 looking for /var/www/cobbler/ks_mirror/CentOS79/repodata/*comps*.xml Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS79/repodata *** TASK COMPLETE ***
3) 列示镜像 [root@srv ~]# # cobbler list distros: CentOS79-x86_64
profiles: CentOS79-x86_64
systems:
repos:
images:
mgmtclasses:
packages:
files:
4) 重启cobblerd服务并同步 [root@srv ~]# systemctl restart cobblerd
[root@srv ~]# cobbler sync task started: 2021-05-29_150832_sync task started (id=Sync, time=Sat May 29 15:08:32 2021) running pre-sync triggers cleaning trees removing: /var/www/cobbler/images/CentOS79-x86_64 removing: /var/lib/tftpboot/pxelinux.cfg/default removing: /var/lib/tftpboot/grub/efidefault removing: /var/lib/tftpboot/grub/images removing: /var/lib/tftpboot/images/CentOS79-x86_64 removing: /var/lib/tftpboot/s390x/profile_list copying bootloaders copying distros to tftpboot copying files for distro: CentOS79-x86_64 trying hardlink /var/www/cobbler/ks_mirror/CentOS79/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS79-x86_64/vmlinuz trying hardlink /var/www/cobbler/ks_mirror/CentOS79/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS79-x86_64/initrd.img copying images generating PXE configuration files generating PXE menu structure copying files for distro: CentOS79-x86_64 trying hardlink /var/www/cobbler/ks_mirror/CentOS79/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS79-x86_64/vmlinuz trying hardlink /var/www/cobbler/ks_mirror/CentOS79/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS79-x86_64/initrd.img Writing template files for CentOS79-x86_64 rendering DHCP files generating /etc/dhcp/dhcpd.conf rendering TFTPD files generating /etc/xinetd.d/tftp processing boot_files for distro: CentOS79-x86_64 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/* running python triggers from /var/lib/cobbler/triggers/change/* running python trigger cobbler.modules.manage_genders running python trigger cobbler.modules.scm_track running shell triggers from /var/lib/cobbler/triggers/change/* *** TASK COMPLETE ***
6) 验证Web是否可以正常访问 [浏览器]---http://192.168.1.11/cobbler/ks_mirror/
5) 带有pxe的客户端测试





3. 开启Cobbler Web
1) 访问Cobbler Web
[浏览器]===>https://$Cobbler-Server/cobbler_web
账户名:cobbler 密码:cobbler
2) 修改Cobbler Web访问账户 [root@srv ~]# cd /etc/cobbler [root@srv cobbler]# mv users.digest users.digest.bak
# 定义访问账户为snow [root@srv1 cobbler]# htdigest -c /etc/cobbler/users.digest Cobbler snow Adding password for snow in realm Cobbler. New password: # 设定密码 Re-type new password:
4. 实现Kickstar--无人值守安装
1) 为root账户设定密码
[root@srv ~]# python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
Password: 
$6$4tCH/1ulw.7qp3Zk$axtsbfd7Guvv6ck7JjBXRzGhUN96Nn.dlESSKW6oEkXK3ydIbl8mhoLRb8MtdWiWW.Cpgz1c2sRSZbxNhGDrY/
2) 创建kickstar应答文件 [root@srv ~]# cd /var/lib/cobbler/kickstarts/ [root@srv kickstarts]# vim CentOS79.ks install # 自动执行所有步骤 autostep # 安装完成后重启 reboot # 加密算法 auth --enableshadow --passalgo=sha512 # 安装源 url --url="http://192.168.1.11/cobbler/ks_mirror/CentOS79/" # 安装的硬盘 ignoredisk --only-use=sda # 定义键盘类型 keyboard --vckeymap=us --xlayouts='us' # 定义本地语言及字符集编码 lang zh_CN.UTF-8 # 定义网络类型及主机名 network --bootproto=dhcp --ipv6=auto --activate --hostname=localhost # 定义root账户的密码 rootpw --iscrypted $6$4tCH/1ulw.7qp3Zk$axtsbfd7Guvv6ck7JjBXRzGhUN96Nn.dlESSKW6oEkXK3ydIbl8mhoLRb8MtdWiWW.Cpgz1c2sRSZbxNhGDrY/ # 加载服务启动项--chronyd服务 services --enabled="chronyd" # 定义时区,并设定ntp server timezone Asia/Shanghai --isUtc --ntpservers=1.cn.pool.ntp.org,2.cn.pool.ntp.org # 系统引导方式 bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # 初始化所有的分区信息 clearpart --none --initlabel # 磁盘分区的划分及名称分配(40G硬盘) part /boot --fstype="ext4" --ondisk=sda --size=1024 part pv.307 --fstype="lvmpv" --ondisk=sda --size=39935 volgroup c7_base --pesize=4096 pv.307 logvol swap --fstype="swap" --size=1024 --name=swap --vgname=c7_base logvol / --fstype="ext4" --size=38907 --name=root --vgname=c7_base
# 所要安装的软件包 %packages @^infrastructure-server-environment @base @core chrony kexec-tools
%end

3) 查看默认的ks # Cobbler中Profile默认使用的ks为/var/lib/cobbler/kickstarts/sample_end.ks [root@srv kickstarts]# cobbler profile report | grep "Kickstart" | head -1 Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks
4) 修改关联的ks [root@srv kickstarts]# cobbler profile edit --name=CentOS79-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS79.ks
[root@srv kickstarts]# cobbler profile report | grep "Kickstart" | head -1 Kickstart : /var/lib/cobbler/kickstarts/CentOS79.ks
[root@srv kickstarts]# systemctl restart cobblerd 5) 测试

 

如对您有帮助,请随缘打个赏。^-^

gold