Linux自動化運維之Cobbler(快速入門)NO.1

Cobbler介紹
Cobbler是一個Linux服務器快速網絡安裝的服務,而且在經過調整也可以支持網絡安裝windows,該工具使用python開發,小巧輕便(才15k行python代碼),可以通過網絡啓動(PXE)的方式來快速安裝、重裝物理服務器和虛擬機,同時還可以管理DHCP,DNS,TFTP、RSYNC以及yum倉庫、構造系統ISO鏡像。

Cobbler可以使用命令行方式管理,也提供了基於Web的界面管理工具,還提供了API接口,可以方便二次開發使用。

Cobbler客戶端Koan支持虛擬機安裝和操作系統重新安裝,使重裝系統更便捷。

官網:http://cobbler.github.io/

Cobbler各主要組件關係圖
Linux自動化運維之Cobbler(快速入門)NO.1
Cobbler設計模式

1.發⾏版(distro): 表示操作系統。它承載了內核和initrd引導程序
2.存儲庫(repository): 保存yum緩存⽂件的鏡像倉庫
3.配置⽂件(profile):定義操作系統的發⾏版的ks配置⽂件,也包含內核參數信息等
4.系統(system):主要配置⽹絡接⼝, 固定IP以及MAC地址 distro->profile-system(可選)

Cobbler運⾏流程

1.DHCP服務分配IP地址
2.Client(獲取IP地址、Next_server IP地址)
3.Next_server(PXE引導⽂件、啓動Cobbler選擇界⾯)
4.tftp(獲取啓動內核、initrd等⽂件)
5.kickstart (確定加載項,根據NFS,httpd,ftp等共享)

Cobbler原理
使用Cobbler,您無需進行人工干預即可安裝機器。Cobbler設置一個PXE引導環境(它還可以使用yaboot支持PowerPC),並控制與安裝相關的所有方面,比如網絡引導服務(DHCP和TFTP)與存儲庫鏡像。當希望安裝一臺新機器時,Cobbler可以:

1.使用一個以前定義的模板來配置DHCP服務(如果啓用了管理DHCP)。
2.將一個存儲庫(yum或rsync)建立鏡像或解壓縮一個媒介,以註冊一個新操作系統。
3.在DHCP配置文件中爲需要安裝的機器創建一個條目,並使用指定的參數(IP和MAC)。
4.在TFTP服務目錄下創建適當的PXE文件。
5.重新啓動DHCP服務來反應新的更改。
6.重新啓動機器以開始安裝(需手工選擇系統安裝菜單)。

Cobbler軟件安裝

1.基礎環境準備

#查看當前系統版本以及內核信息
[root@Cobbler ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@Cobbler ~]# uname -r
3.10.0-693.el7.x86_64
[root@Cobbler ~]#  uname -n
Cobbler

#關閉selinux防⽕牆 
[root@cobbler ~]# setenforce 0 
[root@cobbler ~]# getenforce Disabled

#關閉firewalld防⽕牆 
[root@cobbler ~]# systemctl stop firewalld 
[root@cobbler ~]# systemctl disable firewalld

2.安裝Cobbler

#安裝epel源
[root@Cobbler ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#安裝cobbler及各個組件
[root@Cobbler /]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd -y

注意:用CentOS6部署Cobbler會出現Django一直安裝不上,需要自行下載並安裝該軟件

防止誤重裝系統,如果系統設置爲PXE啓動,可能會出現PXE引導循環

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings

3.Cobbler配置文件概述

#配置文件目錄:/etc/cobbler

/etc/cobbler/settings   #cobbler主配置文件
/etc/cobbler/iso/         #iso模板配置文件
/etc/cobbler/pxe          #pxe模板文件
/etc/cobbler/power     #電源配置文件
/etc/cobbler/users.conf #Web服務配置文件
/etc/cobbler/users.digest    #用於web訪問的用戶名密碼配置文件
/etc/cobbler/dhcp.template  #DHCP服務配置模板文件
/etc/cobbler/dnsmasq.template  #DNS服務配置模板文件
/etc/cobbler/tftpd.template  #tftp服務配置模板文件
/etc/cobbler/modules.conf     #Cobbler模塊配置文件

#數據目錄:/var/lib/cobbler
/var/lib/cobbler/config #用於存放distros systems profiles等信息配置文件
/var/lib/cobbler/triggers      #用於存放用戶自定義的cobbler命令
/var/lib/cobbler/kickstarts #默認存放kickstart文件
/var/lib/cobbler/loaders      #存放各種引導程序

#鏡像數據目錄: /var/www/cobbler
/var/www/cobbler/ks_mirror  #存放所有鏡像文件
/var/www/cobbler/images    #導入發行版的kernel和initrd鏡像用於遠程網絡啓動
/var/lib/cobbler/kickstarts #默認存放kickstart文件
/var/lib/cobbler/loaders       #存放各種引導程序
/var/www/cobbler/repo_mirror/ #yum倉庫存儲目錄

#日誌目錄:/var/log/cobbler
/var/log/cobbler/install.log    #客戶端系統安裝日誌
/var/log/cobbler/cobbler.log    #cobbler日誌

4.啓動 httpd 以及 CobblerServer

[root@cobbler ~]# systemctl start httpd 
[root@cobbler ~]# systemctl start cobblerd

5.執⾏ cobbler check 檢測,將錯誤逐⼀進⾏解決

Linux自動化運維之Cobbler(快速入門)NO.1

#啓⽤cobbler動態配置,如不啓動則可以通過⼿動或sed命令替換配置
[root@Cobbler ~]# sed -ri '/allow_dynamic_settings:/c \allow_dynamic_settings: 1' /etc/cobbler/settings
[root@Cobbler ~]# systemctl restart cobblerd.service

#1.配置CobblerServer地址
[root@Cobbler ~]# cobbler setting edit --name=server --value=10.0.0.202

#2.修改next_server主機IP
[root@Cobbler ~]# cobbler setting edit --name=next_server --value=10.0.0.202

#3.配置tftp
[root@Cobbler ~]# sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp
[root@Cobbler ~]# systemctl enable xinetd
[root@Cobbler ~]# systemctl start xinetd

#4.啓動rsync
[root@Cobbler ~]# systemctl start rsyncd
[root@Cobbler ~]# systemctl enable rsyncd

#5.下載⽹絡安裝需要執⾏的⽂件(讓cobbler能夠處理x86/x86_64網絡引導)
[root@Cobbler ~]# cobbler get-loaders

#6.安裝debmirror, 修改/etc/debmirror.conf
[root@Cobbler ~]# yum -y install debmirror 
[root@Cobbler ~]# sed -ri '/@dists=/c#@dists="sid";' /etc/debmirror.conf
[root@Cobbler ~]# sed -ri '/@arches=/c#@arches="i386";' /etc/debmirror.conf

#7.配置系統登錄密碼(該密碼默認爲cobbler)
#使用openssl passwd -1 -salt '密碼' '隨機干擾碼'  命令生成密碼
[root@Cobbler ~]# openssl passwd -1 -salt 'cobbler' '123456'
$1$cobbler$sqDDOBeLKJVmxTCZr52/11
[root@Cobbler ~]# cobbler setting edit --name=default_password_crypted --value='$1$cobbler$sqDDOBeLKJVmxTCZr52/11'

#8.電源控制模塊安裝[可選] 
[root@Cobbler ~]# yum -y install cman fence-agents

#9.開啓dhcp地址分配 
#不需要單獨運行DHCP,由Cobbler管理
[root@Cobbler ~]# cobbler setting edit --name=manage_dhcp --value=1

6.執⾏ cobbler check 檢查

[root@Cobbler ~]# systemctl restart cobblerd=
[root@Cobbler ~]# cobbler check
No configuration problems found.  All systems go.

7.配置cobbler的dhcp模板[不代表給主機分配⼀定是如下地址]

#配置DHCP,修改cobbler的dhcp模版,這個模板會覆蓋dhcp本身的配置文件/etc/dhcp/dhcpd.conf 

[root@Cobbler ~]# vim /etc/cobbler/dhcp.template
subnet 10.0.0.0 netmask 255.255.255.0 {   #子網範圍
     option routers             10.0.0.2; #網關地址 
     option domain-name-servers 10.0.0.2;  #DNS地址
     option subnet-mask         255.255.255.0;  #掩碼
     range dynamic-bootp        10.0.0.100 10.0.0.120; #分配地址的範圍
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server; #調用settings配置文件中的next_server 參數

8.同步 CobblerServer 所有配置信息

#重啓並同步cobblerServer 
[root@Cobbler ~]# systemctl restart xinetd
[root@Cobbler ~]# systemctl restart cobblerd
[root@Cobbler ~]# cobbler sync

提示:每次修改完Cobbler對應的配置,都要同步下cobbler數據
[root@Cobbler ~]# cobbler sync

Cobbler基礎應用
1.cobbler 使⽤第⼀步需要定義 distro 如果已經有 OS 鏡像安裝⽂件, 使⽤ improt 導⼊⽅式。

#1.掛載CentOS7系統ISO光盤
[root@Cobbler ~]# mount /dev/cdrom /mnt/

#2.import導⼊系統鏡像,以及鏡像樹 
[root@Cobbler ~]# cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64

#3.查看cobbler  distro
[root@Cobbler cobbler]# cobbler distro list
   CentOS-7-x86_64

# --path 鏡像路徑,即從哪裏導入
# --name 爲導入的鏡像定義名稱
# --arch 指定導入的鏡像是32位、64位、ia64, 目前支持的選項有: x86│x86_64│ia64

2.cobbler 默認 profile ⽆法滿⾜運維需求, 需profile基礎上指定 kickstart⾃定義配置⽂件(KS文件在該文章的結尾)。

#1.移除默認的profile配置
[root@Cobbler ~]# cobbler profile remove --name=CentOS-7-x86_64

#2.添加新的profile配置,並指定kickstart應答⽂件位置 
[root@Cobbler \]# cobbler profile add \
--name=CentOS-7-x86_64-web \
--distro=CentOS-7-x86_64 \
--kickstart=/var/lib/cobbler/kickstarts/Centos7-x86_64.cfg

#3.驗證Kickstart配置文件有效性
cobbler validateks

#附: 如果想修改kickstart⽂件位置 
[root@Cobbler ~]# cobbler profile edit \
--name=CentOS-7-x86_64-web \
--kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64_Web.cfg

注意:distro可以認爲是一個系統盤,profile則爲安裝的規則,多個profile可以指定一個distro

3.由於 CentOS7 系統⽹卡名是 eno... ,爲了統⼀標準, 修改爲常⽤ eth0 管理(這裏還是以默認的profile來演示)
注意是CentOS7才需要下⾯的步驟CentOS6不需要。

#1.修改centos7系統profile安裝時的內核 
[root@Cobbler ~]# cobbler profile edit --name=CentOS-7-x86_64-web --kopts='net.ifnames=0 biosdevname=0'

#2.也可以在kickstart配置⽂件中添加內核參數[推薦] 
bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"

4.啓動同⽹段服務器, 系統分配dhcp後會進⼊Cobbler安裝界⾯, 進⾏系統選擇後, 安裝即可。

注意:CentOS7安裝至少2G以上內存

ks文件:Centos7-x86_64.cfg

# Cobbler for Kickstart Configurator for CentOS 7 by jason
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章