最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
关于Saltstack模块和sls文件书写详解
linuxe发表于 2020-10-28 11:26 次浏览
学习使用自动运维工具saltstack的过程中,其中state模块是帮助管理员控制minion达到一个预想的状态。换句话来说,我想让minion能够远程执行命令,自动配置环境文件,软件安装、服务启动、关闭,信息收集等自动化操作,都能通过saltstack的state模块实现。  并且最重要的一个好处就是简单、简洁、方便。那么SaltStack常用模块有哪些呢?下面我们来看看:

状态模块:pkg

功能:管理软件包状态

常用方法:

pkg.installed    #确保软件包已安装,如果没有就进行安装

pkg.latest    #确保软件包是最新版本,不是的话就升级

pkg.remove    #如果之前安装了软件包就卸载

pkg.purge    #卸载软件包并删除配置文件

 

状态模块:file

功能:管理文件状态

常用方法:

file.managed    #保证文件存在并且内容一致

file.recurse    #保证目录存在并且为对应状态

file.absent    #如果文件存在就进行删除

 

状态模块:service

功能:管理服务状态

常用方法:

service.running    #确保服务处于运行状态,没有运行的话则启动

service.enabled    #让服务开机自动启动

service.disabled    #让服务开机不要自动启动

service.dead    #确保服务处于停止状态,服务在运行的话则停止

 

状态模块:requisites

功能:处理状态间关系

常用方法:

require    #我依赖某个状态,比如安装软件时依赖某个软件包

require_in    #我被某个状态依赖

watch    #我关注某个状态

watch_in    #我被某状态关注

 

一般写sls文件可以按照pkg、file、service这样的模块顺序来写,因为我们平时操作也是先进行软件包安装,再写配置文件,最后启动服务,这是一个例子:

 


01 apache-service:    #定义id,和apache服务有关
02   pkg.installed:    #使用pkg模块的installed功能,可以看出是进行安装软件包
03     - name: httpd    #安装包的名字
04   file.managed:
05     - name: /etc/httpd/conf/httpd.conf
06     - source: salt://files/httpd.conf
07     - user: root
08     - group: root
09     - mode: 644
10     - require:     #定义该文件依赖于谁
11       - pkg: apache-service    #依赖于httpd包,这里使用的是事件的id,因为sls文件只有唯一的pkg事件,就是pkg.installed
12   service.running:    #定义服务状态
13     - name: httpd    #服务名称
14     - enable: True    #开启服务
15     - reload: True    #当文件发生变动时如果服务支持重载的话就进行重载而非重启
16     - watch:    #文件发生变化时重启服务
17      -file: apache-service    #哪个文件发生变化时重启服务
18  
19 mysql-service:    #定义id,可以看出是和mysql有关
20   pkg.installed:    #使用pkg模块的installed功能,可以看出是进行安装软件包
21     -name: mysql-server    #安装包的名字
22     -require_in:    #该软件包被什么文件依赖
23       - file: mysql-service    #被依赖的文件是该事件id下的file模块内的文件,由于sls是唯一的,可以得知是my.cnf文件
24   file.managed:    #使用file模块的managed功能,说明是在进行文件内容的修改
25     - name: /etc/my.cnf    #要修改的文件
26     - source: salt://files/my.cnf    #参考该文件来修改要被修改的文件
27     - user: root
28     - group: root
29     - mode: 644
30   service.running:    #使用service模块的running功能,说明是要启动服务
31     - name: mysqld    #要启动的服务名字

标签:安装saltstack
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2020-10-28 11:24:55 关键词:安装saltstack
摘要:States配置管理 States是Saltstack中的配置语言,在日常进行配置管理时需要编写大量的States SLS文件,而编写这些SLS文件的一般步骤也就是我们平时手动配置一台服务器的步骤:首先安装源..
2020-10-27 15:50:13 关键词:安装saltstack
摘要:什么是grains: 是salt的一个组件,负责minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。每次的minion启动(重启)的时候都会采集。 Grains应用场景1信息查询(..