PXE和Cobble實現自動裝機

t    :PXE:

     預啓動執行環境,是由Intel開發的最新技術,工作於Client/Server的網絡模式,支持終端通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。

     

一、安裝DHCP服務,實現動態地址分配  

~]# yum -y install dhcp
~]# vim /etc/dhcp/dhcpd.conf

option domain-name-servers 172.18.0.1;    //指明分配的DNS
#
default-lease-time 3600;                  
max-lease-time 7200;
#
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;                                
#
subnet 192.168.100.0 netmask 255.255.255.0 {       //地址分配池
        range 192.168.100.20 192.168.100.99;       //地址分配範圍  
        filename "pxelinux.0";                     //引導文件名稱 
        next-server 192.168.100.10;                //引導文件所在的IP地址  
}

測試有無語法錯誤,並啓動dhcp服務:

]# service dhcpd configtest
Syntax: OK
 ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
   //注意:啓動dhcp服務時,會去讀取網卡的配置,如果網卡沒能配置192.168.100.10,會報錯

查看監聽端口:

~]# ss -uan
State       Recv-Q Send-Q      Local Address:Port     Peer Address:Port    
UNCONN      0      0           *:67                   *:*

二、安裝tftp服務,實現文件傳輸

]# yum -y install tftp-server
]# 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        //改爲no就行
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

啓動tftp,並查看監聽端口:

]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
]# ss -uan
State       Recv-Q Send-Q      Local Address:Port     Peer Address:Port    
UNCONN      0      0           *:69                  *:*


三、安裝httpd,提供遠程下載倉庫

]# yum -y install httpd
]# service httpd start


四、掛載虛擬光盤到虛擬機上

]# mkdir /media/cdrom
]# mount /dev/cdrom /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
]# mkdir /var/www/html/centos
]# mount --bind /media/cdrom/ /var/www/html/centos/


五、下載pxe引導文件

]# yum -y install syslinux

複製引導安裝文件到tftp服務的目錄下:

]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/         //引導文件
]# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/ 
                                    //內核和ramdisk
]# cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot
                                    //背景圖片
]# mkdir /var/lib/tftpboot/pxelinux.cfg/		
]# cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default 
                                    //菜單

修改default文件,符合自己的要求:

]# vim /var/lib/tftpboot/pxelinux.cfg/default 
timeout 100        //修改爲10秒
label autoinst
	menu label CentOS 6.5 INSTALL
	menu default
	kernel vmlinuz
	append initrd=initrd.img ks=http://192.168.100.10/centos6.5_x86_64.cfg  //自動裝機文件


五:配置自動裝機文件kickstart

]# vim /var/www/html/centos6.5_x86_64.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enable
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.100.10/centos"
# Root password
rootpw 123456                        
# 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 --host=192.168.100.10
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# System bootloader configuration
bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all  
# Disk partitioning information

part / --bytes-per-inode=4096 --fstype="ext4" --grow --size=1
part /boot --bytes-per-inode=4096 --fstype="ext4" --size=200
part swap --bytes-per-inode=4096 --fstype="swap" --size=8192

%packages --nobase                 //最小化安裝
@core                         
%end

測試能否遠程讀取CentOS倉庫及裝機文件:

wKioL1dBLODiRi4rAAA5tAjPXDA700.png

wKioL1dBLPvzSU6wAABEDxpUduk832.png


六:開啓虛擬機測試能否自動裝機

wKiom1dBLcnj-vo-AARY-UyHLJ8537.png

wKioL1dBL0iiDGpDAAAF7wQS6TU418.png

wKiom1dBLqmiVEBwAAASrPn-l6w411.png



Cobbler:

    Red Hat根據PXE二次封裝的網絡工具,使用更爲簡單: 

]#  yum -y install cobbler dhcp tftp-server syslinux httpd

啓動cobbler並檢測運行環境:

]# service cobblerd start
]# cobbler check 
]# cobbler check
Traceback (most recent call last):
  File "/usr/bin/cobbler", line 36, in <module>
    sys.exit(app.main())       
#報錯,修改配置文件:
]# vim /etc/cobbler/settings
server: 192.168.100.10               //把這兩項修改爲虛擬機的IP地址
next_server: 192.168.100.10   
]# service cobblerd restart
]# service httpd  start             //啓動httpd
]# service xinetd start             //啓動tftp

再一次cobbler check:

wKioL1dBeZni93UKAABHrE_rOWc635.png1、如果當前節點可以訪問互聯網,執行“cobbler get-loaders”命令即可;否則,需要安裝syslinux程序包,而後複製/usr/share/syslinux/目錄下所有文件至/var/lib/cobbler/loaders/目錄中;

2、執行  chkconfig rsync on 命令

3、執行  yum -y install debmirror 命令

4、執行  yum -y install pykickstart 命令

5、執行“openssl passwd -1 -salt $(openssl rand -hex 4)”生成密碼,並用其替換/etc/cobbler/settings文件中default_password_crypted參數的值;

6、執行  yum -y install cman fence-agents 命令

修改完後執行重啓cobblerb並cobbler sync,在次執行cobbler check

]# cobbler check

wKioL1dBewOQo59TAAAlt3c6mLs687.png

1、可以不用管,只要複製了syslinux目錄下的文件過去就行;

2、註釋/etc/debmirror.conf文件中的“@dists="sid";”一行;

3、註釋/etc/debmirror.conf文件中的“@arches="i386";”一行;

]# service cobblerd restart
Stopping cobbler daemon:                                   [  OK  ]
Starting cobbler daemon:                                   [  OK  ]
]# cobbler sync                        //在次同步配置文件

導入光盤到虛擬機裏,生成cobbler的distro和profile文件:

]# mount /dev/cdrom /media/cdrom
]# cobbler import --name="Centos6.5-x86_64" --path=/media/cdrom  //定義distro
]# cobbler distro list
   Centos6.5-x86_64
]# cobbler profile list
   Centos6.5-x86_64
]# cobbler profile remove --name Centos6.5-x86_64    //定義distro時會自動生成一個profile文件,不符合我們的要求,刪除

編輯kickstart文件:

vim /var/lib/cobbler/kickstarts/centos6.cfg 
				
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enable
# Install OS instead of upgrade
install
# Use network installation
url --url="http://172.18.250.76/cobbler/ks_mirror/Centos6.5-x86_64/"
# Root password
rootpw 123456                 
# 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 --host=192.168.100.10
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# System bootloader configuration
bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all  
# Disk partitioning information

part / --bytes-per-inode=4096 --fstype="ext4" --grow --size=1
part /boot --bytes-per-inode=4096 --fstype="ext4" --size=200
part swap --bytes-per-inode=4096 --fstype="swap" --size=8192

%packages --nobase                //最小化安裝
@core
%end

生成符合要求的profile:

]# cobbler profile add --name=centos6.5-x86 --distro=Centos6.5-x86_64  --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg  
]# cobbler profile list
   centos6.5-x86
]# vim /var/lib/tftpboot/pxelinux.cfg/default     //可以修改默認菜單
DEFAULT menu
#PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.com
TIMEOUT 100
TOTALTIMEOUT 6000
ONTIMEOUT centos6.5-x86

執行cobbler sync,一定不要忘了。。。。。

]# cobbler sync 
]# service cobblerd restart
Stopping cobbler daemon:                                   [  OK  ]
Starting cobbler daemon:                                   [  OK  ]

測試能否正常裝機:

wKiom1dBfQbC7DXFAAALx0p4ccA814.png

wKioL1dBfjXxJof_AAAHBxnjZwU780.png

wKioL1dBfk7wDy7qAAAWxvQkkdU592.png



三、cobbler重裝系統之koan

   koan是cobbler的一個輔助工具,koan是kickstart-over-a-network的縮寫安裝在客戶端的使用,koan配合cobbler實現快速重裝linux。

]# yum -y install koan
]# koan --server=192.168.100.10 --list=profiles        //列出cobbler中有哪些profile
- looking for Cobbler at http://192.168.100.10:80/cobbler_api
centos6.5-x86
]# koan --replace-self --server=192.168.100.10 --profile=centos6.5-x86   //重裝系統
- looking for Cobbler at http://192.168.100.10:80/cobbler_api
- reading URL: 
........ '--title=kick1463906560']
- reboot to apply changes
]# reboot               //輸入此命令重啓後,不能再中止重裝,重啓後自動進入pxe裝機。

和--title=kick1463906560一樣

wKiom1dBgFvg0PoxAAAFTNQ4IbE229.png

wKioL1dBgVihyfuhAAAWE6m4jvc346.png

wKiom1dBgIOxHofaAAAWlQNsdGM561.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章