SaltStack學習系列之state常用模塊
常用模塊:cron,cmd,file,mount,ntp,pkg,service,user,group
cmd模塊
參數:
name:要執行的命令
unless:用於檢查的命令,只有unless指向的命令返回False時才執行name那行的命令
cwd:執行命令時的目錄,默認為root
user:以指定用戶身份運行命令
group:以指定用戶組身份運行命令
run:運行name後的命令
require:確保某個模塊執行之後才執行這個模塊
實例
[[email protected] ~]# cat install.sls nginx_source: ##自定義命名 file.managed:- name: /tmp/nginx-1.4.5.tar.gz #這個是指minion端 - unless: test -f /tmp/nginx-1.4.5.tar.gz ##若minion端不存在/tmp/nginx-1.4.5.tar.gz這個文件,才會執行這個file模塊 - source: salt://nginx/files/nginx-1.4.5.tar.gz ##這個是指master端文件存放的位置,意思是把master端salt://nginx/files/nginx-1.4.5.tar.gz文件copy到minion端/tmp/nginx-1.4.5.tar.gz tar_nginx: ##自定義命名 cmd.run:- cwd: /usr/local/src ##當前工作目錄 - name: tar zxvf nginx-1.4.5.tar.gz - unless: test -d /usr/local/src/nginx-1.4.5 ##若minion端不存在/usr/local/src/nginx-1.4.5 這個目錄,才會執行name後命令 - require: ##確保nginx_source裏的file模塊執行成功才執行這個cmd模塊- file: nginx_source
pkg模塊
參數:
installed:安裝
latest:將軟件更新到最新
removed:刪除軟件
pkgs:安裝多個軟件包時,一次全部安裝(推薦)
names:安裝多個軟件包時,一次安裝一個(不推薦)
實例
mypkgs: pkg.installed: - pkgs: #安裝多個軟件包,用pkgs函數一次全部安裝,一行一個 - gcc - cmake - make #- name: httpd #安裝多個軟件包,一次安裝一個,與pkgs一起用時,此函數將被忽略
user模塊
present:創建用戶
absent:刪除用戶
fullname:用戶名
password:密碼
uid:
gid:
createhome:True為創建家目錄,False不創建家目錄
home:用戶家目錄
hwg: user.present: - fullname: Jim - shell: /bin/bash - home: /home/hwg - uid: 600 - gid: 600 - groups: - wheel - storage - games
file.managed
參數:
user:用戶
group:用戶組
mode:文件屬性(如644)
template:模板類型(比如:jinja)
makedirs:默認為False,如果被管理的文件父目錄不存在則失敗,如果為True,如果父目錄不存在則會創建
dir_mode:設置創建目錄的權限
replace:默認為True,若設置為False將不替換文件內容,但是會更改權限
context:覆蓋文件上下文參數
default:默認上下文參數
backup:備份功能,有改動才備份,會備份到minion下的:/var/cache/salt/minion/backup_files
show_off:設置成False,則不顯示更改的不同點,默認為True
create:默認為True,如果設置為False,在文件存在的情況下則只更改文件
contents:默認為空,添加字符串到文本中
實例:
nginx_source: file.managed: - name: /tmp/nginx-1.5.1.tar.gz - unless: test -e /tmp/nginx-1.5.1.tar.gz - user: root - group: root - makedirs: True - source: salt://nginx/file/nginx-1.5.1.tar.gz
SaltStack學習系列之state常用模塊