cobbler簡單入門

自動化分爲三個部分:1系統安裝自動化,2文件部署自動化,3命令執行自動化。之前使用的ansible可以完成23,其中最基本1功能不能勝任,雖然研發團隊說要提供這個功能,但是目前沒有產品。我們只好使用意見比較完善的工具cobbler。部署cobbler需要一些其他的組件,很重要的一個就是dhcp還有一個inter牽頭研發的pxe,這裏就先介紹着兩個感覺,然後再介紹cobbler

dhcp

  dhcp的工作原理,這裏我只簡單描述一下,主機間通信基本上需要使用ip,然而每個主機只有出廠自帶的mac地址,怎麼把mac地址和ip對應起來,最開始,使用的手動配置ip,當計算機普及起來的時候有很多非計算機專業的人需要藉助計算機完成工作,讓他們自己配置ip就有點強人所難,這是就引入了dhcp機制協助非計算機人士使用計算機。扯得有點多了,當一臺沒有ip的主機接入網絡後,只要安裝了dhcp的客戶端,這個客戶端就會在網絡中廣播主機的mac255.255.255.255這個ip地址,當網絡中dhcp服務器收到後就會返回一個ip地址給客戶端。

爲什麼需要ip,(前提主機通信是通過廣播,不是直接通信)雖然mac可以用來通信但是mac地址不是層級結構,當我們去給一個mac發送數據包的時候需要找到他,地球上那麼主機找到mac地址所在的網絡就需要建立一個大的mac地址表把mac地址和所在的網絡的關係對應起來,主機那麼多這個表的數據將會達到TB級別查找完全不可能,需要藉助層級結構把網絡分成一塊塊的逐級查找。

yum –y install dhcp-server
       dhcp的配置文件這裏我只列舉最長使用的
subnet 10.5.5.0 netmask 255.255.255.224 { #網段
 range 10.5.5.26 10.5.5.30; #這個ip的範圍用於分配
 option domain-name-servers 172.16.0.1; #注意使用域名的話有可能導致沒有操作系統的主機無法獲取ip
 option domain-name "internal.example.org"; #屬於哪個域
 option routers 10.5.5.1; #網關
 default-lease-time 600; #使用時間,時間到了dhcp客戶端會向服務器申請續約
 max-lease-time 7200; #最多使用多長時間,續約失敗,這個ip就失效
}

pxe

   pxe的一個工作流程:

(1)   沒有操作系統的主機,按引導項逐級引導,引導不成功繼續下一個引導項,到網卡引導的時候,網卡首先會去dhcp獲取ip

(2)   dhcp在返回ip的時候同時會給主機發送網絡引導需要到哪個ip找哪個文件,找的那個文件就當做grub理解吧

(3)   找到這個文件後,這個文件引導計算機加載網絡上的內核

(4)   內啓動後尋找yum倉庫,然後啓動安裝界面,或者按照事先配置好的ks文件自動安裝

配置pxe需要的服務器

yum install tftp tftp-server syslinux httpddhcp -y

1dhcp

subnet 172.16.0.0 netmask 255.255.0.0 {
   range 172.16.150.100 172.16.150.200;
   option domain-name-servers 172.16.0.1;
   option routers 172.16.0.1;
   default-lease-time 600;
   max-lease-time 7200;
   filename "pxelinux.0"; #引導系統的文件
   next-server 172.16.29.2; #提供引導文件的主機
}

2httpd

       提供yum倉庫文件

cd /var/www/html/
mkdir centos7
mount -r /dev/cdrom centos7

3tftp

  提供引導的文件

cp /var/www/html/centos7/p_w_picpaths/pxeboot/{vlinuz,initrd.img}/var/lib/tftpboot #內核文件
cp /usr/share/syslinux/{chain.c32,menu.c32,memdisk,mboot.c32,pxelinux.0}/var/lib/tftpbot #引導需要的文件


cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cd pxelinux.cfg #提供引導的條目
vim default
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7 Wang
 
LABEL linux
MENU LABEL Install CentOS 7 x86_64
KERNEL vmlinuz
APPEND initrd=initrd.imginst.repo=http://172.16.29.2/centos7 ks=http://172.16.29.2/kickstarts/centos7.cfg

cobbler

1概念

  cobbler其實就是pxe的二次封裝,並且提供了更加強大引導功能,簡化配置的步驟。其中cobbler定義了幾個概念:

(1)   distro提供yum倉庫,distro可以有多個,這就是cobbler的優勢可以同時提供不同操作系統版本網絡引導

(2)   profile根據distro創建一條引導條目,定義多條每條提供一種我們的定製

2配置

使用cobbler需要的服務器

yum install httpd tftp-server dhcp cobbler syslinuxcman fence-agents –y

dhcp還是需要手動配置

vim /etc/dhcp/dhcpd.conf
# dhcpd.conf
option domain-name "example.org";
option domain-name-servers 172.16.29.10;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.0.100 172.16.0.200;
option routers 172.16.0.1;
filename "pxelinux.0";
next-server 172.16.29.10;
}
 
cp /usr/share/syslinux/{pxelinux.0,menu.c32}/var/lib/cobbler/loaders/ #提供引導文件
vim /etc/cobbler/settings
server: 172.16.29.10
next_server: 172.16.29.10

default_password_crypted:"$1$4e010655$jJ8hjIHRuXg.Q4Irg4pSd/" #這行對應的密碼爲oldking,也可以自己生成openssl passwd -1 -salt $(openssl rand -hex 4)

systemctl start dhcpd
systemctl start tftp
systemctl start httpd
systemctl start cobblerd.service
cobbler sync #這裏是cobble自動配置服務器,把我們的配置同步到各個服務裏
mount /dev/cdrom /misc/cd
cobbler import --name=centos7--path=/misc/cd #建立一個distro

#下面這個cfg文件是我自己使用的,若想使用請更改其中這一行url --url=http://172.16.29.10/cobbler/ks_mirror/centos7/安裝後的密碼123或者1記不清了哈哈,看我以前的博客自己定製ks文件或者進入但用戶模式更改密碼,這個文件貼在附件裏。

cp /root/centos7.cfg /var/lib/cobbler/kickstarts/
cobbler profile add --name=centos7-basic--distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg #生成一條profile

總結

  有了cobbler我們基本上不會使用pxe,配置pxe其實可以幫助我們更好的理解cobbler的工作原理,cobbler還有一個網頁管理界面,這裏我也沒介紹個人感覺,命令接口完全可以滿足我們的需求,使用網頁管理完全是自討苦吃,還是需要把ks文件上傳到cobbler裏然後,使用網頁導入distro時,還是需要先下載文件或者插入優盤後還是需要掛載啊,順便敲一條命令導入就好了嘛,打開網頁登錄選擇導入等待導入完成後,還需要彈出優盤或者刪除文件。看個人選擇吧不作評論。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章