自動化部署操做系統-Kickstart+PXE自動部署

Kickstart+PXE自動部署

目錄:html

  • 無人值守安裝簡介linux

  • 實戰:PXE批量部署linux操做系統nginx

    • 前言sql

    • 部署dhcp服務shell

    • HTTP服務vim

    • TFTP服務服務器

    • 複製PXE啓動時須要的文件網絡

    • 修改引導啓動菜單app

    • 配置kickstart自動安裝文件(ks.cfg)socket

    • 裝機測試

無人值守安裝簡介

無人值守安裝(Unattended Setup)指軟件安裝時無需任何用戶干預,直接按默認或經過應答文件設置安裝,這對於無特殊需求的用戶或企業大批量部署安裝操做系統及軟件時很是方便。無人值守安裝也稱爲靜默安裝,在安裝過程當中能夠靜默安裝好預先設計集成的一些經常使用軟件,安裝結束之後軟件就已經可使用,不少軟件都支持靜默安裝


PXE:Pre-boot Execution Environment:一種引導方式,計算機含有個PXE支持的網卡(NIC),即網卡中必需要有PXE Client,這樣就能夠經過PXE協議從網絡啓動計算機(網卡必須有PXE芯片),協議分爲Client和Server端,PXE Client在網卡的ROM中,當計算機啓動引導時,BIOS把PXE Client調入內存運行,由PXE Client將放置在遠端的文件經過網絡下載到本地運行。運行PXE協議須要設置DHCP服務器和TFTP服務器,DHCP服務器用來給PXE Client (須要安裝系統的主機)分配一個IP地址,因爲是給PXE Client分配IP地址,因此在配置DHCP服務器時須要增長相應的PXE設置!此外,PXE Client的ROM中,已經存在了TFTPClient。PXE Client 經過TFTP協議到TFTPServer上下載所需文件!


KickStart是一種無人職守安裝方式。KickStart的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲 ks.cfg的文件;在其後的安裝過程當中(不僅侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找 KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。這樣,若是KickStart文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝

實戰:PXE批量部署linux操做系統

前言

在真實的生產環境中,咱們若是遇到新上線不少服務器的話,裝系統是件很麻煩的事情,並且工做效率很低,機房輻射這麼大,咱們掌握了批量安裝的技能,就能夠在一個小時內,解決幾百臺或者更多的系統安裝,下面來說下Kickstart+PXE自動部署,之後還會更新Cobbler你們記得關注下

部署dhcp服務

安裝dhcp服務器並關閉selinux及iptables

[root@localhost ~]# setenforce 0            #設置selinux爲permissive模式        
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# service iptables stop   #關閉防火牆

[root@localhost ~]# yum -y install dhcp                            #安裝
[root@localhost ~]# rpm -ql dhcp |grep "dhcpd.conf"                  #檢查
[root@localhost ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf                        #配置

配置dhcp服務器

ddns-update-style none;    # 不進行DDNS的更新 
ignore client-updates;     # 不容許客戶機更新DNS記錄

subnet 192.168.1.0 netmask 255.255.255.0    # 與下面的range配合聲明可分配IP的範圍
{
       option routers 192.168.1.1 ;        # 設置網關
       range 192.168.1.110 192.168.1.120;   # 可分配的起始IP 結束IP
       option subnet-mask 255.255.255.0;      # 設定netmask
       default-lease-time 21600;              # 設置默認的IP租用期限
       max-lease-time 43200;                 # 設置最大的IP租用期限
       next-server 192.168.1.2 ;           # 用來告知主機TFTP服務器的ip
       filename "/pxelinux.0";      # tftp服務器根目錄下面的文件名(pxelinux.0是PXE專用的一個boot loader 文件)
}

啓動服務

[root@localhost ~]# service dhcpd start                      #啓動
[root@localhost ~]# chkconfig dhcpd on                       #設置開機啓動
[root@localhost ~]# netstat -nlptu |grep dhcp                  #檢查服務
[root@localhost ~]# sed -i 's/DHCPDARGS= /DHCPDARGS=eth1/g' /etc/sysconfig/dhcpd     #僅在eth1上提供dhcp服務
[root@localhost ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf&&sysctl -p  #開啓路由功能

HTTP服務

[root@localhost ~]# yum -y install httpd                     #安裝
[root@localhost ~]# chkconfig httpd on                      #開機自啓動
[root@localhost ~]# service httpd start                      #啓動服務
[root@localhost ~]# mkdir -p /var/www/html/os/6                #建立掛載目錄
[root@localhost ~]# mount /dev/cdrom /var/www/html/os/6           #掛載系統鏡像

TFTP服務

[root@localhost ~]# yum -y install tftp-server                     #安裝
[root@localhost ~]# vim /etc/xinetd.d/tftp                         #配置
service tftp
{
       socket_type                = dgram
       protocol                  = udp
       wait                     = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
       server_args               = -s /tftpboot        #指定默認目錄
       disable                 = no                    #由原來的yes,改成no
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4
}

複製PXE啓動時須要的文件

[root@localhost ~]# yum -y install syslinux  #安裝引導程序(提pxelinux.0文件)
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/              #複製引導文件到TFTP的根目錄
[root@localhost ~]# cp /usr/share/syslinux/{vesamenu.c32,boot.msg,splash.jpg} /tftpboot/
[root@localhost ~]# cp /var/www/html/os/6/p_w_picpaths/pxeboot/vmlinuz /tftpboot/    
[root@localhost ~]# cp /var/www/html/os/p_w_picpaths/pxeboot/initrd.img /tftpboot/
[root@localhost ~]# mkdir -p /tftpboot/pxelinux.cfg              
[root@localhost ~]# cp /var/www/html/os/6/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default    #拷貝啓動菜單

修改引導啓動菜單

[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default                                  
//而後修改下22行(即在後面添加ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp)。第22行的意思是使安裝程序經過http服務器訪問kickstart文件。
#配置文件
label linux
 menu label ^Install or upgrade an existing system
 menu default
 kernel vmlinuz
 append initrd=initrd.img ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp

//檢測文件
[root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default                    #設置文件權限
[root@localhost ~]# ls /var/lib/tftpboot       #檢查
boot.msg  initrd.img  pxelinux.0  pxelinux.cfg  splash.jpg  vesamenu.c32  vmlinuz

配置kickstart自動安裝文件(ks.cfg)

[root@localhost ~]# yum -y install system-config-kickstart  #建議在圖形化界面內安裝配置
[root@localhost ~]# echo $LANG
en_US.UTF-8
[root@localhost ~]#.UTF-8
[root@localhost ~]# system-config-kickstart

圖形化界面配置:(終端中運行system-config-kickstart命令)圖形界面不在介紹,可設置中文,和安裝的選項沒什麼區別(保存到/var/www/html/目錄下)前面引導菜單裏面指定了

wKioL1fc-wOCafT5AAB6Xg3ascA717.png

做者的ks.cfg 我是經過system-config-kickstart製做的

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuration    
firewall --disabled                     #禁止防火牆
# Install OS instead of upgrade
install                                 #告知安裝程序,這是一次全新安裝,而不是升級
# Use network installation
url --url="http://192.168.1.2/os/6"
# Root password
rootpw --iscrypted $1$H8k1EIfB$BD1WyfZ4SkDNsypX1jjgR0   #設定root的密碼
# System authorization information
auth  --useshadow  --passalgo=sha512    #設置密碼加密方式爲sha512 啓用shadow文件
# Use text mode install
text                                    #使用文本模式安裝
firstboot --disable                     #禁止firstboot,firstboot就是咱們使用圖形化安裝完系統,重啓後有一個初始設置
# System keyboard
keyboard us                             #使用美式鍵盤
# System language
lang en_US                              #默認語言是英語
# SELinux configuration
selinux --disabled                      #禁止selinux
# Installation logging level
logging --level=info                    #設定安裝過程當中的日誌級別
# Reboot after installation
reboot                                  #設定安裝完成後重啓
# System timezone
timezone  Asia/Shanghai                 #設置時區
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on #設置安裝完成後的網絡
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr                                 #清空mbr
# Partition clearing information
clearpart --all --initlabel             #清空全部分區
# Disk partitioning information
part /boot --fstype="ext4" --size=200   #新建/boot分區
part swap --fstype="swap" --size=2048   #新建swap分區
part / --fstype="ext4" --grow --size=1  #新建swap分區

%post
#加上優化腳本
mkdir /shell
cd /shell
/usr/bin/wget http://192.168.1.2/shell.tar.gz
/bin/tar -zxf shell.tar.gz
/bin/sh *.sh
%end
#安裝包我選擇的是Basic模式,添加了中文支持
%packages
@base
@chinese-support
@development
@kde-desktop

%end

注意:若是本身製做ks.cfg  root的密碼生成

grub-crypt                            #密方式爲sha512生成的密碼
Password: rhce
Retype password: rhce
$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0

裝機測試

新建一臺虛擬機,若是不是千萬不要把網卡調到第一位,否則會一直重裝,客戶端必須能獲取分配的地址

wKioL1fc_WGDlRpPAAjMu__qhVM063.gif

安裝成功,登陸界面

wKioL1fdAeeS7vHYAAATzvoWTdY154.png

相關文章
相關標籤/搜索