共计 3536 个字符,预计需要花费 9 分钟才能阅读完成。
准备 :
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 # 查看已经部署好的服务器是否已经加载进来
SUSE Linux 11 pxe+DHCP+tftp+ftp 无人值守安装 http://www.linuxidc.com/Linux/2013-06/85481.htm
自建 DHCP TFTP 服务 用 PXE 启动实现无人值守安装 CentOS6 http://www.linuxidc.com/Linux/2014-07/104881.htm
使用 PXE+DHCP+Apache+Kickstart 无人值守安装 CentOS5.8 x86_64 http://www.linuxidc.com/Linux/2012-12/76913.htm
Kickstart 全自动化安装 CentOS 6.3 http://www.linuxidc.com/Linux/2012-12/75570.htm
Kickstart 自动化安装 Linux 笔记 http://www.linuxidc.com/Linux/2012-11/73853.htm
PXE/Kickstart 实现远程自动安装 RedHat Linux http://www.linuxidc.com/Linux/2012-11/73361.htm
DHCP+TFTP+HTTP+Kickstart 网络自动化部署服务器 http://www.linuxidc.com/Linux/2012-11/73852.htm