1. 程式人生 > >SaltStack學習系列之state常用模塊

SaltStack學習系列之state常用模塊

local dir 工作 用戶 函數 bash ash 文本 use

常用模塊: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常用模塊