Kickstart+PXE自動部署

Kickstart+PXE自動部署

無人值守安裝簡介

無人值守安裝(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/images/pxeboot/vmlinuz /tftpboot/    
[root@localhost ~]# cp /var/www/html/os/images/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命令)圖形界面不在介紹,可設置中文,和安裝的選項沒什么區別

QQ截圖20160917161238.png我是通過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
#加上優化腳本
cd /root
/usr/bin/wget http://192.168.1.2/shell.tar.gz
/bin/tar -zxf shell.tar.gz
/bin/sh ` find ./ -name '*.sh'
%end
#安裝包我選擇的是Basic模式,添加了中文支持
%packages
@base
@chinese-support
@development
@kde-desktop

%end

注意:

grub-crypt                            #密方式為sha512生成的密碼
Password: rhce
Retype password: rhce
$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0
特別注意分區方面,大小要以機器硬盤大小為主修改編寫(否則出錯),后續還可以加上一些自動化腳本做優化。

原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/47167

(1)
M20_heM20_he
上一篇 2016-09-17
下一篇 2016-09-17

相關推薦

  • 用戶組和權限管理相關作業

    1創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser     [root@ali ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/test…

    Linux干貨 2016-08-02
  • 零距離接觸軟RAID0和RAID5以及邏輯卷LVM

    一、創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄 1、首先手動給虛擬機添加兩塊硬盤 2、添加硬盤后,無需關機,直接讓內核掃描添加的磁盤 [root@centos6 ~]# echo '- – -' >&nbsp…

    Linux干貨 2016-09-01
  • 了解Nginx

    Nginx Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶…

    Linux干貨 2016-11-07
  • 馬哥教育網絡班21期+第13周課程練習

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程) 1)共享名為shared,工作組為magedu; 2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名; 3)添加samba用戶gentoo,centos和u…

    Linux干貨 2016-10-24
  • Linux用戶和組命令

                        groupadd命令用戶和工作組管理 groupadd命令用于創建一個新的工作組,新工作組的信息將被添加到系統文件中。-g:指定新建工作組的id;  -r:創建系統工作組,系統工作組的組ID小于500; -K:…

    2016-02-09
  • 文本處理三劍客之vim

    由于Linux中的配置文件都是以文本方式存在的,所以在Linux的系統中使用文本編輯器來配置系統是一件很重要的事情。而vim由于程序簡單、編輯速度快且能夠檢查編程中的語法錯誤,所以已成為最常用也最重要的文本處理工具。下面我們就來介紹一下。 一、vim的模式 Vim在使用過程中,基本上分為三種模式:命令模式、編輯模式與擴展命令模式。在三種模式下,我們可以執行的…

    Linux干貨 2016-08-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-20 12:42

    文章怎么沒有標題?

欧美性久久久久