您的位置:首页 > 运维架构 > Apache

saltstack:apache安装以及主文件修改

2014-04-14 15:52 609 查看
远程操作:
salt ‘*’ cmd.run "uptime"

一 实例操作:

1 说明:yum安装apache 并且在master端同步httpd.conf文件,而且当这个文件修改时重启apache
2 结构目录
[root@slave salt]# tree
.
├── apache
│ ├── apache.sls
│ └── httpd.conf
├── top.sls

top.sls:是salt的入口 执行的第一个文件
apache.sls:具体的操作写在这里
httpd.conf:需要同步到客户端的apache主配置文件

[root@slave salt]# cat top.sls
base:                     ##base语法告诉Salt这是基础配置文件
'*':                    ## 被执行的对象 *表示所有的客户端 可以在这单独写某一个客户端的ID 如slave-142
- apache.apache       ## 第一个apache是在/srv/salt/ 的目录 第二个其实是apache.sls 但是这里可以直接写成apache
'slave-142':            ## 单指一台期机器
- ntp.sls


[root@slave salt]# cat apache/apache.sls
apache:                                      ##ID标识 可以随意取
pkg:                                       ##安装包管理
- name: httpd                   
- installed               ##执行安装操作
service:                                   ##服务管理
- name: httpd
- running                                ##保证上述的httpd服务启动
- reload: True                           ##观察watch制定的文件 要是文件有修改 重启
- 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文件
[root@slave salt]# 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    #   修改的时候去掉了这行
+####20140414  test###  新添加行
+###test 2014   #新添加行

----------
ID: apache
Function: service.running
Name: httpd
Result: True
Comment: Service reloaded
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.sls httpd ##对143这个客户端执行httpd.sls文件操作

本文出自 “柯小某” 博客,请务必保留此出处http://kexl908.blog.51cto.com/605006/1395350
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐