cobbler自動安裝系統(Centos7.X)

環境:html

[root@kickstart ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@kickstart ~]# uname -r
3.10.0-693.el7.x86_64
[root@kickstart ~]# getenforce
Disabled
[root@kickstart ~]# systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@kickstart ~]# hostname -I
10.0.0.201 172.16.1.201

前言

cobbler安裝比較簡單,主要是網頁操做,點點點,相對於PXE+kickstart網絡安裝更簡單。python

若是你們不瞭解PXE+kickstart網絡安裝系統過程原理的話,建議你們去看看我寫的 <PXE+kickstart網絡安裝CentOS7.4系統及過程當中各類報錯>   <-- 快戳我linux

cobbler安裝

一、下載cobbler及相關軟件

[root@Cobbler ~]# yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd

二、檢查更改配置

注意:CentOS7上須要啓動httpd服務和cobbler服務才能檢查web

[root@Cobbler ~]# systemctl start cobblerd.service httpd.service
[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.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
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* 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, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
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.

根據這些檢查條目,進行更改相關的檢查項

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 -1 -salt 'oldboy' '123456'`\"#" /etc/cobbler/settings
sed -i 's#yes#no#' /etc/xinetd.d/tftp

systemctl start rsyncd
systemctl enable rsyncd
systemctl enable tftp.socket
systemctl start tftp.socket 
systemctl restart cobblerd.service

修改dhcp模板配置文件

sed -i.ori 's#192.168.1#172.16.1#g;22d;23d' /etc/cobbler/dhcp.template

同步全部配置

注意:不一樣步會報錯shell

[root@Cobbler ~]# cobbler sync
task started: 2017-11-15_101915_sync
task started (id=Sync, time=Wed Nov 15 10:19:15 2017)
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使用操做

博主使用虛擬機操做vim

https://10.0.0.202/cobbler_web    瀏覽器訪問網址
帳號密碼默認均爲cobbler

導入鏡像(import DVD)

 說明:首先虛擬機保證下列以操做瀏覽器

 

根據鏡像位置,進行掛載

由於鏡像位置寫的mnt,因此要將鏡像掛載到mnt下
[root@Cobbler pxelinux.cfg]# mount /dev/cdrom /mnt/
[root@Cobbler pxelinux.cfg]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        98G  5.8G   93G   6% /
devtmpfs        902M     0  902M   0% /dev
tmpfs           912M     0  912M   0% /dev/shm
tmpfs           912M  8.7M  903M   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    15923      1  0 09:49 ?    00:00:00 /usr/bin/rsync --daemon --no-detach
root    17237  15973 15 10:53 ?    00:00:03 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress
root    17238  17237  0 10:53 ?    00:00:00 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress
root    17239  17238 11 10:53 ?    00:00:02 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress

 ks文件組成

命令段

    install開頭,到%prebash

包組段

    以%packages開頭,以%end結束網絡

腳本段

    以%post開頭,以%end結束,在安裝完系統以後執行的相關Linux命令、腳本app

    以%pre開頭,以%end結束,在安裝完系統以前執行的相關Linux命令、腳本

kickstart文件語法檢查

下載語法檢查軟件

yum install pykickstart -y

檢查命令

[root@CentOS7 tftpboot]# ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg 
說明:請記住這個驗證工具備其侷限性。Kickstart 文件可能會很複雜;ksvalidator 可保證其語法正確,且該文件不包含淘汰的選項,但它沒法保證安裝會成功。它也不會嘗試驗證 Kickstart 文件的 %pre、%post 和 %packages 部分。

root加密密碼生成

密碼:123456

[root@CentOS7 ~]# python -c 'import crypt; print(crypt.crypt("123456"))'
$6$02PfimLMqN53z6Io$ov2Xbjm7ZC36X2tFvqnI0HymvqMY0vI/UOCxze0L/zMX722PkDJOz/JTWwVHaksawGf/bfR0k3GCpubodKTdV0

CentOS7的ks文件添加

CentOS7 ks文件內容

# 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
@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
ks文件內容

關於ks文件內容的詳解在我寫的 <PXE+kickstart網絡安裝CentOS7.4系統及過程當中各類報錯> 裏有解釋

修改鏡像變量屬性

 

自定義安裝系統

 

相關文章
相關標籤/搜索