一、安装master(在第一台机器上安装master)


    1、 执行:



  1. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  2. yum install epel-release -y
  3. yum install salt-master -y
  4. 第三步骤如未出现以下错误则不用管他,出现了则依照以下方法解决,解决后再执行此操作

       安装salt-master时如遇到如上图问题则执行下命令



       rpm -e glibc-common-2.17-105.el7.x86_64  ##移除安装的glibc-common-2.17-105.el7.x86_64



       注:移除时如出现被某包需要,则把依赖glibc-common-2.17-105.el7.x86_64的包也移除



    

centos8一键部署openstack单机版 centos openstack_运维


       安装salt-master时如遇到如上图问题,先执行 yum list |grep systemd-libs ##查看安装的包


    

centos8一键部署openstack单机版 centos openstack_操作系统_02


     保护多库版本的错是无法自动更新,则现在的解决办法就是把已安装的systemd-libs的版本移除掉(移除状态为install状态的包)


     注:移除时如出现被某包需要,则把依赖glibc-common-2.17-105.el7.x86_64的包也移除


     解决(此命令删除了systemd-libs的包及依赖systemd-libs 的包):


     rpm -e systemd-219-19.el7_2.11.x86_64 systemd-sysv-219-19.el7_2.11.x86_64 libgudev1-219-19.el7_2.11.x86_64


    5、systemctl start salt-master.service ##启动 saltstack master 服务  

    注释:在启动之前应该先配置master文件,添加上interface : '192.168.16.150'

    6、netstat -tunlp | grep python ## 检查saltstack端口及进程的运行状态         

  

centos8一键部署openstack单机版 centos openstack_操作系统_03

  注释:saltstack服务的master主要开启的端口是4505和4506

  7、service firewalld stop ##关闭防火墙

  8、修改selinux为Permissive模式,执行如下两条命令:


           setenforce 0


           getenforce


二、安装minion(在第二台机器上安装minion)


  1. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  2. yum install epel-release -y
  3. yum install salt-minion -y(此步骤如未出现以下错误则不用管他,出现了则依照以下方法解决,解决后再执行此操作 )

    

centos8一键部署openstack单机版 centos openstack_操作系统_04


  解决:


  #rpm -e systemd-sysv-219-19.el7.x86_64


  #rpm -e glibc-common-2.17-105.el7.x86_64 glibc-2.17-105.el7.x86_64


 


  

centos8一键部署openstack单机版 centos openstack_运维_05


  解决:


  #rpm -e systemd-libs-219-19.el7_2.11.x86_64 systemd-219-19.el7_2.11.x86_64 libgudev1-219-19.el7_2.11.x86_64 systemd-sysv-219-19.el7_2.11.x86_64


  #rpm -e nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64 nss-softokn-3.16.2.3-14.2.el7_2.x86_64 nss-3.21.0-9.el7_2.x86_64 nss-sysinit-3.21.0-9.el7_2.x86_64 nss-tools-  3.21.0-9.el7_2.x86_64


  1. 在/etc/salt/minion 文件中加入master的主机ip(如果不添加默认为主机名)

         master: '192.168.16.150'


  1. systemctl start salt-minion.service ## 启动salt-minion服务
  2. service firewalld stop ##关闭防火墙
  3. ps -ef | grep salt | grep -v grep ## 查看salt-minion进程的启动状况
  4. centos8一键部署openstack单机版 centos openstack_SaltStack_06


三、配置saltstack(在master机器上配置):


  1. salt-key -L ##查看当前密钥


centos8一键部署openstack单机版 centos openstack_运维_07


  1. salt-key -A -y   ##接受所有来自客户端密钥,(=example.com 接受指定的密钥)


centos8一键部署openstack单机版 centos openstack_python_08


  1. salt-key -L  ##再次查看当前密钥


centos8一键部署openstack单机版 centos openstack_操作系统_09


 


四、测试(在master机器上操控minion机器):


  1. salt dev002 test.ping #简单测试

 


centos8一键部署openstack单机版 centos openstack_python_10


  1. salt dev002 cmd.run 'uname -r' #运行linux命令

centos8一键部署openstack单机版 centos openstack_运维_11

三、扫盲区


  1、为什么选择SaltStack?


    目前市场上主流的开源自动化配置管理工具有puppet、chef、ansible、saltstack等等。到底选择那个比较好?可以从以下几方面考虑:


       1、语言的选择(puppet/chef vs ansible/saltstack)


        Puppet、Chef基于Ruby开发,ansible、saltstack基于python开发的,运维开发语言热衷于python(后期可做二次开发),排除Puppet、Chef


      2、速度的选择 (ansible vs saltstack)


        ansible基于ssh协议传输数据,SaltStack使用消息队列zeroMQ传输数据。从网上数据来看,SaltStack比ansible快大约40倍。对比ansible,Saltstack缺点是需要安装客户端。为了速度建议选择Saltstack