SaltStack学习系列之state常用模块

常用模块:cron,cmd,file,mount,ntp,pkg,service,user,group

cmd模块

参数:

name:要执行的命令

unless:用于检查的命令,只有unless指向的命令返回False时才执行name那行的命令

cwd:执行命令时的目录,默认为root

user:以指定用户身份运行命令

group:以指定用户组身份运行命令

run:运行name后的命令

require:确保某个模块执行之后才执行这个模块

实例

[root@test81 ~]# 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  

 

 

 

 

 

 

 

  

 

posted @ 2017-08-09 17:35  差点点温柔  阅读(1416)  评论(0编辑  收藏  举报