基于pxe部署系統

一、前言

在生產環境中,我們經常遇到需要部署部署多臺服務器。如果我們每部署一臺服務器都要拿著系統盤到機房部署,守在服務器面前,那么我們的效率是十分低下的。況且有時候機房并不在我們身邊。那么我們可以通過讓機房值班人員為每臺服務器配置好遠程管理卡,運維人員通過遠程管理卡,遠程登入服務器進行操作。

二、pxe原理

pxe原理是通過服務器上網卡中支持的pxe啟動,通過廣播的方式獲取ip地址與下一個服務器的ip地址,pxe客戶端在tftp服務器上下載pxelinux.0文件,pxe客戶端根據pxelinux.0的執行結果,通過tftp服務器加載kernel及ramdisk文件,從而引導系統。具體原理可查考下圖

1.png

三、開始部署pxe服務器

3.1  部署dhcp服務

3.1.1 安裝dhcp服務器并關閉selinux及iptables

[root@localhost ~]# yum install dhcp –y
[root@localhost ~]# setenforce 0            #設置selinux為permissive模式        
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# service iptables stop   #關閉防火墻

3.1.2 配置dhcp服務器

[root@localhost ~]# mv /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
subnet 192.168.19.0 netmask 255.255.255.0 {
  range 192.168.19.100 192.168.19.200;        #dhcp地址池    
  filename "pxelinux.0"                       #下一個尋找的文件                    
  server-name "192.168.19.136"                #下一個尋找的服務器地址            
}

3.1.3設置開機啟動

[root@localhost ~]# chkconfig dhcpd on
[root@localhost ~]# chkconfig --list dhcpd
dhcpd           0:off         1:off         2:on 3:on 4:on 5:on 6:off
[root@localhost ~]# service dhcpd start

3.2 配置tftp服務器

 [root@localhost ~]# yum install -y tftp-server
         service tftp
{
         socket_type        = dgram
         protocol           = udp
         wait               = yes
         user               = root
         server             = /usr/sbin/in.tftpd
         server_args        = -s /var/lib/tftpboot
         disable            = no                    #設置tftp-server開機自動啟動                
         per_source         = 11
         cps                = 100 2
         flags              = IPv4
}

3.3配置pxe工作環境

3.3.1安裝syslinux

[root@localhost ~]# yum install -y syslinux
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

3.3.2 安裝httpd       

[root@localhost tftpboot]# yum install -y httpd
[root@localhost tftpboot]# chkconfig httpd on
[root@localhost tftpboot]# service httpd start

3.3.3提供kernel,ramdisk等文件

[root@localhost tftpboot]# mount /dev/sr0 /mnt/cdrom
[root@localhost tftpboot]# mount --bind /mnt/cdrom /var/www/html/centos/x86_64
[root@localhost tftpboot]# cd /mnt/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost isolinux]# cd /mnt/cdrom/isolinux/
[root@localhost isolinux]# cp vesamenu.c32 boot.msg splash.jpg  /var/lib/tftpboot/
[root@localhost isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

3.3.4提供kickstart文件

4.png

[root@localhost tftpboot]# yum install -y system-config-kickstart
[root@localhost tftpboot]# cp /root/ks.cfg /var/www/html/
#kickstart文件部分示例 
# Firewall configuration
firewall --enabled --service=ssh
# Install OS instead of upgrade
install
# Use network installation
# Firewall configuration
firewall --enabled --service=ssh
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.19.136/centos/x86_64"        #指定安裝源    
# Root password
rootpw --plaintext centos                              #設置root密碼                            
# System authorization information
auth  --useshadow  --passalgo=md5
# Use text mode install
text                                                   #文本模式安裝                                  firstboot --disable
# System keyboard
keyboard us                                            #鍵盤類型                                     
# System language
lang en_US                                             #語言
# SELinux configuration
selinux --enforcing                                    #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 --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=200                  #創建/boot分區
part / --fstype="ext4" --grow --size=1                 #創建/ 分區

四、測試

關閉vmware的dhcp功能

2.png

從pxe啟動后,設置ks文件

3.png

安裝

5.png

參考文獻:http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html

 

原創文章,作者:成吉思汗,如若轉載,請注明出處:http://www.www58058.com/8000

(0)
成吉思汗成吉思汗
上一篇 2015-09-14
下一篇 2015-09-14

相關推薦

  • Linux理論基礎(計算機組成機器功能|Linux發行版|Linux哲學思想)

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。

    2018-03-06
  • 馬哥教育網絡班N22期+第五周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; ~]# grep -E "^(root|user1|fedora)" /etc/passwd | awk -F: '{ print $1 $7 }' root/bin/bash user1/bin/bash fedora/bin/bash 2、…

    Linux干貨 2016-10-17
  • 幾種常見開源協議

    幾種常見的開源協議: 一、GPL詳解: 在自由軟件所使用的各種許可證之中,最為人們注意的也許是通用公開許可證(General Public License,簡稱GPL)。 GPL同其它的自由軟件許可證一樣,許可社會公眾享有:運行、復制軟件的自由,發行傳播軟件的自由,獲得軟件源碼的自由,改進軟件并將自己作出的改進版本向社會發行傳播的自由。 GPL還規定:只要這…

    Linux干貨 2016-07-12
  • 馬哥教育網絡班19期+第八周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。    主要功能:    網橋是一個局域網與另一個局域網之間建立連接的橋梁,屬于數據鏈路層的一種設備。    集線器是可以將一些機器連接起來組成一個局域網的設備。   &n…

    Linux干貨 2016-06-26
  • 馬哥教育網絡班22期+第2周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及相關示例演示。     文件管理類命令有:cp,mv,rm     1. cp:copy           使用方法:      &nbs…

    Linux干貨 2016-08-22
  • 訪問控制列表ACL

     ACL是Access Control List的縮寫,主要的目的是提供傳統的owner、group、others的read、write、execute權限之外的具體權限設置。ACL可以針對單一用戶、單一文件、單一目錄來進行r、w、x的權限設置,對于需要特殊權限的使用狀況非常有幫助。使用getfacl和setfacl來設置查看acl的權限。ACL權…

    Linux干貨 2016-08-07

評論列表(2條)

  • stanley
    stanley 2015-09-14 09:29

    有下篇嗎,過程挺詳細,只是步驟好順利的樣子,我們公司原來有同學在折騰這個過程沒有預期順利,總是卡在ip獲取上

    • 成吉思汗
      成吉思汗 2015-09-15 08:49

      @stanley無下篇,自己電腦上做的實驗,把虛擬機的dhcp功能關閉,只要服務器上dhcp配置好了,就能獲取到ip。其實也沒文章寫的順利,主要卡在kickstart文件上。

欧美性久久久久