批量部署,无人值守,部署salt master/minion

2022-07-03 14:35:19 浏览数 (1)

准备

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  # 查看已经部署好的服务器是否已经加载进来

0 人点赞