Kickstart無人值守安裝Centos6系統+集成saltstack客戶端程序

    如果要同時上線2,3臺服務器,可以使用手動安裝操作系統,10臺20臺基本沒法忍受,上百臺呢,根本不可能手動安裝管理,只考慮到這裏並不能解決所有問題,只裝個系統並不能滿足批量管理的需求,這就需要在安裝好系統後自動啓動salt客戶端程序,實現在裝完系統後就在運維人員的管理範圍之類,這篇文章就是基於這樣的需求而完成的。

    環境介紹:Centos6.5+PXE+TFTP+FTP+DHCP+Kickstart


    1.配置DHCP服務程序

①安裝DHCP服務 

yum -y install dhcp

②配置DHCP服務

vim /etc/dhcp/dhcp.conf

allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.6.0 netmask 255.255.255.0 {
range 192.168.6.200 192.168.6.210;
option subnet-mask 255.255.255.0;
option routers 192.168.6.1;
option domain-name-servers 202.106.0.20;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.6.107;    #服務器端IP
filename "pxelinux.0";    #引導文件
}

③啓動服務

service dhcpd start


    2.配置TFTP服務程序(提供引導以及驅動文件)

①安裝TFTP服務

yum -y install tftp-server

②配置TFTP服務

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    #在Centos7中沒有這個服務,啓動tftp.socket即可

iptables -I INPUT -p udp --dport 69 -j ACCEPT


    3.配置SYSlinux服務程序(提供引導文件)

①安裝SYSlinux服務

yum -y install syslinux

②複製引導文件到TFTP中

cd /var/lib/tftpboot/

cp /usr/share/syslinux/pxelinux.0 .

mount /dev/cdrom /media/        #掛載光盤鏡像

cp /media/images/pxeboot/{vmlinuz,initrd.img} .

cp /media/isolinux/{vesamenu.c32,boot.msg} .

③修改默認開機菜單

cd /var/lib/tftpboot/

mkdir pxelinux.cfg

cp /media/isolinux/isolinux.cfg pxelinux.cfg/default

chmod a+w pxelinux.cfg/default        #默認是隻讀文件

vim pxelinux.cfg/default

default linux        #修改成linux,這樣在啓動時就會自動選擇此選項
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.5!
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
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=ftp://192.168.66.23 ks=ftp://192.168.66.23/pub/ks.cfg quiet    #修改默認安裝方式爲FTP文件傳輸方式,指定Kickstart應答文件的獲取路徑

label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -


    4.配置vsftpd服務程序

①安裝vsftpd服務

yum -y instlal vsftpd

②啓動vsftpd服務,開啓相應端口

service vsftpd start

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -I INPUT -p tcp --dport 20 -j ACCEPT

iptables -I INPUT -p tcp --dport 21 -j ACCEPT

③拷貝光盤鏡像文件到vsftpd中

cp -r /media/* /var/ftp/

    5.創建Kickstart應答文件

①複製應答文件到VSFTPD中,並添加可讀權限

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

chmod +r /var/ftp/pub/ks.cfg 

②編輯應答文件

vim /var/ftp/pub/ks.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
url --url=ftp://192.168.6.107    #修改爲url安裝方式
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6    #修改爲自動獲取ip 
rootpw  --iscrypted $6$LCJ6k6MZq5bR6VFp$i.UkCmr7KbhB5Wx0IhQ9L834eW3eO1GZRKa0RxFiCGmXvbZd6wN7n7BkP961FU5DaX53ydFlj5lVSmHfGUWrY/
firewall --service=ssh    #防火牆配置
authconfig --enableshadow --passalgo=sha512
selinux --disable    #selinux關閉
reboot        #安裝後自動重啓
timezone Asia/Shanghai    #時區
bootloader --append="rhgb quiet" --location=mbr --driveorder=sda 

clearpart --all --initlabel     #清理所有分區
#LVM方式分區
part /boot --fstype="ext4" --size=200        #boot分區200M
part pv.01 --grow --size=1
volgroup VolGroup --pesize=4096 pv.01
logvol / --fstype="ext4" --name=lv_root --vgname=VolGroup --size=10240    #根分區10G
logvol swap --name=lv_swap --vgname=VolGroup --size=2048    #交換分區2G

%packages        #安裝基礎包
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
@workstation-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end

%post        #安裝後執行腳本
/usr/sbin/ntpdate 182.92.12.11    #和阿里雲服務器對時
/sbin/hwclock -w        #讓硬件時間和系統時間同步
/sbin/ifconfig |grep Bcast|awk '{print $2}'|awk -F '.' '{print $4}' > /etc/hostname    #截取Ip地址最後一段做爲主機名
/usr/bin/yum -y install epel-release        #安裝epel倉庫
/usr/bin/yum -y install salt-minion        #安裝salt客戶端
/bin/sed -i "s/#master: salt/master: 192.168.6.107/" /etc/salt/minion        #修改客戶端配置文件的master連接地址
/sbin/service salt-minion start        #啓動salt-minion服務
/sbin/chkconfig salt-minion on        #因爲裝完系統會自動重啓,所以先設置開機啓動項

%end

    6.自動部署客戶端主機

流程如下:

自動獲取IP--自動開始安裝--自動選擇所有可選項--自動分區--安裝基礎包(621個)--運行腳本--自動重啓--進入操作系統

需要檢查的東西:

主機名(hostname),ip地址(ifconfig),時間(date),salt-minion服務是否已經開啓(service salt-minion status)

    7.和已經安裝好salt客戶端的主機建立連接

①salt-key list

blob.png

看到以ip地址最後一位命名的主機的驗證請求

②salt-key -A

blob.png

至此已經進入運維人員管理範圍。

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