自动化运维工具之SaltStack-2、SaltStack配置管理

1、salt-master的配置文件编写格式之YAML语法说明

YAML语法数据的结构通过缩进来表示,每一级用两个空格来表示缩进,如果有下一
级结构需要以冒号结尾,连续的列表通过减号“-”来表示,减号后面需要有空格,不
是以冒号结尾的冒号后面需要有空格。

2、修改salt-master配置文件

# vim /etc/salt/master +416
416 file_roots:        #告诉salt状态文件的位置
417   base:    #base为必须存在的,
418     - /srv/salt/base      #base状态对应的文件位置
说明:/etc/salt/master 配置文件的格式是采用YAML的格式写的,所以修改需要注意
每个缩进级别由两个空格组成,不支持tabs键,有下一个级别需要以冒号结尾,列表
用“-”减号开头,注意减号后面需要有一个空格。

创建/etc/salt/master配置文件里状态文件目录:

# mkdir /srv/salt/base

修改配置后重启salt-master:

# systemctl restart salt-master

重启后测试salt-master与salt-minion端的通讯

# salt 'linux-node1' test.ping
linux-node1:
    True     #确定能成功通讯

3、使用salt写一个自动化安装apache的状态并执行

# cd /srv/salt/base
# vim apache.sls      #状态文件的名字
apache-install:    #安装状态的ID声明
  pkg.installed:    #pkg为状态模块,installed是pkg模块下的方法(即安装)
    - name: httpd    #installed方法的参数,name是一个特殊的参数(安装的东西)
注:以上整个状态的意思为:{应该有一个httpd服务,如果有则啥也不干,如果没有则下载一个}

apache-service:    #服务状态的ID
  service.running:   #service是状态模块,running是service模块下的方法(running即启动)
    - name: httpd    #方法的目标参数(启动的目标)
    - enable: True   #目标参数的动作(是否启动True则表示启动)
注:以上状态意思为{如果有httpd这个服务则启动httpd,如果没有httpd这个服务,就下载一个httpd并启动httpd}

执行这个apache状态:

[root@linux-node1 base]# salt 'linux-node1*' state.sls apache
linux-node1:      #minion端ID
----------
          ID: apache-install    #状态的ID
    Function: pkg.installed     #模块.模块的方法
        Name: httpd    #参数
      Result: True     #True为成功
     Comment: Package httpd is already installed.     #描述信息
     Started: 22:25:05.529566     #启动时间
    Duration: 1274.843 ms    #用了多少秒
     Changes:      #如果下东西了会有输出
----------
          ID: apache-service
    Function: service.running
        Name: httpd
      Result: True
     Comment: Service httpd is already enabled, and is in the desired state
     Started: 22:25:06.805143
    Duration: 268.049 ms
     Changes:   #都做了啥
              ----------
              httpd:
                  True     #启动了httpd

Summary
------------
Succeeded: 2    #成功了两个
Failed:    0
------------
Total states run:     2

执行之后即可到目标服务器去查看apache的启动装了,或者使用salt查看目标服务器的apache状态

# salt "linux-node1" cmd.run "systemctl status httpd"     #在salt-master端用此命令查看apache启动状态

本次就更新到这里,请关注后续更新,如有问题欢迎指出与交流。

标签:SaltStack 发布于:2019-10-29 00:44:57