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
最新文章
- 利用Java动态生成 PDF 文档
- tomcat 8在win8.1中的配置
- ubuntu vps折腾记
- JavaScript 总结几个提高性能知识点
- JSON后端页面解析
- JAVA基础知识之网络编程——-基于TCP通信的简单聊天室
- responsive menu
- 7款经典炫酷的HTML5/jQuery动画应用示例及源码
- Linux软连接和硬链接(摘录)
- 六、C# 派生
- Leetcode::JumpGame
- linux内核链表的使用
- JavaScript—面向对象开发详解和垃圾回收
- c语言题库---- 函数
- Mini-Batch 、Momentum、Adam算法的实现
- 大牛的距离(笑cry)精简算法
- 收集整理的oracle常用命令大全
- OpenCV——SIFT特征检测与匹配
- notepad++插件实现json、xml格式化
- ReactiveCocoa 中 RACSignal 是怎样发送信号
热门文章
- ASP.NET Eval四种绑定方式 及详解
- bat批处理如何删除本地策略里的用户权限分配中的拒绝从网络访问本机项的guest用户?
- 乐视max2 刷入第三方recovery 然后刷入root 包 root
- Android(java)学习笔记203:JNI之NDK开发步骤
- python常见问题一(安装报错)
- gearman的安装
- web pack 生成本地dist后 本地可以访问 路径由/ 改 ./
- caffe实现自己的层
- B4. Concurrent JVM 锁机制(synchronized)
- P2347 砝码称重(动态规划递推,背包,洛谷)