saltstack:apache安装以及主文件修改
远程操作:salt ‘*’cmd.run"uptime"
一 实例操作:
1 说明:yum安装apache 并且在master端同步httpd.conf文件,而且当这个文件修改时重启apache
2 结构目录
# tree
.
├── apache
│ ├── apache.sls
│ └── httpd.conf
├── top.sls
top.sls:是salt的入口 执行的第一个文件
apache.sls:具体的操作写在这里
httpd.conf:需要同步到客户端的apache主配置文件
# cat top.sls
base: ##base语法告诉Salt这是基础配置文件
'*': ## 被执行的对象 *表示所有的客户端 可以在这单独写某一个客户端的ID 如slave-142
- apache.apache ## 第一个apache是在/srv/salt/ 的目录 第二个其实是apache.sls 但是这里可以直接写成apache
'slave-142': ## 单指一台期机器
- ntp.sls
# cat apache/apache.sls
apache: ##ID标识 可以随意取
pkg: ##安装包管理
- name: httpd
- installed ##执行安装操作
service: ##服务管理
- name: httpd
- running ##保证上述的httpd服务启动
-> - enable: True ##服务开启启动
- watch:
- file: /etc/httpd/conf/httpd.conf ##客户端的配置文件
/etc/httpd/conf/httpd.conf: ##客户端的配置文件 file.managed: ##文件管理
- source: salt://apache/httpd.conf##服务器端本地的文件和路径salt//这个配置在master中配置 默认是在/srv/salt/ 需要开启注视
- user: root
- group: root
- mode: 644
- backup: minion ##执行操作前备份
执行操作:
由于之前我过操作 httpd已经成功安装 这次测试的是修改了httpd.conf文件
# salt '*' state.highstate
68:
----------
ID: apache
Function: pkg.installed
Name: httpd
Result: True
Comment: Package httpd is already installed
Changes:
----------
ID: /etc/httpd/conf/httpd.conf
Function: file.managed
Result: True
Comment: File /etc/httpd/conf/httpd.conf updated
Changes:
----------
diff:
---
+++
@@ -1007,5 +1007,5 @@
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
-####hihi test### 修改的时候去掉了这行
-###test # 修改的时候去掉了这行
+####20140414test###新添加行
+###test 2014 #新添加行
----------
ID: apache
Function: service.running
Name: httpd
Result: True
Comment: Service> Changes:
----------
httpd:
True
Summary
------------
Succeeded: 3
Failed: 0
------------
Total: 3
当你在一个sls中写有多个操作但是要只操作一个 salt '*' state.highstate exclude="[{'id':'httpd'}]"-t 60
当不需要操作所有的客户端 可以 salt 'slave-143' state.highstate 只操作一台机器
当只想操作一个sls文件salt 'slave-143' state.slshttpd##对143这个客户端执行httpd.sls文件操作
页:
[1]