准备:
rhel-server-6.4-x86_64-dvd.iso
salt.tar.gz
第一步: 准备一台服务器,用以管理其他服务器
system---→ rhel-server-6.4-x86_64-dvd.iso
ip---→ 20.10.10.111
hostname----→ admin.black.com
配置好yum源
mkdir /iso
mount /dev/cdrom /iso
创建 /etc/yum.repo.d/yum.repo
第二步: 用admin服务器,做DHCP服务器
需求:
1:给其他服务器分配ip
2:把tftp服务器的地址一并传给其他服务器
3:指定一个支持网络启动的bootloader的文件名字
步骤:
1: yum install dhcp* -y
2 : 修改配置文件
[root@admin ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
subnet 20.10.10.0 netmask 255.255.255.0 {
range dynamic-bootp 20.10.10.10 20.10.10.50;
option routers 20.10.10.111;
next-server 20.10.10.111;
filename "pxelinux.0";
}
3: /etc/init.d/dhcpd restart
测试:
虚拟机上准备一台服务器,网卡用与admin相同的网卡,打开dhcp,remove掉CD/DVD
开机
能获取到ip就表示这一步成功!
第三步: 用admin服务器,再搭建一个tftp服务
需求:需要其为其他服务器提供bootloader文件,vmlinux内核文件,init初始化文件,以及启动用
的菜单文件
步骤:
1:
yum install tftp-server -y
chkconfig tftp on
/etc/init.d/xinetd restart
2 :
mkdir /iso
mkdir /var/lib/tftpboot/pxelinux.cfg
mount /opt/rhel-server-6.4-x86_64-dvd.iso /iso -o loop
cp /iso/isolinx/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /iso/isolinux/* /var/lib/tftpboot/ -rf
3 :
yum install syslinux* -y # 为了得到一个可以网络启动的bootloader
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
/etc/init.d/xinetd restart
测试:
同上;出现菜单文件就表示这部成功
第四步: 用admin服务器,再配置一个nfs服务,用以给安装提供安装目录树
需求:
提供安装目录树
提供kickstart文件
步骤:
修改exports文件,指定共享目录,修改如下:
[root@admin ~]# cat /etc/exports
/iso *(rw)
/opt *(rw)
/etc/init.d/nfs restart
第五步:准备kickstart 用以无人值守安装
需求: 避免批量部署时 需要人机交互
可以手动写一个,也可以利用一个python写的工具,来生成ks文件
步骤:
yum install system-config-kickstart -y
admin]# system-config-kickstart #需要图形解密,也可以在其他服务器上生 成,再cp过来
注意 installation source选项,用的是nfs
其他自行选择,注意关闭iptables,selinux
将生成的ks.cfg 文件保存到 /opt目录下,因为上面,nfs中共享的是/opt目录,
修改default文件
vim /var/lib/tftpboot/pxelinux.cfg/default
# 修改内容如下
timeout 50
......
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=nfs:20.10.10.111:/opt/ks.cfg
测试: 这个时候,在启动其他服务器 ,就应该会自动安装了
第五步: 修改文件/opt/ks.cfg,达到自己的要求,如部署salt,yum源等
# 在admin服务器上准备好需要的包,配置一个ftp服务器,用以其他服务器下载
第一步: 配置ftp服务 准备好文件
yum install vsftpd -y
cp /opt/rhel-server-6.4-x86_64-dvd.iso /var/ftp # 方便其他服务
下载,来配置yum源
mkdir /var/ftp/yum # 配置自己的软件仓库,用以安装salt,将需要的rpm包
拷贝到/var/ftp/yum 下面,然后createrepo
tar -xvf salt.tar.gz -C /
cd /var/ftp/yum
yum install createrepo -y -q
createrepo .
第二步:修该ks.cfg 文件,配置yum源,配置salt 的master/minion 用admin服务器来
管理,做自动化运维
%post
cat >/etc/yum.repos.d/yum.repo<<EOF
[rhel]
name=Red Hat
baseurl=file:///iso
enabled=1
gpgcheck=0
EOF
cat >/etc/yum.repos.d/yum2.repo<<EOF
[rhel-salt]
name=red hat salt
baseurl=ftp://20.10.10.111/yum
enabled=1
gpgcheck=0
EOF
mkdir /iso
curl -o /opt/rhel6.4.iso ftp://20.10.10.111/rhel-server-6.4-x86_64-dvd.iso
mount /opt/rhel6.4.iso /iso -o loop
echo "mount /opt/rhel6.4.iso /iso -o loop" >>/etc/rc.local
yum install wget -y -q
yum install salt-minion -y
ip=`ifconfig eth0 | awk -F"[ :]" 'NR==2 {print $13}'`
sed /^#master:/s/#master.*/master: 20.10.10.111/ /etc/salt/minion -i
sed /^#id:/s/#id:.*/id: $ip/ /etc/salt/minion -i
/etc/init.d/salt-minion restart
chkconfig salt-minion on
%end
测试:
部署完以后,在admin服务器上,安装 salt-master
执行 salt-key -A
salt-key # 查看已经部署好的服务器是否已经加载进来