wss1051 发表于 2018-1-4 06:31:23

SaltStack学习系列之state常用模块

  常用模块:cron,cmd,file,mount,ntp,pkg,service,user,group
  cmd模块
  参数:
  name:要执行的命令
  unless:用于检查的命令,只有unless指向的命令返回False时才执行name那行的命令
  cwd:执行命令时的目录,默认为root
  user:以指定用户身份运行命令
  group:以指定用户组身份运行命令
  run:运行name后的命令
  require:确保某个模块执行之后才执行这个模块
  实例
  

# 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  
页: [1]
查看完整版本: SaltStack学习系列之state常用模块