远程操做:html
salt ‘*’ cmd.run "uptime"apache
一 实例操做:服务器
1 说明:yum安装apache 而且在master端同步httpd.conf文件,并且当这个文件修改时重启apacheide
2 结构目录测试
[root@slave salt]# tree htm
.对象
├── apachecmd
│ ├── apache.sls同步
│ └── httpd.confit
├── 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文件操做