1、前面我们安装好master和minion之后,我们来简单看看salt的远程执行情况:
master端查看minion端是否是活跃状态.
2、创建目录,以及ls查看结果。这里我们用到的是cmd.run模块的用法,后面会讲到salt的其他一些模块用法。
3、salt的配置管理
写状态文件的YAML语法格式,YAML的salt官网。
YAML:三板斧
1、缩进
2个空格,不能使用Tab键.
2、冒号
后面有一个空格,键值对,后面也跟一个空格 , 表示层级关系是不需要空格的直接换行了.
3、短横线
表示列表.
- list1
- list2
下面我们以一个安装httpd的示例快速入门:
修改master端配置文件,创建一个httpd的状态文件。master端的file_roots字段表示状态文件的存放位置,该位置可以自己定义,不过最好不要修改,选择默认的。分别为基础环境,开发环境,生产环境。
修改好,重启salt-master服务,然后我们创建/srv/salt目录,随后我们再开始写我们的状态文件。每个状态文件放在一个目录下面,当有多个状态文件时好区分。
[root@wyl01 salt]# cat web/apache.sls # 注意YAML的语法格式
apache-install:
pkg.installed:
- names:
- httpd
- httpd-devel
apache-service:
service.running:
- name: httpd
- enable: True
编写好后在master端执行操作,目的是在wyl03上安装httpd服务。执行指令为 salt 'wyl03' state.sls web.apache是执行state模块的sls方法。
安装原理是:salt的matser端将状态文件发送到minion端,下图可以看到一开始wyl03上是没有apache.sls文件的,执行过程中,master将apache.sls文件传送到wyl03机器上,然后进行安装,但是实际的安装方式还是yum安装。
对于现实中的环境,一台机器对应多个模块,或者多个机器对应一个或者多个模块,每个模块可能都不通,不能每台机器手动执行一遍,所以salt有一个高级状态,可以将对应关系告诉salt,进行帮助我们自动化执行安装,所以我们需要写一个top.sls的对应关系文件。对应关系top模块,从下图可以看到,top.sls的文件位置是在base环境下的目录位置,那么base环境下的位置就是上面我们说到的/srv/salt的目录。