# 第一部分:配置chrony服務器 # 安裝chront軟件包 yum install -y chrony # 編輯配置文件 cat > /etc/chrony.conf << EOF server 1.centos.pool.ntp.org server ntp.aliyun.com server cn.pool.ntp.org stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 1.0 3 allow 192.168.0.0/24 logdir /var/log/chrony EOF # 當即啓動chrony服務而且設置爲開機啓動 systemctl start --now chronyd # 校準時間 chronyc tracking # 第二部分:配置chrony客戶端 yum install -y chrony # 192.168.0.12是剛纔配置好的chrony cat > /etc/chrony.conf << EOF server 192.168.0.12 stratumweight 0 driftfile /var/lib/chrony/drift rtcsync logdir /var/log/chrony EOF systemctl start --now chronyd chronyc tracking
# 實驗條件 # 一、使用最小化安裝方式進行安裝並且沒有進行配置的CentOS7系統 # 二、虛擬化軟件爲VMWare Workstation Pro 16 # 三、關閉VMWare軟件NAT網絡自帶的DHCP服務 # 四、虛擬機開機前提早掛載好CentOS7系統的ISO鏡像文件 # 五、本次實驗選擇大小超過4DB的ISO鏡像文件,直接額外安裝一些經常使用軟件 # 六、全部命令均以root身份執行 # 七、用於測試自動化安裝系統的虛擬機使用的內存不能低於2G # 配置靜態IP、DNS等網絡參數實現正常聯網 nmcli con add con-name static \ ifname ens33 autoconnect yes type ethernet \ ip4 192.168.0.13/24 gw4 192.168.0.2 nmcli con up static echo 'nameserver 192.168.0.2' > /etc/resolv.conf ip route add 192.168.0.0/24 via 192.168.0.2 dev ens33 systemctl restart NetworkManager # 安裝相關軟件 yum install -y epel-release yum install -y dhcp cobbler cobbler-web pykickstart xinetd systemctl enable --now xinetd httpd dhcpd cobblerd tftp # 修改Cobbler的配置文件 # 此處的192.168.0.13是剛纔配置的本機IP # 「cobbler get-loaders」命令可否正常下載文件取決於實際的網絡情況 # 若是不能正常下載相關文件,須要配置proxy_url,也就是代理服務器的ip地址和端口 # proxy_url是提供代理服務的主機地址,是爲了讓「cobbler get-loaders」命令正常下載文件 sed -i 's/^server: 127.0.0.1/server: 192.168.0.13/' /etc/cobbler/settings sed -i 's/^next_server: 127.0.0.1/next_server: 192.168.0.13/' /etc/cobbler/settings sed -i 's@^proxy_url_ext:.*@proxy_url_ext: "http://192.168.0.1:12333"@' /etc/cobbler/settings sed -i 's@manage_dhcp: 0@manage_dhcp: 1@' /etc/cobbler/settings # 下載必要的文件 cobbler get-loaders # 設置xinetd服務接管tftp cat > /etc/xinetd.d/tftp << EOF 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 } EOF systemctl enable rsyncd systemctl restart cobblerd # 此時執行「cobbler check」命令應該至少會看見兩處須要配置的項目 # 這兩個項目與Cobbler實現自動化安裝系統無關,能夠忽略 cobbler check # 配置Cobble接管DHCP服務和相關的參數 sed -i.bak '21,25d' /etc/cobbler/dhcp.template sed -i '20a \ subnet 192.168.0.0 netmask 255.255.255.0 { \ option routers 192.168.0.2; \ option domain-name-servers 192.168.0.2; \ option subnet-mask 255.255.255.0; \ range dynamic-bootp 192.168.0.50 192.168.0.200; \ ' /etc/cobbler/dhcp.template systemctl restart cobblerd.service cobbler sync > /dev/null && echo OK systemctl status dhcpd # 導入ISO鏡像文件 mount /dev/cdrom /mnt cobbler import --path=/mnt --name=Centos-7.8 --arch=x86_64 cobbler list # 編輯kickstart文件 cat > /var/lib/cobbler/kickstarts/Centos7.8-x86_64.cfg << EOF auth --enableshadow --passalgo=sha512 # graphical text ignoredisk --only-use=sda keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 network --bootproto=dhcp --device=ens33 --ipv6=auto --activate url --url="\$tree" rootpw --iscrypted \$6\$PZQDlNOAE8CoR6dc\$DRTjMEghl6nB8W1m0hEjxGKHnWAvT3LOVFdYe2eC8atpAiFRpnC0hvT4Jleb31hXU1IezHMoMSo4RugErz8Ya0 selinux --disabled firewall --disabled firstboot --disable services --disabled="chronyd" reboot timezone Asia/Shanghai --isUtc --nontp user --groups=wheel --name=admin --password=\$6\$c.zcA6c8hLkmAy54\$uRnJPM9J/40FfbuyMwLhpjU.DF9bWpeG6TYD8K6ijLQECbLyBuEq12nsgNzfpJ3ai4xAJfk9PYUDUuNB8MfNR. --iscrypted --gecos="admin" bootloader --location=mbr --boot-drive=sda zerombr clearpart --all --initlabel part swap --fstype="swap" --ondisk=sda --size=2048 part /boot --fstype="ext4" --ondisk=sda --size=488 part / --fstype="xfs" --ondisk=sda --size=17943 %packages @^minimal @core @"Development Tools" vim-enhanced lrzsz net-tools bash-completion lsof wget %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end EOF # 導入ks文件 cobbler profile edit --name Centos-7.8-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos7.8-x86_64.cfg cobbler validateks cobbler sync
在配置好Cobbler服務後,若是再進行變動配置參數好比修改kickstart文件,須要執行「cobbler sync」命令。
完成新建一個用於測試的虛擬機以後,必須手動將選項調整到「Centos-7.8-86_64」這一行。以下圖所示:linux