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  
时间: 2024-10-02 23:34:40

SaltStack学习系列之state常用模块的相关文章

SaltStack学习系列之State安装Nginx+PHP环境

目录结构 |-- pillar | |-- nginx | | `-- nginx.sls #nginx变量(key:value) | `-- top.sls `-- salt|-- init #初始化目录 | `-- repos.sls #安装yum源 |-- roles #角色(nginx和php) | |-- nginx #Nginx | | |-- config.sls #copy和利用pillar渲染配置文件 | | |-- files #存放需要copy和渲染到客户端的文件 | |

Python学习系列(六)(模块)

一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: i)引入模块:import   moduleName ii)引入模块下的函数:from moduleName import function1,function2,-- iii)引入模块下的所有函数:from moduleName import * 使用模块里的函数的方法: moduleName.function(agrs) 示例: >>> import math >

pyhton学习笔记5:常用模块:datatime,random,json,re

一.模块基础: 1.  定义 能够实现某个功能的代码集合(本质是py文件)  test.p的模块名是test包的定义:用来从逻辑上组织模块,本质就是一个目录(必须带有一个__init__.py文件) 2. 导入方法: import module import module1,module2 from module import * from module import m1,m2,m3 from module import logger as module_logger 3.import 本质

Func系列2:常用模块及API

简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).FileTrackerModule(文件跟踪).IPtablesModule(iptables管理).MountModule(Mount挂载).NagiosServerModule(Nagios管理).NetworkTest(网络测试).ProcessModule(进程管理).SysctlModule(s

Python学习—基础篇之常用模块

常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. python常用模块主要有: 1. time模块 2. random模块 3. hashlib模块 4. os模块 5. sys模块 6. logging模块 7. 序列化模块 8. configpar

Python学习之路13?常用模块

一 time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时) 1 import time 2 #

Python学习系列----第五章 模块

5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: 模块名.函数名 有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以通过语句 from 模块名 import 函数名1,函数名2.... 5.2 如何定义自己的模块 在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 比如有这样一个文件test.py

SaltStack学习系列之自定义grains

Master端 打开存放自定义grains的目录 vim /etc/salt/master file_roots: base: - /srv/salt/ 建立自定义模块 cd /srv/salt mkdir _grains cd _grains 编写自定义grains cat disk.pyimport os def disk(): grains = {} disk = os.popen('fdisk -l |grep \'Disk\' |grep -v \'VolGroup\' | grep

Python学习笔记六(常用模块、面向对象基础)

一.random模块 import random print(random.random()) #0-1之间的小数 print(random.randint(1,5)) #1-5之间(包括1和5)的整数 print(random.randrange(1,5)) #1-5之间(包含1,不好包含5)的整数 print(random.choice(['a','b','c'])) #给定列表中任意元素 print(random.sample(['a','b','c','d'],2)) #给定列表中任意n