1. 程式人生 > >Linux 自動化部署安裝 《PXE網路無人值守安裝 》

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截圖

也可以直接修改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