Linux 自動化部署安裝 《PXE網路無人值守安裝 》
網路無人值守安裝
網路無人值守安裝的作用
常見的Linux安裝方式有光碟安裝和U盤安裝兩種,如果我們有幾十臺甚至上百臺伺服器需要統一部署上架,不論是光碟安裝還是U盤安裝,在生產環境中都需要一臺一臺的逐個安裝,即使你有足夠多的光碟機並燒錄足夠多的光碟,你也會發現這是一個既耗時又耗力的苦差事。因此,我們就希望於使用一種可以批量化部署的方案,以此解決減少部署時間和部署負責度的問題。這種方法就是網路無人值守安裝方案。
網路無人值守安裝就是通過網路啟動時推送啟動或安裝選項,通過匹配被安裝伺服器的網絡卡MAC地址段確認安裝源和安裝方式的一種技術集合,它不是一種技術而是多種技術組合完成的。
網路無人值守安裝的流程簡介
1)DHCP:用以分配ip地址
2)預啟動施行環境(PXE):通過網絡卡引導計算機
3)PXELINUX:提供引導檔案及核心等檔案
4)kickstart檔案:提供安裝介質
DHCP的部署
dhcp簡介
DHCP是DynamicHostConfigurationProtocol的縮寫。
它的前身是BOOTP。BOOTP原本是用於無盤主機連線的網路上面的:網路主機使用BOOTROM而不是磁碟起動並連線上網路﹐BOOTP則可以自動地為那些主機設定TCP/IP環境。但BOOTP有一個缺點:在設定前須事先獲得客戶端的硬體MAC地址,而且與IP的對應是靜態的。換而言之,BOOTP非常缺乏”動態性”,若在有限的IP資源環境中,BOOTP的一對一的對應關係會造成非常大的浪費。DHCP可以看作是BOOTP的增強版本﹐它分為兩個部份:伺服器端和客戶端。所有的IP地址設定資料都由DHCP伺服器集中管理﹐並負責處理客戶端的DHCP要求;而客戶端則會使用從伺服器分配下來的IP環境資料。比較起BOOTP,DHCP透過“租約”的概念,有效且動態的分配客戶端的TCP/IP設定,而且作為相容考量,DHCP也完全照顧了BOOTPClient 的需求。
當DHCP 客戶端第一次登入網路的時候,也就是客戶發現本機上沒有任何 IP 資料,它會向網路發出一個 DHCPDISCOVER封包。因為客戶端還不知道自己屬於哪一個網路,所以封包的來源位址會為 0.0.0.0 ,而目的位址則為 255.255.255.255 ,然後再附上DHCPDISCOVER 的資訊,向網路進行廣播。 當 DHCP 伺服器監聽到客戶端發出的DHCPDISCOVER 廣播後,它會從那些還沒有租出的IP地址範圍內按一定順序選出一個IP 地址 ,連同其它TCP/IP 設定,迴應給客戶端一個DHCPOFFER 封包。由於客戶端在開始的時候還沒有 IP 位址,所以在其DHCPDISCOVER 封包內會帶有其MAC 地址資訊,並且有一個 XID 編號來辨別該封包,DHCP 伺服器迴應的DHCPOFFER封包則會根據這些資料傳遞給要求租約的客戶。根據伺服器端的設定,DHCPOFFER封包會包含一個租約期限的資訊。如果客戶端收到網路上多臺DHCP 伺服器的迴應,只會挑選其中一個DHCPOFFER(通常是最先抵達的那個),並且會向網路傳送一個DHCPREQUEST廣播封包,告訴所有DHCP 伺服器它將指定接受哪一臺伺服器提供的 IP 地址。同時,客戶端還會向網路傳送一個ARP 封包,查詢網路上面有沒有其它機器使用該 IP 地址;如果發現該 IP 已經被佔用,客戶端則會送出一DHCPDECLINE 封包給 DHCP 伺服器,拒絕接受其 DHCPOFFER,並重新發送 DHCPDISCOVER 資訊。 當 DHCP 伺服器接收到客戶端的 DHCPREQUEST 之後,會向客戶端發出一個DHCPACK 迴應,以確認 IP 租約的正式生效,也就結束了一個完整的DHCP 工作過程。
注意:dhcp是不能跨物理網路的,同樣,如果說同一個環境中有多個dhcp伺服器,則會選擇使用最先返回結果的那個dhcp伺服器提供的IP地址。
所以在實驗環境裡,我們統一關閉eth0,以192.168.0.0/24網段的伺服器來進行試驗。
基礎環境配置如下:
servera作為閘道器,serverg作為配置整體服務的伺服器。
1)serverg關閉eth0
[kiosk@foundation0 Desktop]$ ssh [email protected]172.25.0.10
Last login: Thu Dec 8 08:02:03 2016 from 172.25.0.250
[root@servera ~]# ssh [email protected]
The authenticity of host '192.168.0.16 (192.168.0.16)' can't be established.
ECDSA key fingerprint is 0b:1f:3b:13:2e:d2:10:53:4c:3d:c8:f4:86:24:d3:5e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.16' (ECDSA) to the list of known hosts.
[email protected]'s password:
Last login: Thu Dec 8 08:01:22 2016 from 172.25.0.250
[root@serverg ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
IPV6INIT=no
IPADDR=192.168.0.16
GATEWAY=192.168.0.10
NETMASK=255.255.255.0
[root@serverg ~]# systemctl restart network
[root@serverg ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.10 0.0.0.0 UG 0 0 0 eth1
172.25.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
[root@serverg ~]# ifdown eth0
2)servera配置防火牆規則,讓serverg訪問172.25.254.250的資料包能夠出去
[root@servera ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@servera ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@servera ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.25.0.10
[root@serverg ~]# mount 172.25.254.250:/content /mnt
配置 DHCP
1)安裝軟體包
[[email protected] mnt]# yum -y install dhcp
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00
(1/2): rhel_dvd/group_gz | 134 kB 00:00
(2/2): rhel_dvd/primary_db | 3.4 MB 00:00
Resolving Dependencies
--> Running transaction check
---> Package dhcp.x86_64 12:4.2.5-36.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
dhcp x86_64 12:4.2.5-36.el7 rhel_dvd 510 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 510 k
Installed size: 1.4 M
Downloading packages:
dhcp-4.2.5-36.el7.x86_64.rpm | 510 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 12:dhcp-4.2.5-36.el7.x86_64 1/1
Verifying : 12:dhcp-4.2.5-36.el7.x86_64 1/1
Installed:
dhcp.x86_64 12:4.2.5-36.el7
Complete!
2)配置DHCP服務
[[email protected] mnt]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[[email protected] mnt]# vim /etc/dhcp/dhcpd.conf
allow booting; # 定義能夠pxe啟動
allow bootp; # 定義支援bootp
option domain-name "pod0.example.com";
option domain-name-servers 172.25.254.254;
default-lease-time 600; # 租約時間
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.50 192.168.0.60; # 地址池範圍
option domain-name-servers 172.25.254.254; # DNS伺服器地址
option domain-name "pod0.example.com"; # 域名
option routers 192.168.0.10; # 閘道器
option broadcast-address 192.168.0.255; # 廣播地址
default-lease-time 600; # 租約時間
max-lease-time 7200;
next-server 192.168.0.16; # tftp的伺服器ip地址
filename "pxelinux.0"; # 下載的引導檔案的名字,pxe環境的檔名字都是pxelinux.0、
}
class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "foo";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "foo";
range 10.0.29.10 10.0.29.230;
}
[[email protected] mnt]# systemctl restart dhcpd
配置 TFTP
PXE(Preboot Execution Environment)是由Intel設計的協議,它可以使計算機通過網路啟動。協議分為客戶端和伺服器兩端,PXE 客戶端在網絡卡的ROM中,當計算機引導時BIOS把PXE客戶端調入記憶體執行,並顯示出命令選單,經使用者選擇後,PXE客戶端將放置在遠端的作業系統通過網路下載到本地執行。PXE協議的成功執行需要解決以下兩個問題:第一,IP由誰和如何分配分配;第二,客戶端所需系統核心和其他檔案從哪裡得到。
對於第一個問題,可以通過DHCP 服務解決,由DHCP 服務來給PXE 客戶端分配一個IP地址,同時在配置DHCP Server時,需要增加相應的PXE特有配置。比如告訴PXE客戶端所需檔案到哪裡找。至於第二個問題,在PXE 客戶端所在的ROM中,已經存在了TFTP 客戶端。PXE客戶端使用TFTP 客戶端,通過TFTP協議到TFTP 伺服器上下載所需的檔案。
1)tftp的安裝
[root@serverg mnt]# yum -y install tftp-server
[root@serverg mnt]# ll -d /var/lib/tftpboot/
drwxr-xr-x. 2 root root 6 Jan 27 2014 /var/lib/tftpboot/
2)配置pxelinux.0相關檔案
[root@serverg mnt]# yum -y install syslinux # pxelinux.0檔案由該軟體提供
[root@serverg mnt]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 將pxelinux.0的引導放至共享目錄下。
[root@serverg tftpboot]# mkdir pxelinux.cfg
[root@serverg tftpboot]# cd pxelinux.cfg/
[root@serverg pxelinux.cfg]# ls
[root@serverg pxelinux.cfg]# touch default # 建立pxelinux的相關配置檔案,配置檔名稱固定為default
[root@serverg pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@serverg pxelinux.cfg]# vim default
default vesamenu.c32 # 提供圖形介面
timeout 60 # 超時時間
display boot.msg # 介紹資訊
menu background splash.jpg # 背景圖片
menu title Welcome to Global Learning Services Setup! # 大標題
label local # 標籤
menu label Boot from ^local drive # 標題
menu default # 指定超時時間裡沒選標題,預設從那個標題進入
localhost 0xffff # 本地啟動位置
label install
menu label Install rhel7
kernel vmlinuz # 核心所在位置
append initrd=initrd.img ks=http://192.168.0.16/myks.cfg # 指定initrd檔案及後續kickstart檔案所在位置
3)相關檔案放置到/var/lib/tftpboot
[root@serverg ~]# cd /mnt/rhel7.1/x86_64/dvd/isolinux
[root@serverg isolinux]# cp boot.msg vmlinuz vesamenu.c32 initrd.img /var/lib/tftpboot/
4)啟動TFTP服務端
[root@serverg html]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@serverg html]# systemctl restart xinetd
部署Kickstart 檔案
1)編輯kickstart自動應答檔案,該檔案可以自己手動編輯也可通過圖形化介面編輯
圖形化編輯工具
[root@workstation ~]# yum -y install system-config-kickstart
[root@workstation ~]# system-config-kickstart
也可以直接修改kickstart檔案
[[email protected] ~]# cp anaconda-ks.cfg /var/www/html/
[[email protected] ~]# cd /var/www/html/
[[email protected] html]# mv anaconda-ks.cfg myks.cfg
[[email protected] html]# vim myks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Reboot after installation
reboot # 裝完系統之後是否重啟
# Use network installation
url --url="http://192.168.0.16/dvd/" # 網路安裝介質所在位置
# Use graphical install
#graphical
text # 採用字元介面安裝
# Firewall configuration
firewall --enabled --service=ssh # 防火牆的配置
firstboot --disable
ignoredisk --only-use=vda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us' # 鍵盤的配置
# System language
lang en_US.UTF-8 # 語言制式的設定
# Network information
network --bootproto=dhcp # 網路設定
network --hostname=localhost.localdomain
#repo --name="Server-ResilientStorage" --baseurl=http://download.eng.bos.redhat.com/rel-eng/latest-RHEL-7/compose/Server/x86_64/os//addons/ResilientStorage
# Root password
rootpw --iscrypted nope
# SELinux configuration
selinux --disabled
# System services
services --disabled="kdump,rhsmcertd" --enabled="network,sshd,rsyslog,ovirt-guest-agent,chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append="console=tty0 crashkernel=auto" --location=mbr --timeout=1 --boot-drive=vda
# 設定boot loader安裝選項 --append指定核心引數 --location 設定引導記錄的位置
# Clear the Master Boot Record
zerombr # 清空MBR
# Partition clearing information
clearpart --all --initlabel # 清空分割槽資訊
# Disk partitioning information
part / --fstype="xfs" --ondisk=vda --size=6144 # 設定根目錄的分割槽情況
%post # 裝完系統後執行指令碼部分
echo "redhat" | passwd --stdin root
useradd carol
echo "redhat" | passwd --stdin carol
# workaround anaconda requirements
%end
%packages # 需要安裝的軟體包
@core
%end
配置httpd的共享服務,將myks.cfg和安裝介質放置到/var/www/html目錄下
[root@serverg ~]# yum -y install httpd
[root@serverg rhel7.1]# cd /var/www/html/
[root@serverg html]# ls
myks.cfg
[root@serverg html]# chown apache myks.cfg
[root@serverg html]# mkdir dvd
[root@serverg html]# cd /mnt/rhel7.1/x86_64/isos
[root@serverg isos]# mount -o loop rhel-server-7.1-x86_64-dvd.iso /var/www/html/dvd/
[root@serverg html]# systemctl restart httpd
至此,整體安裝完成。
開啟install虛擬機器測試,測試結果略
附上操作筆記(便於大家實際操作):
PXE 網路無人值守安裝
重點: 關閉selinux與iptables
[root@pxeserver ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@pxeserver ~]# echo "setenforce 0" >> /etc/rc.local
[root@pxeserver ~]# source /etc/rc.local
[root@pxeserver ~]# iptables -F
[root@pxeserver ~]# echo "/sbin/iptables -F" >> /etc/rc.local
設定固定的IP地址: 172.25.1.10
[root@pxeserver ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
部署:
第一步:
匯入ISO 配置YUM源:
下載iso到home目錄:
download –> rhel-server-6.5-x86_64-dvd.iso (自行下載)
[root@pxeserver ~]# mkdir /yum
[root@pxeserver ~]# echo "/home/rhel-server-6.5-x86_64-dvd.iso /yum iso9660 loop,ro 0 0" >> /etc/fstab
[root@pxeserver ~]# mount -a
第二步: 釋出ISO
1) 通過NFS釋出:
[root@pxeserver ~]# yum -y install nfs-utils rpcbind
[root@pxeserver ~]# vim /etc/exports
/yum *(ro,sync)
[root@pxeserver ~]# service rpcbind restart
[root@pxeserver ~]# service nfs start
[root@pxeserver ~]# chkconfig nfs on
[root@pxeserver ~]# chkconfig rpcbind on
[root@pxeserver ~]# showmount -e localhost
Export list for localhost:
/yum *
2) 通過vsftpd釋出
[root@pxeserver ~]# yum -y install vsftpd
[root@pxeserver ~]# service vsftpd start
[root@pxeserver ~]# chkconfig vsftpd on
[root@pxeserver ~]# mkdir -p /var/ftp/pub/rhel6u5/dvd
[root@pxeserver ~]# echo "/home/rhel-server-6.5-x86_64-dvd.iso /var/ftp/pub/rhel6u5/dvd iso9660 loop,ro 0 0" >> /etc/fstab
[root@pxeserver ~]# mount -a
[root@pxeserver ~]# wget ftp://localhost/pub/rhel6u5/dvd/README &> /dev/null && echo YES
YES
3) 通過httpd釋出
[root@pxeserver ~]# yum -y install httpd
[root@pxeserver ~]# ln -s /var/ftp/pub/rhel6u5/dvd/ /var/www/html/rhel6u5
[root@pxeserver ~]# service httpd start
[root@pxeserver ~]# chkconfig httpd on
[root@pxeserver ~]# wget http://localhost/rhel6u5/README &> /dev//null && echo "http-ok"
http-ok
第三步 配置TFTP服務
[root@pxeserver ~]# yum -y install tftp-server xinetd
[root@pxeserver ~]# vim /etc/xinetd.d/tftp
disable = no
[root@pxeserver ~]# service xinetd start
[root@pxeserver ~]# chkconfig xinetd on
[root@pxeserver ~]# netstat -unlp |grep :69
1) 安裝pxelinux.0軟體系統
[root@pxeserver ~]# yum -y install syslinux
[root@pxeserver ~]# rpm -ql syslinux |grep pxe
[root@pxeserver ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
2) 釋出選單
[root@pxeserver ~]# cd /yum/isolinux
[root@pxeserver isolinux]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@pxeserver isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
3)釋出核心檔案
[root@pxeserver isolinux]# mkdir /var/lib/tftpboot/rhel6u5
[root@pxeserver isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/rhel6u5/
4)釋出其他檔案
[root@pxeserver isolinux]# cp splash.jpg vesamenu.c32 /var/lib/tftpboot/
[root@pxeserver tftpboot]# find /var/lib/tftpboot/
/var/lib/tftpboot/
/var/lib/tftpboot/vesamenu.c32
/var/lib/tftpboot/pxelinux.0
/var/lib/tftpboot/pxelinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default
/var/lib/tftpboot/rhel6u5
/var/lib/tftpboot/rhel6u5/initrd.img
/var/lib/tftpboot/rhel6u5/vmlinuz
/var/lib/tftpboot/splash.jpg
第四步: 配置DHCP
[root@pxeserver ~]# yum -y install dhcp
[root@pxeserver ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y
[root@pxeserver ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "uplooking.org";
option domain-name-servers 172.25.1.10, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.25.1.0 netmask 255.255.255.0 {
range 172.25.1.200 172.25.1.240;
option routers 172.25.1.10;
option broadcast-address 172.25.1.255;
next-server 172.25.1.10; ---tftpserver的IP地址
filename "pxelinux.0"; ---對應檔案/var/lib/tftpboot/pxelinux.0
}
[root@pxeserver ~]# dhcpd -d
[root@pxeserver ~]# service dhcpd start
[root@pxeserver ~]# chkconfig dhcpd off
第五步: 配置ks指令碼
安裝kickstart工具
[root@pxeserver ~]# yum -y install system-config-kickstart
[root@pxeserver ~]# system-config-kickstart
[[email protected] html]# vim /var/www/html/rhel6u5_ks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuratio**n**
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://172.25.1.10/pub/rhel6u5/dvd"
# Root password
rootpw --plaintext redhat
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append="selinux=0" --location=mbr --md5pass="$1$0kWtIVNF$h/pOlMeoOCxikLwaEy0pV/"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=11000
part swap --fstype="swap" --size=1024
%post
cat > /etc/yum.repos.d/pxe.repo << EOT
[pxe]
baseurl=ftp://172.25.1.10/pub/rhel6u5/dvd
gpgcheck=0
EOT
%end
%packages
@chinese-support
lftp
ftp
wget
%end
[root@pxeserver ~]# mv /root/ks.cfg /var/www/html/rhel6u5_ks.cfg
* 重點:
修改選單 釋出ks URL路徑:
[root@pxeserver ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to Uplooking Edu!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img
label auto6
menu label Auto Install RHEL6.5
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img ks=http://172.25.1.10/rhel6u5_ks.cfg
label rescue
menu label ^Rescue installed system
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img rescue
label local
menu label Boot from ^local drive
menu default
localboot 0xffff
第六步: 配置DNS正反向解析:
[root@pxeserver ~]# yum -y install bind
[root@pxeserver ~]# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; any; };
recursion no;
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[[email protected] ~]# vim /etc/named.rfc1912.zones
zone "uplooking.org" IN {
type master;
file "uplooking.org.zone";
allow-update { none; };
};
zone "1.25.172.in-addr.arpa" IN {
type master;
file "172.25.1.rev";
allow-update { none; };
};
[[email protected] named]# vim uplooking.org.zone
@ IN SOA ns1.uplooking.org. rname.invalid. (
10 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1.uplooking.org.
ns1 A 172.25.1.10
for i in {100..120}; do echo -e "desktop$i\tA\t172.25.1.$i" >> /var/named/uplooking.org.zone; done
[[email protected] named]# vim 172.25.1.rev
$TTL 1D
@ IN SOA ns1.uplooking.org. rname.invalid. (
10 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1.uplooking.org.
10 PTR ns1.uplooking.org.
[root@pxeserver named]# for i in {100..120}; do echo -e "$i\tPTR\tdesktop$i.uplooking.org." >> /var/named/172.25.1.rev ; done
[root@pxeserver named]# chgrp named uplooking.org.zone 172.25.1.rev
[root@pxeserver named]# service named restart
[root@pxeserver named]# chkconfig named on
[root@pxeserver ~]# echo "nameserver 172.25.1.10" > /etc/resolv.conf
[root@pxeserver ~]# dig -t axfr uplooking.org
**測試:
注意 關閉Vmware虛擬機器的(自帶)DHCP伺服器
設定pxesever主機為host-only模式(單獨區域網)
新建一臺虛擬主機 通過PXE安裝系統**
補充%pre
%pre
clearpart –all
part /boot –fstype ext4 –size=100
part pv.100000 –size=10000
part swap –size=512
volgroup vg –pesize=32768 pv.100000
logvol /home –fstype ext4 –name=lv_home –vgname=vg –size=480
logvol / –fstype ext4 –name=lv_root –vgname=vg –size=8192
%end
補充%post
#selinux status stop
#sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux
#iptabls stop
iptables -F
service iptables save
chkconfig iptables off
如何增加一個新的標籤安裝RHEL7系統?
如何增加一個新的標籤安裝RHEL5系統?
1> 下載ISO 併發布
[root@pxeserver ~]# mkdir /var/ftp/pub/rhel7u2/dvd -p
[root@pxeserver ~]# mount -o loop /root/rhel-server-7.2-x86_64-dvd.iso /var/ftp/pub/rhel7u2/dvd
2> 生成ks檔案
rhel7u2_ks.cfg
3> 增加新的ks選單
[root@pxeserver ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label auto7
menu label Auto Install RHEL7.2
kernel rhel7u2/vmlinuz
append initrd=rhel7u2/initrd.img ks=http://172.25.1.10/rhel7u2_ks.cfg
4> 釋出當前版本的核心檔案
[root@pxeserver ~]# mkdir -p /var/lib/tftpboot/rhel7u2
[root@pxeserver ~]# cd /var/ftp/pub/rhel7u2/dvd/isolinux/
[root@pxeserver isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/rhel7u2/
測試:
++++++++++++++++++++++++++++++++++++++
rhel7u2_ks.cfg
++++++++++++++++++++++++++++++++++++++
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Reboot after installation
reboot # 裝完系統之後是否重啟
# Use network installation
url --url="http://172.25.1.10/rhel7u2/dvd/" # 網路安裝介質所在位置
# Use graphical install
#graphical
text # 採用字元介面安裝
# Firewall configuration
firewall --enabled --service=ssh # 防火牆的配置
firstboot --disable
ignoredisk --only-use=vda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us' # 鍵盤的配置
# System language
lang en_US.UTF-8 # 語言制式的設定
# Network information
network --bootproto=dhcp # 網路設定
# Root password
rootpw --iscrypted nope
# SELinux configuration
selinux --disabled
# System services
services --disabled="kdump,rhsmcertd" --enabled="network,sshd,rsyslog,ovirt-guest-agent,chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append="console=tty0 crashkernel=auto" --location=mbr --timeout=1 --boot-drive=vda
# 設定boot loader安裝選項 --append指定核心引數 --location 設定引導記錄的位置
# Clear the Master Boot Record
zerombr # 清空MBR
# Partition clearing information
clearpart --all --initlabel # 清空分割槽資訊
# Disk partitioning information
part / --fstype="xfs" --ondisk=vda --size=6144 # 設定根目錄的分割槽情況
%post # 裝完系統後執行指令碼部分
echo "redhat" | passwd --stdin root
useradd carol
echo "redhat" | passwd --stdin carol
# workaround anaconda requirements
%end
%packages # 需要安裝的軟體包
@core
%end
+++++++++++++++++++++
rhel5u4_ks.cfg
+++++++++++++++++++++
#platform=x86, AMD64, 或 Intel EM64T
key --skip
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr --md5pass=$1$MUnByNpz$WVFU9CQ.cnLdHPjOjfKvO/
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=ftp://172.25.1.1/pub/rhel5.4
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
rootpw --iscrypted $1$dTFnL7xR$f6xjhRJbxoKxPt69HLv2V0
# SELinux configuration
selinux --disabled
# System timezone
timezone --isUtc Asia/Shanghai
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=8 --resolution=800x600 --startxonboot
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
part / --bytes-per-inode=4096 --fstype="ext3" --size=15000
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
%pre
#clearpart --linux
#part /boot --fstype ext3 --size=200
#part pv.3 --size=20000
#part swap --size=1024
#volgroup vol0 --pesize=32768 pv.3
#logvol / --fstype ext3 --name=root --vgname=vol0 --size=15000
#logvol /home --fstype ext3 --name=home --vgname=vol0 --size=992
%post
echo "nameserver 172.25.1.1" >> /etc/reslov.conf
%packages
@gnome-desktop
@development-libs
@development-tools
@graphical-internet
@graphics
@chinese-support
@editors
相關推薦
Linux 自動化部署安裝 《PXE網路無人值守安裝 》
網路無人值守安裝 網路無人值守安裝的作用 常見的Linux安裝方式有光碟安裝和U盤安裝兩種,如果我們有幾十臺甚至上百臺伺服器需要統一部署上架,不論是光碟安裝還是U盤安裝,在生產環境中都需要一臺一臺的逐個安裝,即使你有足夠多的光碟機並燒錄足夠多的光碟
Linux基礎學習-使用PXE+Kickstart無人值守安裝服務
無人值守安裝系統 PXE(Preboot eXecute Environment,預啟動執行環境)是由Intel公司開發的技術,可以讓計算機通過網路來啟動作業系統(前提是計算機上安裝的網絡卡支援PXE技術),主要用於在無人機值守安裝系統中引導客戶端主機安
CentOS 7部署PXE+kickstart無人值守安裝操作系統
楓雨1.簡介1.1kickstart 是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄人工幹預填寫的各種參數,並生成一個名為ks.cfg的文件。如果在自動安裝過程中出現要填寫參數的情況,安裝程序首先會去查找ks.cfg文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便會彈出對話
Linux應該這麼學第19章使用 PXE+Kickstart 無人值守安裝服務
本章講解了如下內容: ➢ 無人值守安裝系統; ➢ 部署相關服務程式; ➢ 自動部署客戶端主機。 剛入職的運維新手經常會被要求去做一些安裝作業系統的工作。如果按照第 1 章講解的 用光碟映象來安裝作業系統,其效率會相當低下。本章將介紹可以實現無人值守安裝服務的 PXE+Kick
PXE+Kickstart無人值守安裝操作系統
單位 flag 而且 desktop centos6.7 情況 系統 同時 tftpd 1.PXE的工作過程: 1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP; 2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位
PXE+Kickstart無人值守安裝CentOS 7出現DHCP故障解決報告
部署dhcp服務器 部署DHCP服務器 在安裝dhcp.x86_64 後,用命令systemctlstatus dhcpd 命令查看dhcp服務運行狀態發現failed。報錯信息為如下圖:Not configured to listen on any interfac
Centos6.5下 PXE+Kickstart無人值守安裝
transacti == cdrom resolved finished png share max ase Centos6.5下 PXE+Kickstart無人值守安裝 PXE(Preboot eXecute Environment,預啟動執行環境)是由Intel公司開發
CentOS 6.x下PXE+Kickstart無人值守安裝操作系統
系統安裝 pxe kickstart 一、PXE1 什麽是PXE: PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網
(轉)PXE+kickstart無人值守安裝CentOS 7
給定 說明 尋找 包括 bms roo 子菜單 基本上 獨立 kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart無人值守安裝CentOS6的續篇
Centos-7.3配置PXE+kickstart無人值守安裝
log ftp term alt 環境 ges wall 系統版本 serve Centos-7.3配置PXE+KICKSTART自動安裝系統 首先查看當前系統版
PXE實現無人值守安裝CentOS 6
log 根目錄 syslinux ans http water sys vim 分區 需求 在實際工作中,我們經常會遇到這樣的情況:想要安裝Linux但是計算機不帶光驅或軟驅,或者是筆記本配置的非標準的軟驅和光驅,如1394接口,USB接口等,在Linux安裝時所引導的L
PXE+kickstart無人值守安裝CentOS
dac dir pbo 6.4 ... RoCE kconfig 共享 swa 使用tftp,dhcp,配合PXE搭建批量安裝linux系統服務端系統環境 實驗環境:VMware Workstation 10 系統平臺:CentOS release 6.4 (最小化安裝)
使用PXE+Kickstart無人值守安裝服務
一、簡介 使用PXE+TFTP+FTP+DHCP+Kickstart服務搭建出一個無人值守安裝系統,可以無人值守就可以為數10臺伺服器安裝系統,大大提高系統安裝效率。 PXE(preboot execute environment,預啟動執行環境)是由Int
Pxe+kickstart 無人值守安裝centos7.2(最小化)
一、PXE解釋與工作流程圖:1.什麼是pxePXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動
PXE+Kickstart無人值守安裝系統
PXE + Kickstart無人值守安裝系統 前言 什麼是PXE PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發。工作於Client/Server的網路模式,支援工作
CentOS 6.9下PXE+Kickstart無人值守安裝操作系統附常見問題
參數 rii 註釋 config 實現 記錄 centos 6 的人 工具 CentOS 6.9下PXE+Kickstart無人值守安裝操作系統 一、簡介 1.1 什麽是PXE PXE(Pre-boot Execution Environment,預啟動執行環境)是由Int
PXE+Kickstart無人值守安裝CentOS 7
redis serve epel issues 都是 ifcfg-eth 即使 swap basic 本文目錄: 1.1 PXE說明 1.2 PXE流程 1.3 部署環境說明 1.4 部署DHCP服務 1.5 部署FTP 1.6 提供
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統
pwd 概述 .com 掛載 name 翻譯 epo 服務狀態 信息 一、概述 1、關於PXEPreboot Execution Environment翻譯過來就是預啟動執行環境;簡稱PXE;傳統安裝操作系統的方法是CDROM或U盤引導,而PXE技術解決的是從網絡引導安裝系
Linux PXE遠程安裝服務 並實現KIckstart無人值守安裝
網絡工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址 實驗目標:部署PXE遠程安裝服務 、並實現KIckstart無人值守安裝 server_args = -s /var/lib