首页 > 代码库 > 学习环境搭建<一>批量部署,无人值守,部署salt master/minion

学习环境搭建<一>批量部署,无人值守,部署salt master/minion

%新人自学的,肯定有不对的地方,指出来大家共同学习%


准备:

   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的文件名字

步骤:

   1yum 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相同的网卡,打开dhcpremoveCD/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选项,用的是nfswKioL1N2D63wGi3gAAFqln2mLY0618.jpg

       其他自行选择,注意关闭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,达到自己的要求,如部署saltyum源等

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


本文出自 “dbguy” 博客,请务必保留此出处http://dbguy.blog.51cto.com/8921728/1412725