saltstack 简单使用

简单说明salt  ‘*’  cmd.run “df -h”

salt  是固定的写法   *  是执行目标 ,  cmd是执行模块 ,  run是方法,df –h 就是方法的参数了

master和minion之间的通信除了是加密的的秘钥建立的连接外,通信是通过zeromq来实现的,通过队列的发布订阅机制,master对所有的minion发布命令,通过对目标的限制来确定是哪些minion返回信息

    例如需要让slave1来返回命令w的信息

   saltstack 简单使用

     

Salt的两大功能,远程执行和状态管理(也叫配置管理),所对应的模块就是执行模块和状态模块

所有在命令行里执行的模块都是执行模块,后续在配置文件里出现的才是状态模块,执行模块和状态模块的名字有些是一样的,甚至参数都一样,注意区分

1.  状态管理

状态的配置文件采用yaml格式,注意冒号后边有空格,通过缩进来辨识层级关系,缩进每次两个空格,用  -  来表示列表,每个 -  后边都会有空格。

状态编写

修改master配置文件

vim  /etc/salt/master   677行

 添加相关信息

saltstack 简单使用

 注意缩进和冒号

重启master服务,因为我们修改了配置文件,需要重新弄加载

systemctl  restart   salt-master

状态管理文件都是sls结尾的,而且是一定要sls结尾,而且文件名要小写。

状态管理就是描述一个状态,符合就返回,不符合就执行命令让你符合,变成符合描述的状态,你安装了就不再安装,没启动服务,我帮你启动起来

/srv/salt/base  下建立一个apache.sls  文件

 

apache-install:

  pkg.installed:

    - name: httpd               

apache-service:

  service.running:

    - name: httpd

    - enable: True

 保存退出:

配置项简单说明:

 apache-installed:  这个是id,全局唯一

 pkg是模块名,installed是方法名

name是参数,name是sale里边的一个比较特殊的参数,参数值是httpd

          

整体说就是检查服务器有没有安装httpd这个包,有的话略过,没有的话就会安装上

下边的service是启动模块,也是id唯一,检查httpd是否启动,是否开机启动,如果没有就启动服务并设定开机启动

总的来说是相当于写了一个apache的安装启动脚本,检测是否安装apache,安装后检查是否设定了开机启动和是否启动,没启动给启起来,大体如此!!

为slave1执行这个apache状态管理

salt ‘slave1‘ state.sls apache

 saltstack 简单使用

可以看到minion id slave1

执行的安装状态id名称,方法,参数和返回状态为True

 saltstack 简单使用

同样的执行模块返回类似的数据

最后还有Success 和 Failed的返回值

重点看changes下的返回信息,这是改变内容的返回值

如果再次执行命令,可以看到changes返回值就是0了,因为状态符合描述,不作任何改变

 saltstack 简单使用

这个apache.sls是在base目录下,如果想要分类的更清楚点,我们在base下建立个web的文件夹,将apache.sls放到web下。那么我们之前的执行命令就变成了

salt ‘slave1’ state.sls web.apache

用这种方式来定义层级关系,我们如果有其他的分类,再建立其他的文件夹就可以了

 saltstack 简单使用

高级状态

上面说的基本的状态管理,如果我一台机器上有apahce、有nginx还有tomcat,那么状态就要执行三次,这时salt引入了高级状态管理

举例说明

base目录下建立一个top.sls的文件

默认的高级状态管理回去base环境的/srv/salt/base下执行top.sls的配置

vim /srv/salt/base/top.sls

 

base:

  ‘slave1’:

    - web.apache

  ‘master’:

    - web.apache

         

base是环境名称,这时base环境,如果是测试环境就是test,开发环境是dev,同理生产环境就是prod

slave1和master是minion  id  ,web.apache是要执行的状态

saltstack 简单使用

 

 saltstack 简单使用      

如果是生产环境一定要运行一台机器来测试

salt ‘slave1’  state.highstate test=True

test=True  就是测试而且不执行,不报错再运行一台机器,再没问题之后,所有环境再执行,一定要小心谨慎,自动化如果出问题就是大面积的范围伤害

 

下一篇文章写:saltstack安装配置lamp和tomcat环境

saltstack 简单使用

上一篇:toString方法


下一篇:JSP的四大作用域