state模块介绍:http://docs.saltstack.com/ref/modules/all/salt.modules.state.html
下面来介绍通过state安装/卸载/升级安装包的方法:
1. 调用state模块
安装:
salt ‘*’ state.high ‘{“vim”: {“pkg”: [“installed”]}}’
salt ‘*’ state.single pkg.installed name=vim
卸载:
salt ‘*’ state.high ‘{“vim”: {“pkg”: [“removed”]}}’
salt ‘*’ state.single pkg.removed name=vim
升级:
salt ‘*’ state.high ‘{“vim”: {“pkg”: [“latest”]}}’
salt ‘*’ state.single pkg.latest name=vim
2. 通过sls配置文件
安装:
/srv/salt/top.sls:
test:
‘minion1’:
- match: nodegroup
- httpd</pre>
/srv/salt/test/httpd.sls:
httpd:
pkg:
- installed
service:
- running
- watch:
- pkg: httpd
- user: httpd
user.present:
- uid: 1000
- gid: 1000
- home: /home/httpd
- shell: /sbin/nologin
- require:
- group: httpd
group.present:
- gid: 1000
- require:
- pkg: httpd</pre>
salt ‘minion1’ state.highstate
更新配置文件,并重启服务:
/srv/salt/top.sls:
test:
‘minion1’:
- match: nodegroup
- httpd</pre>
/srv/salt/test/httpd.sls:
httpd:
service:
- running
- reload: True
- watch:
- file: /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://files/httpd.conf
- mode: 644
- user: root
- group: root</pre>
/srv/salt/test/files/httpd.conf:
………..
salt ‘minion1’ state.highstate
卸载:
/srv/salt/top.sls:
test:
‘minion1’:
- match: nodegroup
- httpd</pre>
/srv/salt/test/httpd.sls:
httpd:
pkg:
- removed</pre>
salt ‘minion1’ state.highstate
升级:
/srv/salt/top.sls:
test:
‘minion1’:
- match: nodegroup
- httpd</pre>
/srv/salt/test/httpd.sls:
httpd:
pkg:
- latest</pre>
salt ‘minion1’ state.highstate