saltstack配置管理

states: yaml文件、sls尾缀文件
Yaml的写法:

1.缩进必须是两个空格,绝对不能使用tab键
2.冒号后必须有空格:key-value关系(dict)
3.“-”短横线后必须有空格:并列关系(list)


Minion端的设置:
1.在设置minion端的时候,需要配置/etc/salt/minion文件,首先,需要指定其master,即解除“master: ”字段的限制,然后在其后面添加master端的主机名或主机IP
2.此外,还有一个叫做“id: ”的字段,需要进行设置,这个ID默认不设置的情况下是主机的主机ID/etc/sysconfig/network 但是如果需要设置的话,需要将/etc/salt/minion_id文件删除,并重新启动salt-minion服务,才能正常启动。否则会报错。

Master端配置:
在配置文件中搜索file_roots:字段
会出现一系列提示,咨询此saltstack的配置文件远程目录所在位置。
其中,dev和prod都可以是不存在的,但是base一定要有:



创建完毕之后,需要在本地的/srv/下创建一个salt目录
mkdir -p /svc/salt
根据实际的任务情况对需要操作的内容进行分类(按项目分?或按操作步骤分吧!)比如web业务:
mkdir -p /svc/salt/web
vim /svc/salt/web/apache.sls   
内容如下:
Apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel

Apache-ServiceControl:
  service.running:
    - name: httpd
    - enable: True
如果执行失败或者对端机器上有这个包,则会有如下提示:

saltstack minion端任务的状态文件:/var/cache/salt/minion/files/base/任务目录/sls文件名,该文件与master端的一样。

需要指定不同的机器执行不同的sls剧本的时候,就需要指定一个top文件,该文件需要被放置在base目录之下:有且只有一个,通常只用来存放minion_id和需要执行的sls文件的关系,top文件也是一个sls文件。
如需修改top文件,需要在master文件中先取消关于top文件的注释:
先搜索字段:state_top:
然后取消注释,保存退出,重启master服务。
示例内容如下:
base:
  'salt.minion.test6':
    - web.apache
    - web.php
    - web.wordpress
salt.minion.test6A
    - db.mysql-server
    - db.mysql-ser-connect
    - db.phpmyadmin
salt.minion.test7
    - storage.nfs-server
    - storage.firewalld-policy
    - storage.filePermission

执行的时候直接指定*即可根据top文件中的对应关系,让指定的机器执行指定的任务状态文件。

在执行命令之前,一定要在所需命令敲完之后,再加上一个test=True,确认要修改的内容和可能的结果,避免不必要的麻烦(类似于sed不加-i)

注意,在生产环境下,不推荐使用salt '*' .......这种写法
This entry was posted in AutomaticOPS, Saltstack and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *