saltstack学习系列之state常用模块

差点点温柔 差点点温柔     2022-09-14     799

关键词:

常用模块: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系列之states配置管理和jinja模板的使用

States配置管理States是Saltstack中的配置语言,在日常进行配置管理时需要编写大量的StatesSLS文件,而编写这些SLS文件的一般步骤也就是我们平时手动配置一台服务器的步骤:首先安装源码包,然后管理一个配置文件,最后再保证这... 查看详情

saltstack之远程执行其它常用模块

练习内容远程执行其他模块官方模块有很多超过300+1.cmd.run2.network3.service4.state演示cmd.run模块可以执行系统命令,超级模块有安全隐患,也可以更模块源代码限制危险命令执行比如(rmreboot等),二次开发一般不用此模块[[email ... 查看详情

saltstack系列之state相关介绍

一、管理对象saltstack系统中管理对象叫做Target,在master上可以采用不同的Tatget去管理不同的minion。这些Target都是通过去管理和匹配Minion的ID来做一些集合。1.1 -E,--pcre:正则匹配#salt-E‘[a-z].*‘test.ping #直接就是匹配字母开... 查看详情

saltstack学习系列之自定义grains

Master端打开存放自定义grains的目录vim/etc/salt/masterfile_roots:base:-/srv/salt/建立自定义模块cd/srv/saltmkdir_grainscd_grains编写自定义grainscatdisk.pyimportosdefdisk():grains={}disk=os.popen(‘fdisk-l|grep‘Disk‘|grep-v‘ 查看详情

saltstack常用模块之file和mysqllvs(代码片段)

SaltStack常用模块之file和mysql、lvs文章目录SaltStack常用模块之file和mysql、lvsfile.accessfile.appendfile.basenamefile.dirnamefile.check_hashfile.chattrfile.chownfile.copyfile.ditectory_existsfile.diskusagefile.file_exi 查看详情

saltstack常用模块之file和mysqllvs(代码片段)

SaltStack常用模块之file和mysql、lvs文章目录SaltStack常用模块之file和mysql、lvsfile.accessfile.appendfile.basenamefile.dirnamefile.check_hashfile.chattrfile.chownfile.copyfile.ditectory_existsfile.diskusagefile.file_exi 查看详情

实例学习ansible系列常用模块之user/group

知识点:user模块,用于管理用户。知识点:group模块,用于管理group。使用user模块添加用户[root@host31~]#ansiblehost32-mcommand-a"idtest01"host32|FAILED|rc=1>>id:test01:nosuchuser[root@host31~]#ansiblehost32-muser-a"name=test01group=root"host32|SUCCESS=>"change... 查看详情

saltstack常用的模块(代码片段)

SaltStack常用的模块文章目录SaltStack常用的模块SaltStack模块介绍SaltStack常用模块SaltStack常用模块之networknetwork.active_tcpnetwork.calc_netnetwork.connectnetwork.default_routenetwork.get_fqdnnetwork.get_hostnamenetwork.get_rou 查看详情

saltstack常用的模块(代码片段)

SaltStack常用的模块文章目录SaltStack常用的模块SaltStack模块介绍SaltStack常用模块SaltStack常用模块之networknetwork.active_tcpnetwork.calc_netnetwork.connectnetwork.default_routenetwork.get_fqdnnetwork.get_hostnamenetwork.get_rou 查看详情

自动化运维saltstack系列之配置管理系统模块

架构图Saltstack配置管理大型web架构网站其实并不是很难,最主要是合理管理各功能模块之间依赖关系,尽量独立各功能模块,让每一个系统功能都可以被业务引用。650)this.width=650;"title="1476016541399068.png"alt="saltstack.png"src="http://www.l... 查看详情

自动化运维saltstack系列之配置管理业务模块

业务模块 业务模块要尽量和系统模块区分开,系统模块要做到随时能被业务模块所调用;特别是在多种业务模式共存的环境中,我们要使每个业务模块独立一个prod环境,方便统一管理而不影响其他业务。PHP模块[[email prot... 查看详情

关于saltstack核心模块state详解(代码片段)

一、问题背景: 学习使用自动运维工具saltstack的过程中,其中state模块是帮助管理员控制minion达到一个预想的状态。换句话来说,我想让minion能够远程执行命令,自动配置环境文件,软件安装、服务启动、关闭,信息收集等... 查看详情

saltstack常用的模块续(代码片段)

SaltStack常用的模块续文章目录SaltStack常用的模块续SaltStack常用模块之filefile.accessfile.appendfile.basenamefile.dirnamefile.check_hashfile.chattrfile.chownfile.copyfile.ditectory_existsfile.diskusagefile.file_existsfile. 查看详情

saltstack实战之配置管理-状态间关系

SaltStack实战之配置管理-状态间关系学习 SaltStackSaltStack实战之配置管理-状态间关系1.状态相关模块1.1pkg1.2file1.3service1.4requisites2.实际应用1.状态相关模块1.1pkg状态模块:pkg 功能:管理软件包状态 常用方法:pkg.installed#... 查看详情

saltstack实战之配置管理-状态间关系

SaltStack实战之配置管理-状态间关系学习 SaltStackSaltStack实战之配置管理-状态间关系1.状态相关模块1.1pkg1.2file1.3service1.4requisites2.实际应用1.状态相关模块1.1pkg状态模块:pkg 功能:管理软件包状态 常用方法:pkg.installed#... 查看详情

saltstack实战之数据系统-grains

SaltStack实战之数据系统-Grains学习 SaltStackSaltStack实战之数据系统-Grains1.Grains应用场景2.Grains应用示例1.Grains应用场景Grains可以在state系统中使用,用于配置管理模块。Grains可以在target中使用,用来匹配minion,比如匹配操作系统... 查看详情

二saltstack常用模块和jinja模版(代码片段)

1配置管理-状态模块pkgfileserverhttps://www.unixhot.com/docs/saltstack/ref/states/highstate.html状态模块的特点:状态是不可以回滚的。写好的状态模块要支持多次执行。[[email protected]~]#cat/srv/salt/web/apache.slsapache-install:#名称声明(id声明)高 查看详情

自动化运维之saltstack常用模块使用之file

1、file.accessfile.access:测试salt进程对指定文件是否有访问权限[[email protected] salt]# salt ‘*‘ file.access /etc/passwd fserver02:    Trueserver03:  &n 查看详情