常用的模块和状态
状态模块: file
功能:管理文件状态
常用方法
file.managed #保证文件存在并且为对应的状态
file.recures #保证目录存在并且为对应的状态
file.absent #确保文件不存在,如果存在就删除
状态模块:service
功能: 管理服务状态
常用方法
service.running #确保服务状态处于运行,如果没有就启动
service.enable #确保服务开机启动
service.disabled #确保开机不启动
service.dead #确保服务当前没运行,如果有就停止
功能名称: requisites
功能: 处理状态间的关系
常用方法:
require #我依赖某个状态
require_in #我被某个状态依赖
watch #我关转某个状态
watch_in #我被某个状态关注
安装php和httpd和mysql
[root@linux-node1 web]# vim lamp.sls
lamp-install: ---状态id
pkg.installed: --方法
- pkgs: --参数
- httpd
- php
- php-pdo
- php-mysql
apache-config:
file.managed: --状态模块
- name: /etc/httpd/conf/httpd.conf 在mininon的位置
- source: salt://web/files/httpd.conf 源文件
- user: root
- group: root
- mode: 644
- require: ---监控包安装,如果上面lamp-install 不成功就不会执行下面的
- pkg: lamp-install
apache-auth:
pkg.installed:
- name: httpd-tools
- require_in:
- cmd: apache-auth
cmd.run: --状态模块
- name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin --执行命令
- unless: test -f /etc/httpd/conf/htpasswd_file --状态判断 条件为真就不执行了
apache-conf:
file.recurse:
- name: /etc/httpd/conf.d
- source: salt://web/files/apache-conf.d 管理目录 增加文件 (注意创建目录,拷贝文件)
- watch_in:
- service: lamp-service
/etc/php.ini:
file.managed:
- source: salt://web/files/php.ini
- user: root
- group: root
- mode: 644
- watch_in:
- service: lamp-service
lamp-service:
service.running:
- name: httpd
- enable: True
- reload: True
- watch:
- file: apache-config ----监控文件状态
- file: apache-confi -----监控文件状态
PS:
可以往需要的文件里追加内容
[root@linux-node1 web]# vim append.sls
/etc/profile:
file.append:
- text:
- “#aaa”
正式做之前先用测试命令
[root@linux-node1 apache-conf.d]# salt ‘linux-node2*’ state.highstate test=True
https://www.unixhot.com/docs/saltstack/ref/states/all/index.html#all-salt-states 所有状态模块