遠程操做: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文件操做