1.實現DHCP服務 :(實現此服務是自動化安裝的前提)
續租 ?
50% :租賃時間達到50%時來續租,剛向DHCP服務器發向新的DHCPREQUEST 請求。如果dhcp服務沒有拒絕的理由,則回應DHCPACK信息。當DHCP客戶端 收到該應答信息后,就重新開始新的租用周期
87.5%:如果之前DHCP Server沒有回應續租請求,等到租約期的7/8時,主機 會再發送一次廣播請求
同網段多DHCP服務 ?
DHCP服務必須基于本地 ?
先到先得的原則 ?
跨網段 ?
RFC 1542 Compliant Routers ?(此種路由只允許DHCP的廣播通過;需要購買此標準的路由器)
dhcrelay: 中繼代理服務(使用普通路由器啟用代理服務)
DHCP服務器的實現? (本身需要設為為靜態地址)6得到7的DHCP地址
前提檢查環境:selinux設為關閉,防火墻也要關
1.以7作為DHCP服務器,將網卡只留一個,并且設為僅主機模式,然后將IP地址設為手動指定的靜態IP,
2 在6上也只設一個僅主機的網卡,并且啟用DHCP服務將網卡的配置文件修改即可:BOOTPROTO=dhcp
3 .yum install dhcp? :(此包在光盤里需要將epel源停用)
4 .安裝好之后需要配置DHCP的配置文件才可以啟動此服務:
配置文件路徑:vim /etc/dhcp/dhcpd.conf ? (打開配置文件發現配置文件是空的沒有多少內容,提示你需要復制模板文件到此處)
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf? (復制模板文件到此)
再次進入配置文件來修改:
systemctl start dhcpd.service? (啟動DHCP服務)? (如果服務起不來查看更改的設置是否一樣,一個字母或者少一個分號都不行)
6的機器重啟后就可以獲得7設定的DHCP的地址了(要保證7和6設置的網段在同一虛擬網段)
?
配置tftp服務 ;/var/lib/tftpboot/配置文件的路徑
1 ?yum install tftp-server? (裝包)? 在6和7上都裝上:
2啟用tftp服務(在7上)
systemctl enable tftp.service (開機就啟用)
systemctl start tftp.service? (啟動服務)
在6上是非獨立服務依靠xinetd來啟動,
chkconfig tftp on
service xinetd restart
如果6想要訪問7的tftp服務則需要在6上安裝tftp客戶端工具:yum install tftp
如何查看6的tftp服務可以連接到7上:
1首先在7上的tftp的主目錄下建個文件
2在6上連接7的tftp服務并下載此文件如果成功說明連接上了
tftp 192..168.60.4(7的IP)
get fstab(此文件為7上主目錄所創建的新文件)
ls? 查看有沒有下載下來。
重啟機器7查看設置的開機自啟的DHCP 的67端口和tftp的69端口是否啟動了,后續自動化安裝需要用到
(ss -ntul? 此命令來查看端口號)
PXE自動化安裝CentOS? (以上的DHCP和tftp服務為下列實現PEX的基礎)
1 .查看是否安裝http服務;如果沒有則安裝;并且啟動服務:查看80端口是否打開
systemctl start httpd
systemctl enable httpd
2?/var/www/html/(此為http的主目錄可以將應答文件等所有的東西都存放到此處)
在此目錄下新建cent7的文件夾并將光盤掛載到此處:
如果要實現永久掛載則需要寫到/etc/fstab 文件里:具體內容
/dev/sr0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/var/www/html/cent7 ? ? ? ? ? ? iso9660 ? ? ? ? ? defaults ?? 0? 0
然后mount -a 讓其生效
mount /dev/sr0 /var/www/html/cent7? (臨時掛載使用)并用瀏覽器查看是否能打開
3? 在主目錄里新建一個應答文件的文件夾 (應答文件最好使用工具來生成不會容易出錯)
mkdir ? /var/www/html/ksdir
將模板的應答文件拷貝到此且重名名并修改一下:(確保權限,不夠增加)
cp /root/anaconda.cfg? /var/www/html/ksdir/ks7.cfg
chmod 644 ks7.cfg
多余的包可以選擇不裝,刪掉以最小化安裝;在添加加reboot和將graphical改為text在上圖里,(忘記添加了,reboot 隨便寫在哪一行都行)
4? 再次配置DHCP服務:(此次配置添加了兩行關于tftp的兩項內容)
總結:在上述配置中分號少添加了,結果導致DHCP服務起不來修改過后就可以起來了。
5 .進入tftp的共享目錄:cd /var/lib/tftpboot/? (此服務為啟動菜單的的引導項)
在此目錄下新建文件夾:mkdir pexlinux.cfg
安裝包:yum install syslinux
查找上述包里的一個文件并復制到剛才新建的文件夾里去;
rpm -ql syslinux | grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
6 將啟動時的菜單風格文件從光盤里拷貝到此處:
cp /var/www/html/cent7/isolinux/vesamenu.c32 .
此時/var/lib/tftpboot/ 的目錄結構為:
.
├── pexlinux.cfg
├── pxelinux.0
└── vesamenu.c32
將光盤里的內核和啟動程序拷貝到此處? (也可以將整個isolinux里的文件拷貝過來)
cp /var/www/html/cent7/isolinux/vmlinuz /var/lib/tftpboot/
cp /var/www/html/cent7/isolinux/initrd.img /var/lib/tftpboot/
7 .制作啟動菜單文件
將光盤里的引導文件復制到pxelinux.cfg/目錄下并且重命名
cp /var/www/html/cent7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改引導文件:
確認文件結構一個也不能少:
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│? ? ? └── default
├── vesamenu.c32
└── vmlinuz
1 directory, 5 files
到此已經全部完成了:
開始測試:新建硬件系統;將網絡設置為和DHCP服務器同一虛擬網段的僅主機模式。
啟動時進入救援模式界面選擇走網絡安裝模式(最后一項)
使用cobbler來實現自動化的安裝:(此服務可自動生成應答文件和引導文件不用再手動生成了)
PXE的二次封裝,將多種安裝參數封裝到一個菜單
Python編寫 ?
提供了CLI和Web的管理形式
配置文件目錄 /etc/cobbler
cobbler 命令介紹
cobbler commands介紹
cobbler check 核對當前設置是否有問題
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的詳細信息
cobbler sync 同步配置到數據目錄,更改配置最好都要執行下
cobbler reposync 同步yum倉庫
cobbler distro 查看導入的發行版系統信息
cobbler system 查看添加的系統信息
cobbler profile 查看配置信息
實驗:在7上配置cobbler來實現6和7的網絡自動化安裝:
工作環境:7上需要實現DHCP和TFTP服務(參照上文來解決);cobbler需要連接外網所以需要添加一個橋接的網卡并確認可以和外網相連接;防火墻以及selinux服務統統關閉? ,http(80端口)服務也要起來
DHCP 配置文件先不要添加,后續的cobbler服務會自動生成配置文件的
1.安裝cobbler:此包依賴與epel源來安裝:
yum install cobbler
2.啟動cobbler服務:
systemctl start cobblerd
systemctl enable cobblerd
服務都起來之后查看端口來確認:ss -ntlu
DHCP (67)
TFTP? (69)
HTTP? (80)
3 .查看tftp的共享目錄會發現自動生成了8個文件
cd /var/lib/tftpboot/
4 .配置cobbler;
cobbler check? (此命令檢查cobbler缺少的東西會提示你)
如果檢查沒有出現1……..9的提示列表:需要重啟http服務systemctl restart httpd
在此檢查就可以了
第一項解決的問題:
vim /etc/cobbler/settings? (打開此文件來修改)
384行將server :192.168.60.4? (服務器7的僅主機IP地址)
第二項,解決的問題:
272行將server:192.168.60.4? (tftp服務器的地址也是7主機的IP地址)
第三項,解決的問題:
cobbler get-loaders? 運行此命令下載文件(確保外網能夠訪問)
cobbler sync? (將下載的文件同步到)/var/lib/tftpboot文件里面
第四項;有個默認口令為cobbler可以不用修改
最后將242行的0 改為1 (目的是使用Cobbler來管理DHCP自動生成模板文件只需稍微修改一下即可)
修改完后重新啟動cobbler服務:systemctl restart cobblerd
5 .配置DHCP文件
vim /etc/cobbler/dhcp.template (修改配置文件)
cobbler sync? (改完之后同步一下)
再次重啟cobbler服務
6.掛在光盤
載7中的服務器機器上掛上兩個光盤
echo ‘- – -‘ > /sys/class/scsi_host/host0/scan? (將掛載的光盤同步一下)
新建兩個文件夾,分別掛載兩個光盤
mkdir /mnt/cdrom0
mkdir? /mnt/cdrom1
mount /dev/sr0? /mnt/cdrom0
mount? /dev/sr1? /mnt/cdrom1
導入光盤文件:兩個都要導入 (導入之前查看光盤掛載的名字與后面重新定義的名字是否相同)
cobbler import –path=/mnt/cdrom1/? – -name=centos-6.9-x86_64 ? – -arch=x86_64 (先拷貝6的光盤)
? ? ? ? ? ? ? ?? –name=centos……..(為倒完以后自己取得系統的名稱)
cobbler import –path=/mnt/cdrom0/? – -name=centos-7-x86_64 ? – -arch=x86_64? (在拷貝7的光盤)
在du -sh /var/www/cobbler/ ks_mirror/下可以看到光盤的內容都考到此目錄下了
拷貝完成后進入目錄下cd /var/www/cobbler/ks_mirror/centos-6.9-x86_64/
光盤導入之后應答文件和引導菜單文件都會自動生成,具體位置為:
引導菜單文件:/var/lib/tftpboot/pxelinux.cfg/default
應答文件:/var/lib/cobbler/kickstarts/* (此目錄下具體那個文件要看 下面命令搜索的結果)
cobbler distro list? (執行此命令會發現有i386的文件)
cd /var/lib/tftpboot/pxelinux.cfg/? 此目錄下的引導文件已經生成了,如果導入兩個磁盤則生成兩個引導文件。
cobbler profile list? (此命令可以查看應答文件和引導文件的選項)
cobbler distro list? (此命令查看安裝光盤的選項)
cobbler profile remove? –name=centos6.9-i386 (此命令可以刪除多余的應答文件和引導文件)
cobbler distro remove? –name=centos6.9-i386? (此命令刪除多余的安裝光盤)
cobbler profile report –name=centos-6.9-x86_64 (此命令查看應答文件真實的路徑)
cat ?? /var/lib/cobbler/kickstarts/default.ks ?? (按找到的應答文件的路徑來打開應答文件)
最后總結:
開始安裝之前再次確認:DHCP ;tftp;cobbler;http;服務是否開啟。查看端口號或者查看服務狀態也行。
ss -nult
systemctl status dhcpd? httpd? tftpd? (查看狀態)
systemctl start dhcpd? httpd? tftpd? (開啟服務)
systemctl restart dhcpd? httpd? tftpd? (重啟服務)
此時已經可以走網絡來重新安裝系統了,走網絡安裝時要注意安裝的主機必須要和服務器在同一網段并且能夠獲得作為DHCP的服務器,所分分配的IP地址,否則無法連接DHCP服務器里的cobbler數據信息,則無法安裝。
如果想將自己所制作的應答文件加進cobbler里作為引導菜單另一種方式的安裝;
具體步驟及其方法:
1.將自己的應答文件最修改:路徑要修改
url? –url=$tree ? (只改此項就行了)
2 .生成新的引導菜單:要和光盤的版本關連到一起:
查看安裝光盤列表:cobbler distro list?
將新的應答文件關連到所需要對應的光盤,首先將應答文件拷貝到應答文件的目錄下才可以用:
mv ks6_mini.cfg /var/lib/cobbler/kickstarts/
cobbler profile add ? –name=centos-699999mini ? –distro=centos-6.9-x86_64 —
kickstart=/var/lib/cobbler/kickstarts/ks6_mini.cfg
(–name 為自己命名的引導菜單選項里的名字,后面是關連光盤的名字,最后是剛移進去的應答文件的路徑)
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99449