KICKSTART無人值守安裝

 

1.1.1 什麼是PXE?
PXE,全名Pre-boot Execution Environment,預啓動執行環境;
經過網絡接口啓動計算機,不依賴本地存儲設備(如硬盤)或本地已安裝的操做系統;
由Intel和Systemsoft公司於1999年9月20日公佈的技術;
Client/Server的工做模式;
PXE客戶端會調用網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協議(DHCP)、小型文件傳輸協議(TFTP)等網絡協議;
PXE客戶端(client)這個術語是指機器在PXE啓動過程當中的角色。一個PXE客戶端能夠是一臺服務器、筆記本電腦或者其餘裝有PXE啓動代碼的機器(咱們電腦的網卡)html

1.2PXE工做過程
KICKSTART無人值守安裝linux

1.3批量裝機軟件
Redhat系主要有兩種Kickstart和Cobbler。
Kickstart是一種無人值守的安裝方式。它的工做原理是在安裝過程當中記錄人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件。若是在自動安裝過程當中出現要填寫參數的狀況,安裝程序首先會去查找ks.cfg文件,若是找到合適的參數,就採用所找到的參數;若是沒有找到合適的參數,便會彈出對話框讓安裝者手工填寫。因此,若是ks.cfg文件涵蓋了安裝過程當中全部須要填寫的參數,那麼安裝者徹底能夠只告訴安裝程序從何處下載ks.cfg文件,而後就去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啓/關閉系統,並結束安裝。
Cobbler集中和簡化了經過網絡安裝操做系統須要使用到的DHCP、TFTP和DNS服務的配置。Cobbler不只有一個命令行界面,還提供了一個Web界面,大大下降了使用者的入門水平。Cobbler內置了一個輕量級配置管理系統,但它也支持和其它配置管理系統集成,如Puppet,暫時不支持SaltStack。
** 簡單的說,Cobbler是對kickstart的封裝,簡化安裝步驟、使用流程,下降使用者的門檻。bootstrap

實例1-1環境準備:vim

[root@centos7 ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"centos

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"瀏覽器

[root@centos7 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@centos7 ~]# getenforce 
Disabled
[root@centos7 ~]# systemctl status firewalld.service服務器

● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
[root@centos7 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $3}'
10.0.0.200網絡

1.4 DHCP-serverapp

簡介:
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工做, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員做爲對全部計算機做中央管理的手段,在RFC 2131中有詳細的描述。DHCP有3個端口,其中UDP67和UDP68爲正常的DHCP服務端口,分別做爲DHCP Server和DHCP Client的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是爲DHCP failover服務,這是須要特別開啓的服務,DHCP failover是用來作「雙機熱備」的。socket

安裝dhcp服務:

yum -y install dhcp

cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.1.200;
filename "/pxelinux.0";
}
EOF

注:
range 172.16.1.100 172.16.1.199; # 可分配的起始IP-結束IP 
option subnet-mask 255.255.255.0; # 設定netmask
default-lease-time 21600; # 設置默認的IP租用期限
max-lease-time 43200; # 設置最大的IP租用期限
next-server 172.16.1.200; # 告知客戶端TFTP服務器的ip
filename "/pxelinux.0"; # 告知客戶端從TFTP根目錄下載pxelinux.0文件

啓動:
systemctl start dhcpd
systemctl status dhcpd
確認dhcp啓動是否成功
netstat -lntup|grep 67

2.0 建立空白虛擬機不須要掛載光盤

KICKSTART無人值守安裝

2.1.0確認KICKSTART服務器是否爲鏈接狀態

KICKSTART無人值守安裝

2.1.1TFTP服務器
①簡介:
TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。端口號爲69。

安裝:tftp
yum -y install tftp-server
啓動:
systemctl start tftp.socket
檢查:
netstat -lntup

3.0 PXE引導配置(bootstrap)

syslinux是一個功能強大的引導加載程序,並且兼容各類介質。SYSLINUX是一個小型的Linux操做系統,它的目的是簡化首次安裝Linux的時間,並創建修護或其它特殊用途的啓動盤。若是沒有找到pxelinux.0這個文件,能夠安裝一下。

安裝:
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7 
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
KICKSTART無人值守安裝

4.0.1安裝HTTP

yum -y install httpd
systemctl start httpd.service

4.0.2利用瀏覽器訪問:

KICKSTART無人值守安裝

在這個文件vim /var/lib/tftpboot/pxelinux.cfg/default
64註釋,在65添加行:append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/

KICKSTART無人值守安裝

上傳軟件包檢查:

root@centos7 ~]# ls
anaconda-ks.cfg ks_config_for_CentOS7.tar.gz
[root@centos7 ~]# tar xfP ks_config_for_CentOS7.tar.gz 
[root@centos7 ~]# ls
anaconda-ks.cfg ks_config_for_CentOS7.tar.gz
[root@centos7 ~]# vim /var/www/html/ks_config/CentOS7-ks.cfg
[root@centos7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

5.0 ks.cfg詳解

ks.cfg文件組成大體分爲3段

命令段 
鍵盤類型,語言,安裝方式等系統的配置,有必選項和可選項,若是缺乏某項必選項,安裝時會中斷並提示用戶選擇此項的選項

軟件包段

%packagesbr/>@groupname:指定安裝的包組
package_name:指定安裝的包
-package_name:指定不安裝的包

腳本段(可選)
%pre:安裝系統前執行的命令或腳本(因爲只依賴於啓動鏡像,支持的命令不多)
%post:安裝系統後執行的命令或腳本(基本支持全部命令)

關鍵字 含義
install 告知安裝程序,這是一次全新安裝,而不是升級upgrade。
url --url=" " 經過FTP或HTTP從遠程服務器上的安裝樹中安裝。
url --url="
http://10.0.0.7/CentOS-6.7/"
url --url ftp://<username>:<password>@<server>/<dir>
nfs 從指定的NFS服務器安裝。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree
text 使用文本模式安裝。
lang 設置在安裝過程當中使用的語言以及系統的缺省語言。lang en_US.UTF-8
keyboard 設置系統鍵盤類型。keyboard us
zerombr 清除mbr引導信息。
bootloader 系統引導相關配置。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
--location=,指定引導記錄被寫入的位置.有效的值以下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)。
--driveorder,指定在BIOS引導順序中居首的驅動器。
--append=,指定內核參數.要指定多個參數,使用空格分隔它們。
network 爲經過網絡的kickstart安裝以及所安裝的系統配置聯網信息。
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認爲是相同的。
static方法要求在kickstart文件裏輸入全部的網絡信息。
network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2
請注意全部配置信息都必須在一行上指定,不能使用反斜線來換行。
--ip=,要安裝的機器的IP地址.
--gateway=,IP地址格式的默認網關.
--netmask=,安裝的系統的子網掩碼.
--hostname=,安裝的系統的主機名.
--onboot=,是否在引導時啓用該設備.
--noipv6=,禁用此設備的IPv6.
--nameserver=,配置dns解析.
timezone 設置系統時區。timezone --utc Asia/Shanghai
authconfig 系統認證信息。authconfig --enableshadow --passalgo=sha512
設置密碼加密方式爲sha512 啓用shadow文件。
rootpw root密碼
clearpart 清空分區。clearpart --all --initlabel
--all 從系統中清除全部分區,--initlable 初始化磁盤標籤
part 磁盤分區。
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
--fstype=,爲分區設置文件系統類型.有效的類型爲ext2,ext3,swap和vfat。
--asprimary,強迫把分區分配爲主分區,不然提示分區失敗。
--size=,以MB爲單位的分區最小值.在此處指定一個整數值,如500.不要在數字後面加MB。
--grow,告訴分區使用全部可用空間(如有),或使用設置的最大值。
firstboot 負責協助配置redhat一些重要的信息。
firstboot --disable
selinux 關閉selinux。selinux --disabled
firewall 關閉防火牆。firewall --disabled
logging 設置日誌級別。logging --level=info
reboot 設定安裝完成後重啓,此選項必須存在,否則kickstart顯示一條消息,並等待用戶按任意鍵後才從新引導,也能夠選擇halt關機。

報錯排查故障以下:

KICKSTART無人值守安裝

KICKSTART無人值守安裝

相關文章
相關標籤/搜索