Linux 第56,57天 anacoda,cobller
時間: 20180918
時間: 20180919
目錄
kickstart文件
DHCP服務
製作pxe自動安裝linux
自動化安裝系統cobbler
總結
kickstart文件
一個Linux安裝時可以實現自動化的配置文件,當爲安裝系統的內核傳遞某參數讓其讀取此配置
文件時可以使手動的應答安裝如選擇語言,格式化硬盤,安裝什麼軟件,鍵盤佈局,時區,網絡
等,全都不需要再次選擇,將所有的選擇放置kickstart文件中,即會自動的將上述配置自動化
完成。即可實現自動化安裝,而不需要手式人爲選擇,當然此配置文件有一定的語法格式
常規選項
rootpw (required) 指定root密碼
--iscrypted 使密碼加密放在後方
part or partition (required) 格式化分區
part|partition mntpoint --name=name --device=device --rule=rule
--size=#M 指定分區大小
--grow 指定設置爲硬盤分區所有容量
--maxsize= 如果和--grow連用,即成長容量,最大不可超過此值
--noformat 不格式化分區
--onpart= 指定分區
--ondisk= 指定硬盤
--asprimary 設置爲主分區(激活分區)
--fstype= 指定文件系統類型
lang (required) 設置語言
en_US.UTF-8 設置語言爲英文
keyboard (required)設置鍵盤佈局
--vckeymap=us 設置VConsole鍵盤佈局
--xlayouts='us' 設置x鍵盤佈局X個人感覺是圖形終端的意思
bootloader (required) 設置bootloader如何安裝,安裝位置
--append=" crashkernel=auto" 指定額外的內核參數
--location=mbr 指定boot記錄寫在哪裏
--boot-drive=sda 指定哪個設備
timezone (required) 設置時區
Asia/Shanghai 時區爲上海
--isUtc
--nontp 不使用network time pro
clearpart (optional) 清除原來盤上的分區
--drives=/dev/sda 指定清除分區的設備
--none 不清除原分區
--initlabel
The --initlabel option has been deprecated. To initialize disks
with invalid partition tables and clear their contents, use the
zerombr command.
firewall (optional) 啓用或禁用firewall
ignoredisk (optional) 忽略硬盤檢查,如果使用SAN設置時需要忽略
--only-use=sda 表示只使用sda硬盤做爲安裝盤
network (optional) 配置網絡
--bootproto=dhcp|static
--device=ifname
--onboot=on|off
--activate
--no-activate
--hostname
repo (optional) 配置額外的yum repositories
--name=repoID
--baseurl=repo-link
selinux (optional) 設置是否啓用selinux
--enforcing
--permissive
--disable
text (optional) 使用文本模式安裝系統,即不顯示圖形方式(佔用資源少)
user (optional) 配置添加某用戶
-name=USERNAME
--password=加密的密碼
--iscrypted 加此選項表示密碼已經加密
volgroup (optional) LVM管理
volgroup name partition[PVname] [options]
--pesize=4MB 默認
logvol montpoint --fstype --size=# --name=lvname --vgname=vgName
zerombr (optional) 初始化硬盤首部
firstboot (optional) 是否第一次啓動就執行安裝步驟
--enable
--disable
install (optional) 默認的安裝方式 cdrom harddrive nfs liveimg url
url --url=/path/ISOpath 如使用網絡安裝一般爲此選項常用
cdrom 使用光盤安裝則使用此選項
auth or authconfig (optional) 設置系統認證方式
--enableshadow 使用shadow password來做系統的認證
--passalgo=sha512 設置密碼hashing 算法
services (optional) 設置要啓用或禁用哪些服務
--disabled="chronyd"
reboot (optional) 安裝完成後自動重啓系統
skipx (optional) If present, X is not configured on the installed system.
硬盤分區設置lvm
ignoredisk --only-use=sda
zerombr
clearpart --drives=sda --all
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.01 --fstype="lvmpv" --ondisk=sda --size 1 --grow
volgroup --pesize=4096 skyVG pv.01
logvol swap --fstype="swap" --size=2048 --name=swap --vgname=skyVG
logvol / --fstype="xfs" --size=50000 --name=root --vgname=skyVG
logvol /data --fstype="xfs" --size=1 --grow --name=data --vgname=skyVG
注意:可選不代表不指定哦,有的可選選項也很重要
%packages 指定要安裝的包@爲包組
@^minimal
@core
kexec-tools
%end
%pre 安裝前腳本
%end
%post 安裝後執行腳本
%end
DHCP服務
DHCP的8種報文
DHCP DISCOVER
DHCP OFFER
DHCP REQUEST
DHCP ASK
DHCP NAK
DHCP DECLINE
DHCP RELEASE
DHCPINFORM
製作pxe自動安裝linux
原理
客戶端設置基於網絡pxe啓動,服務器端開啓dhcp,tftpd,http。 dhcp爲客戶端分發地址,併爲
其指定一個tftp服務器地址並指引給客戶端向tftp服務器請求文件名爲pxelinux.0的文件,此文
件會讓客戶請求讀取tftp服務器上pxelinux.cfg目錄下的default配置文件,根據default配置
文件內容客戶端則會下載tftp服務器上的vmlinuz以及initrd文件等並在本地執行,此時內核文
件便會被本地加載至內存,然後就可以讀取ks文件,即事先建立好的http服務相應的路徑下便會
有yum倉庫文件和自動應答文件kickstart,並下載相應的包來進行安裝配置,由此便可實現基
於網絡的linux系統安裝完成
配置步驟
1.配置http建立yum倉庫和ks文件
yum -y install httpd
ks文件格式已經在上述講過這裏直接生成一個ks文件名爲cent7.ks
cp cent7.ks /var/www/html/ks/
將光盤鏡像下的倉庫放置於/var/www/html/os/7
systemctl start httpd
2.開啓tftp服務以及,相應目錄的配置文件/var/lib/tftpboot
yum install -y tftp-server syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
掛載ceotos原版光盤copy其isolinux目錄下的vmlinuz和initrd.img 我掛載在/mnt下
cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
timeout 600
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.ks=http://192.168.48.72/ks/cent7.ks
label local
menu label Boot from ^local drive
menu default
localboot 0xffff
systemctl start tftp
3.配置dhcp服務
yum install dhcp
vim /etc/dhcp/dhcpd.conf
subnet 192.168.48.0 netmask 255.255.255.0 {
range 192.168.48.200 192.168.48.230;
filename "pxelinux.0";
next-server 192.168.48.72;
}
systemctl start dhcpd
自動化安裝系統cobbler
cobbler是一個方便的自動化系統安裝工具,它可以幫且你配置tftp目錄,以及安裝系統使用
uefi,gpt分區等,簡化了用戶的配置,把大多數的配置都集成到cobbler裏,而不需要用戶再
去配置各服務的配置文件。
1. 安裝
yum install -y cobbler dhcp
2. 配置
啓動服務
systemctl start httpd cobblerd tftp
檢查cobbler配置 使用cobbler check 會提示錯誤將其逐角解決即可,如完成後
重啓cobbler服務 並執cobbler sync同步
常見需要修改的有
vim /etc/cobbler/settings
server: 127.0.0.1 修改cobbler 服務器IP
next_server: 127.0.0.1 修改爲tftp服務的IP
default_password_crypted: 配置安裝的系統root密碼
manage_dhcp: 1 設置爲1,表示使用cobbler來管理dhcp服務
vim /etc/cobbler/dhcp.template 將其改爲正確的IP
subnet 192.168.48.0 netmask 255.255.255.0 {
option routers 192.168.48.2;
option domain-name-servers 192.168.48.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.48.200 192.168.48.254;
下載network bootloader
cobbler get-loaders
一切完成後重啓服務systemctl restart cobbler
執行同步 cobbler sync
導入第一個要安裝的系統centOS7
掛載光盤至/mnt目錄
執行命令將其導入至cobbler數據庫中
cobbler import --arch=x86_64 --path=/mnt --name=CentOS7_3
準備kickstart文件爲該distro(我前邊已經設置好了ks文件名爲cent6.ks)
cp cent6.ks /var/lib/cobbler/kickstarts/
cobbler profile add --name=Cent6_Mini_KS
--kickstart=/var/lib/cobbler/kickstarts/cent6.5.ks --distro=Centos6.5
上邊兩行爲一條命令含義就是將剛剛的鏡像添加kickstart文件
此時配置完成
3. 測試
驗證各選項是否配置正常
ss -tunl 檢查67 69 80 端口是否開啓
cobbler check 查看cobbler是否有未解決的問題
cobbler sync 同步配置於向文件夾中
tail -f /var/log/cobbler/cobbler.log 跟蹤查看cobbler日誌
此時啓動要安裝系統的客戶機即可發現此日誌會有數據生成,也可以查看錯誤
總結
1. kickstart文件裏pv.01是不可變動的,否則會提示錯誤,因爲pv的名字就是分區名
2. ks文件如果使用cobbler --url=$tree但是如果使用pxe則需要將其修改爲指定的repo
3. cent7和cent6的分區格式是不同的,在kickstart指定時需要注意
4. 如果不慎將/var/www/cobbler目錄裏的文件刪除需要重新安裝一下cobbler,裏邊有幾個
python腳本