cobbler網路裝機 原理分析 cobbler簡介 Cobbler通過將設置和管理一個安裝伺服器所涉及的任務集中在一起,從而簡化了系統配置。相當於Cobbler封裝了DHCP、TFTP、XINTED等服務,結合了PXE、kickstart等安裝方法,可以實現自動化安裝操作系統,並且可以同時提供多種 ...
cobbler網路裝機
原理分析
cobbler簡介
Cobbler通過將設置和管理一個安裝伺服器所涉及的任務集中在一起,從而簡化了系統配置。相當於Cobbler封裝了DHCP、TFTP、XINTED等服務,結合了PXE、kickstart等安裝方法,可以實現自動化安裝操作系統,並且可以同時提供多種版本,以實現線上安裝不同版本的系統。
cobbler相關服務
DHCP:DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個區域網的網路協議,使用UDP協議工作, 主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址,給用戶或者內部網路管理員作為對所有電腦作中央管理的手段。DHCP有3個埠,其中UDP67和UDP68為正常的DHCP服務埠,分別作為DHCP Server和DHCP Client的服務埠;546號埠用於DHCPv6 Client,而不用於DHCPv4,是為DHCP failover服務,這是需要特別開啟的服務,DHCP failover是用來做“雙機熱備”的。
TFTP:TFTP是一種比較特殊的文件傳輸協議。相對於FTP和目前經常使用的SFTP,TFTP是基於TCP/IP協議簇,用於進行簡單文件傳輸,提供簡單、低開銷的傳輸服務。TFTP的埠設置為69。
相對於常見的FTP,TFTP有兩個比較好的優勢:
- TFTP基於UDP協議,如果環境中沒有TCP協議,是比較合適的;
- TFTP執行和代碼占用記憶體量比較小;
預設情況下,Linux內部是安裝了tftp伺服器包的。但是預設是不啟動的。
PXE:預啟動執行環境(Preboot eXecution Environment,PXE,也被稱為預執行環境)提供了一種使用網路介面(Network Interface)啟動電腦的機制。這種機制讓電腦的啟動可以不依賴本地數據存儲設備(如硬碟)或本地已安裝的操作系統。
PXE當初是作為Intel的有線管理體系的一部分,Intel 和 Systemsoft於1999年9月20日公佈其規格(版本2.1)[1]。通過使用像網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協定(DHCP)、小型文件傳輸協議(TFTP)等幾種網路協議和全局唯一標識符(GUID)、通用網路驅動介面(UNDI)、通用唯一識別碼(UUID)的概念並通過對客戶機(通過PXE自檢的電腦)固件擴展預設的API來實現目的。
交互過程
- 裸機配置了從網路啟動後,開機後會廣播包請求DHCP伺服器(cobbler server)發送其分配好的一個IP
- DHCP伺服器(cobbler server)收到請求後發送responese,包括其ip地址
- 裸機拿到ip後再向cobbler server發送請求OS引導文件的請求
4.cobbler server告訴裸機OS引導文件的名字和TFTP server的ip和port - 裸機通過上面告知的TFTP server地址和port通信,下載引導文件
- 裸機執行執行該引導文件,確定載入信息,選擇要安裝的os,期間會再向cobbler server請求kickstart文件和os image
- cobbler server發送請求的kickstart和os iamge
- 裸機載入kickstart文件
- 裸機接收os image,安裝該os image
安裝部署
初始化環境
軟體:vmware workstation 14
操作系統: centos7.4-mini
關閉防火牆:
systemctl stop firewalld
systemctl disable firewalld
修改selinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
修改網卡配置文件:
BOOTPROTO=static
IPV6INIT=no
ONBOOT=YES
IPADDR=192.168.26.30
NETMASK=255.255.255.0
GATEWAY=192.168.26.2
DNS1=114.114.114.114
DNS2=8.8.8.8
添加yum源:
cd /etc/yum.repos.d
yum -y install epel-release
yum clean all
yum makecache
最後reboot,保存快照。
安裝需要的包
yum -y install httpd tftp xinetd pykickstart cobbler dhcp
systemctl start httpd cobblerd rsyncd
systemctl enable httpd cobblerd rsyncd
修改配置文件
cobbler主目錄在/etc/cobbler/settings
vim /etc/cobbler/settings
將server: 127.0.0.1修改為server: 192.168.26.30
將修改為next_server: 127.0.0.1修改為next_server: 192.168.26.30
將manage_dhcp: 0修改為manage_dhcp: 1 -->表示由cobbler來控 制dhcp
:x
修改tftp配置文件:/etc/xinetd.d/tftp
disabled後面改為no -->開機啟動
cobbler get-loaders -->下載補丁
修改dhcp:/etc/cobbler/dhcp.template
##此處提出正確配置
subnet 192.168.26.0 netmask 255.255.255.0 {
option routers 192.168.26.2;
option domain-name-servers 114.114.114.114; -->DNS,如果不寫後面在執行安裝後腳本會報錯
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.26.100 192.168.26.254;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
設置安裝操作系統的root密碼:
openssl passwd -1 -salt 'youdaoyun' 'youdaoyun'
將生成的隨機字元添加到cobbler配置文件中
將之前這行註釋掉替換成自己的密碼,如下圖
重啟應用
systemctl restart cobblerd xinetd
cobbler check -->檢查命令,一般還剩餘兩個,不用管
cobbler sync -->同步配置文件
上傳鏡像
選擇的是centos7-mini.iso包,後面有需要的東西可以寫在ks文件中
1.將iso包上傳到根目錄下
mkdir -p /data/centos7.4-mini
mount -o loop CentOS-7.4-x86_64-Minimall-1708.iso /data/centos7.4-mini/
使用df -h查看是否掛載成功
2.導入鏡像文件
cobbler import --path=/data/centos7.4-mini/ --name=CentOS_7.4_Mini --arch=x86_64
--path代表鏡像地址
--name代表當pxe啟動後選擇的哪個鏡像
--arch代表指定安裝源是64位
3.查看profile
cobbler profile list
4.查看profile的內容
cobbler profile report
5.將已經做好的ks文件修改為centos7_4.cfg上傳到/var/lib/cobbler/kickstarts/,等下會貼出來
6.自定義kickstart文件
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7_4.cfg
7.修改centos7內核,即網卡名
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kopts='net.ifnames=0 biosdevname=0'
8.修改完配置文件必須運行cobbler sync同步配置
ks文件
#Kickstart Configurator for cobbler by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth --useshadow --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%post
systemctl disable postfix.service
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum -y install vim net-tools
%end
啟動虛擬機測試
1.設置伺服器網路啟動,在vmware workstation中為按下電源時打開固件
2.DHCP獲取過程太快了,直接來到了cobbler的界面
選項1為從本地磁碟啟動,但是因為在vmware workstation中做的,預先載入了centos7的環境,所以即使你從本地磁碟啟動,也會是一個安裝操作系統的界面
選項2是我們剛剛做的,直接選擇第二個,然後等待安裝,在安裝完成後會關閉selinux、防火牆,並且安裝vim、net-tools工具包。
其餘配置:有時候需要標識企業信息或者個人信息,可以通過以下方式進行修改。
vim /etc/cobbler/pxe/pxedefault.template
將第二行的 Cobbler | http://cobbler.github.io/修改成你自己的標識
修改完配置文件後需要執行cobbler sync
由於該文檔直接由有道雲筆記拷貝過來,圖像是看不到的,還請見諒。