无人值守安装linux7,kickstart无人值守安装CentOS7
1.光盤(ISO文件,光盤的鏡像文件) à每一臺物理機都得給一個光驅,如果用外置光驅的話,每臺機器都需要插一下
2.U盤:ISO鏡像刻錄到U盤à需要每臺機器都需要插一下
3.并行安裝à網絡安裝
批量自動安裝
實現原理:將手動安裝的所有的詳細步驟記錄到一個文件中,然后有一種軟件通過讀取這個文件就可以實現自動化安裝系統
kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄人工干預填寫的各種參數,并生成一個名為ks.cfg的文件。
PXE向DHCP發送請求--DHCP服務器提供信息--PXE客戶端請求下載啟動文件--TFTP響應客戶端請求并傳送文件--PXE請求下載自動應答文件
環境準備
[root@oldboylnb ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@oldboylnb ~]# uname -r
3.10.0-693.el7.x86_64
[root@oldboylnb ~]# getenforce
Disabled
[root@oldboylnb ~]# 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)
Docs: man:firewalld(1)
[root@oldboylnb ~]# hostname -I
10.0.0.201 172.16.1.201
kickstart無人值守部署
安裝DHCP服務
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、網關地址、DNS服務器地址等信息,并能夠提升地址的使用率。DHCP服務
[root@oldboylnb ~]# yum install -y dhcp
Installed:
dhcp.x86_64 12:4.2.5-58.el7.centos
修改dhcp配置文件
cat >>/etc/dhcp/dhcpd.conf<
subnet? 172.16.1.0 netmask 255.255.255.0 {? #服務端本機IP
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.201;????????? # 告知客戶端TFTP服務器的ip
filename "/pxelinux.0";??????????? ?# 告知客戶端從TFTP根目錄下載pxelinux.0文件
}
EOF
啟動服務
[root@oldboylnb ~]# systemctl start dhcpd
[root@oldboylnb ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2018-01-08 09:35:15 CST; 11s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 1398 (dhcpd)
Status: "Dispatching packets..."
CGroup: /system.slice/dhcpd.service
└─1398 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on?? LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
Jan 08 09:35:15 oldboylnb dhcpd[1398]:
Jan 08 09:35:15 oldboylnb dhcpd[1398]: No subnet declaration for eth0 (10.0.0.201).
Jan 08 09:35:15 oldboylnb dhcpd[1398]: ** Ignoring requests on eth0.? If this is not what
Jan 08 09:35:15 oldboylnb dhcpd[1398]:??? you want, please write a subnet declaration
Jan 08 09:35:15 oldboylnb dhcpd[1398]:??? in your dhcpd.conf file for the network segment
Jan 08 09:35:15 oldboylnb dhcpd[1398]:??? to which interface eth0 is attached. **
Jan 08 09:35:15 oldboylnb dhcpd[1398]:
Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on? ?Socket/fallback/fallback-net
Jan 08 09:35:15 oldboylnb systemd[1]: Started DHCPv4 Server Daemon.
查看日志
[root@oldboylnb ~]#? tail -20? /var/log/messages
Jan? 8 09:35:15 oldboylnb dhcpd: Listening on LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
Jan? 8 09:35:15 oldboylnb dhcpd: Sending on?? LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
Jan? 8 09:35:15 oldboylnb dhcpd:
Jan? 8 09:35:15 oldboylnb dhcpd: No subnet declaration for eth0 (10.0.0.201).
Jan? 8 09:35:15 oldboylnb dhcpd: ** Ignoring requests on eth0.? If this is not what
Jan? 8 09:35:15 oldboylnb dhcpd:?? you want, please write a subnet declaration
Jan? 8 09:35:15 oldboylnb dhcpd:?? in your dhcpd.conf file for the network segment
Jan? 8 09:35:15 oldboylnb dhcpd:?? to which interface eth0 is attached. **
Jan? 8 09:35:15 oldboylnb dhcpd:
Jan? 8 09:35:15 oldboylnb dhcpd: Sending on?? Socket/fallback/fallback-net
Jan? 8 09:35:15 oldboylnb systemd: Started DHCPv4 Server Daemon.
安裝TFTP服務
TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。端口號為69
下載并啟動tftp
[root@oldboylnb ~]# yum install -y tftp-server
Installed:
tftp-server.x86_64 0:5.2-13.el7
[root@oldboylnb ~]# systemctl start tftp.socket
[root@oldboylnb ~]# systemctl status tftp.socket
● tftp.socket - Tftp Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
Active: active (listening) since Mon 2018-01-08 09:53:27 CST; 36s ago
Listen: [::]:69 (Datagram)
Jan 08 09:53:27 oldboylnb systemd[1]: Listening on Tftp Server Activation Socket.
Jan 08 09:53:27 oldboylnb systemd[1]: Starting Tftp Server Activation Socket.
請求下載啟動文件syslinux
syslinux是一個功能強大的引導加載程序,而且兼容各種介質。SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,并建立修護或其它特殊用途的啟動盤。
[root@oldboylnb tftpboot]# yum install -y syslinux
Installed:
syslinux.x86_64 0:4.05-13.el7
Dependency Installed:
mtools.x86_64 0:4.0.18-5.el7
[root@oldboylnb tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@oldboylnb tftpboot]# ll
total 28
-rw-r--r-- 1 root root 26764 Jan? 8 10:14 pxelinux.0
新建一個pxelinux.cfg目錄,存放客戶端的配置文件
[root@oldboylnb /]# mkdir -p /var/www/html/CentOS7
[root@oldboylnb /]# mount /dev/cdrom /var/www/html/CentOS7
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboylnb CentOS7]# \cp -a isolinux/* /var/lib/tftpboot/[root@oldboylnb /]#mkdir?-p?/var/lib/tftpboot/pxelinux.cfg
[root@oldboylnb isolinux]# pwd
/var/www/html/CentOS7/isolinux
[root@oldboylnb isolinux]# cp isolinux.cfg? /var/lib/tftpboot/pxelinux.cfg/default
cp: overwrite ‘/var/lib/tftpboot/pxelinux.cfg/default’? y
安裝httpd服務
[root@oldboylnb isolinux]# yum -y install httpd
查看網頁
修改default文件
[root@oldboylnb isolinux]# vim?/var/lib/tftpboot/pxelinux.cfg/default
append?initrd=initrd.img?method=http://172.16.1.201/CentOS7/
append?initrd=initrd.img?inst.repo=http://172.16.1.201/CentOS7/? ?2選1
手動網絡安裝
新建一臺空白虛擬機,也不要掛載ISO鏡像,創建2個網卡,打開電源。LAN區段172.16.1.0/24
自動安裝
創建ks.cfg文件
[root@oldboyedu ks_config]# cat CentOS7-ks.cfg
# Kickstart Configurator for CentOS 7 by yao zhang
install?????????????????????????????? 告知安裝程序,這是一次全新安裝,而不是升級upgrade
url --url=http://172.16.1.201/CentOS7/???? 通過FTP或HTTP從遠程服務器上的安裝樹中安裝
text???????????????????????????????? 使用文本模式安裝
lang en_US.UTF-8???????????????????? 設置在安裝過程中使用的語言以及系統的缺省語言
keyboard us????????????????????????? 設置系統鍵盤類型
zerombr???????????????????????????? 清除mbr引導信息
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" 系統引導相關配置
指定引導記錄被寫入的位置.有效的值如下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)
--driveorder,指定在BIOS引導順序中居首的驅動器
--append=,指定內核參數.要指定多個參數,使用空格分隔它們
network? --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 –activate? 為通過網絡的kickstart安裝以及所安裝的系統配置聯網信息
--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的。
static方法要求在kickstart文件里輸入所有的網絡信息。
network? --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate
network? --hostname=Cobbler
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
--ip=,要安裝的機器的IP地址
--gateway=,IP地址格式的默認網關
--netmask=,安裝的系統的子網掩碼
--hostname=,安裝的系統的主機名
--onboot=,是否在引導時啟用該設備
--noipv6=,禁用此設備的IPv6
--nameserver=,配置dns解析
timezone --utc Asia/Shanghai???????????????? 設置系統時區
authconfig --enableshadow --passalgo=sha512?? 系統認證信息
rootpw? --iscrypted?? ?root密碼$6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
clearpart --all –initlabel?? 清空分區
--all 從系統中清除所有分區,--initlable 初始化磁盤標簽
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 –grow
--fstype=,為分區設置文件系統類型.有效的類型為ext2,ext3,swap和vfat
--asprimary,強迫把分區分配為主分區,否則提示分區失敗
--size=,以MB為單位的分區最小值.在此處指定一個整數值,如500.不要在數字后面加MB
--grow,告訴分區使用所有可用空間(若有),或使用設置的最大值
firstboot –disable???????????????? 負責協助配置redhat一些重要的信息
selinux –disabled???????????????? 關閉selinux
firewall –disabled???????????????? 關閉防火墻
logging --level=info? ????? ???????????設置日志級別
reboot??????? 設定安裝完成后重啟,此選項必須存在,不然kickstart顯示一條消息,并等待用戶按任意鍵后才重新引導,也可以選擇halt關機
%packages
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
wget
vim
bash-completion
%end
[root@oldboyedu ks_config]# cat? /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt 0
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
總結
以上是生活随笔為你收集整理的无人值守安装linux7,kickstart无人值守安装CentOS7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作属于自己的一个微信小程序音乐播放器
- 下一篇: nefuoj1487时空乱流