cobbler無人值守安裝CentOS7
cobbler是一個linux系統安裝的服務,可以通過網絡啟動(PXE)的方式來快速安裝,重裝物理服務器和虛擬機,同時還可以管理DHCP,DNS等。
cobbler可以使用命令行方式管理,也提供了基於web的界面管理工具(cobbler-web),還提供了Apl接口,可以方便二次開發使用。
cobbler是較早前的kickstart的升級版,優點是比較容易配置,還自帶web界面比較易於管理
cobbler下載及啟動
[root@Cobbler ~]# yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd python-django
[root@Cobbler ~]# systemctl start cobblerd.service
[root@Cobbler ~]# systemctl start httpd.service
根據檢查配置文件來修改cobbler配置文件
[root@Cobbler ~]# cobbler check
The following are potential configuration items that you may want to fix:
1 : The ‘server‘ field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
3 : change ‘disable‘ to ‘no‘ in /etc/xinetd.d/tftp
4 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run ‘cobbler get-loaders‘ to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a recent
5 : enable and start rsyncd.service with systemctl
6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to ‘cobbler‘ and should be changed, try: "openssl passwd -1 -salt ‘random-phrase-here‘ ‘your-password-here‘" to generate new one
8 : 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.
備份
[root@Cobbler ~]# cp /etc/cobbler/settings{,.ori}
快速修改配置文件
sed -i ‘s/server: 127.0.0.1/server: 172.16.1.202/‘ /etc/cobbler/settings
sed -i ‘s/next_server: 127.0.0.1/next_server: 172.16.1.202/‘ /etc/cobbler/settings
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
sed -ri "/default_password_crypted/s#(.: ).#\1\"openssl passwd -1salt‘oldboy‘‘123456‘
\"#"/etc/cobbler/settings
https://pan.baidu.com/s/1eTDUjT4
[root@Cobbler ~]# tar xfP cobbler_load_for_CentOS7.tar.gz
[root@Cobbler ~]# ls /var/lib/cobbler/loaders
COPYING.elilo COPYING.yaboot grub-x86_64.efi menu.c32 README
COPYING.syslinux elilo-ia64.efi grub-x86.efi pxelinux.0
[root@Cobbler ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@Cobbler ~]# systemctl start rsyncd
與備份文件對比
[root@Cobbler ~]# diff /etc/cobbler/settings{,.ori}
101c101
< default_password_crypted: "$1$oldboy$Npg9Pt9k98Mlg0ZeqHAuN1"
default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
242c242
< manage_dhcp: 1manage_dhcp: 0
272c272
< next_server: 172.16.1.202next_server: 127.0.0.1
292c292
< pxe_just_once: 1pxe_just_once: 0
384c384
< server: 172.16.1.202server: 127.0.0.1
修改dhcp配置文件
[root@Cobbler ~]# cp /etc/cobbler/dhcp.template{,.ori}
[root@Cobbler ~]# vim /etc/cobbler/dhcp.template
批量修改ip
:%s/192.168/172.16/g
21 subnet 172.16.1.0 netmask 255.255.255.0 {
22 option subnet-mask 255.255.255.0;
23 range dynamic-bootp 172.16.1.100 172.16.1.254;
24 default-lease-time 21600;
25 max-lease-time 43200;
26 next-server $next_server;
與備份文件對比
[root@Cobbler ~]# diff /etc/cobbler/dhcp.template{,.ori}
21c21,23
< subnet 172.16.1.0 netmask 255.255.255.0 {
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.5;
option domain-name-servers 192.168.1.1;
23c25
< range dynamic-bootp 172.16.1.100 172.16.1.254;range dynamic-bootp 192.168.1.100 192.168.1.254;
重啟服務
[root@Cobbler ~]# systemctl enable tftp.socket
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@Cobbler ~]# systemctl start tftp.socket
[root@Cobbler ~]# systemctl restart cobblerd.service
cobbler同步
[root@Cobbler ~]# cobbler sync
task started: 2018-01-09_094453_sync
task started (id=Sync, time=Tue Jan 9 09:44:53 2018)
running pre-sync triggers
cleaning trees
removing: /var/lib/tftpboot/grub/images
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
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.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
TASK COMPLETE
登錄cobbler的web界面
https://10.0.0.202/cobbler_web
虛擬機磁盤掛載
[root@Cobbler ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@Cobbler ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.6G 97G 2% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 135M 880M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
查看是否導入
[root@Cobbler ~]# ps -ef|grep rsync
root 11796 1 0 09:20 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 12205 11869 27 09:58 ? 00:00:03 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress
root 12206 12205 0 09:58 ? 00:00:00 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress
root 12207 12206 32 09:58 ? 00:00:04 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress
root 12217 10658 0 09:58 pts/0 00:00:00 grep --color=auto rsync
鏡像文件
[root@Cobbler ~]# ls /var/www/cobbler/ks_mirror/
CentOS7.4-x86_64 config
http://***@@httpserver@@***/cblr/links/CentOS7.4-x86_64 ==http://**10.0.0.202**/cblr/links/CentOS7.4-x86_64/
界面配置文件 可以修圖
[root@Cobbler ~]# cat /etc/cobbler/pxe/pxedefault.template
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.io/
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT $pxe_timeout_profile
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1
$pxe_menu_items
MENU end
不想要local可以修改
自定義安裝系統
Cobbler-CentOS-7-x86_64.cfg
Cobbler for Kickstart Configurator for CentOS 7 by yao zhang
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 1024
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
br/>@^minimal
br/>@core
br/>@development
chrony
dos2unix
kexec-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end
%post
systemctl disable postfix.service
%end
復制測試服務器物理地址--測試機(100G內存,2塊網卡eth0為NET ,eth1LAN區段為172.16.1.0/24)
MAC地址為測試機地址eth0與eth1不一樣
同步更新
打開測試機進行安裝
批量安裝的話
復制之後修改物理地址與ip,主機名
cobbler無人值守安裝CentOS7