2019独角兽企业重金招聘Python工程师标准>>>

一、简述

在SaltStack系统中我们的管理对象叫作Target,在Master上我们可以采用不同Target去管理不同的Minion。这些Target都是通过去管理和匹配Minion的ID来做的一些集合。

二、Target

1.正则匹配

[root@salt-master-1 ~]# salt -E 'salt-minion*' test.ping
salt-minion-2:True
salt-minion-1:True

2.列表匹配

[root@salt-master-1 ~]# salt -L salt-minion-1,salt-minion-2 test.ping
salt-minion-2:True
salt-minion-1:True

3.Grains匹配

[root@salt-master-1 ~]# salt -G 'os:CentOS' test.ping
salt-minion-2:True
salt-minion-1:True

4.组匹配

[root@salt-master-1 ~]# salt -N mygroups test.ping
salt-minion-2:True
salt-minion-1:True

需要在配置文件中加以下配置

nodegroups:mygroups: 'L@salt-minion-1,salt-minion-2'

5.复合匹配

[root@salt-master-1 ~]# salt -C 'G@os:MacOS or L@salt-minion-1' test.ping
salt-minion-1:True

6.CIDR匹配

[root@salt-master-1 ~]# salt -S '10.0.0.0/16' test.ping
salt-minion-1:True
salt-minion-2:True

7.Pillar值匹配

salt -I 'key:value' test.ping
Minion:True
Minion1:True

三、Grains讲解

Grains是SaltStack组件中非常重要的组件之一,因为我们在做配置部署的过程中经常会使用它,Grains是SaltStack记录的Minion的一些静态信息的组件,我们可以简单地理解为Grains里面记录着每台Minion地一些常用属性,比如CPU、内存、磁盘、网络信息等,我们可以通过grains.items查看某台Minion地所有Grains信息,Minion的Grains信息是Minions启动的时候采集汇报给Master的,在实际应用环境中我们需要根据自己的需求去自定义一些Grains,关于自定义Grains的常用方法有以下几种:

通过Minion配置文件定义

通过Grains相关模块定义

通过Python脚本定义    //后面会讲如何通过python脚本自定义一些Grains信息

1.了解Grains相关的命令用法:

[root@salt-master-1 ~]# salt 'salt-minion-1' sys.list_functions grains
salt-minion-1:- grains.append- grains.delval- grains.filter_by- grains.get- grains.get_or_set_hash- grains.has_value- grains.item- grains.items- grains.ls- grains.remove- grains.setval- grains.setvals

2.通过Minion配置文件定义Grains

比较简单的放大是通过minion的配置文件来定义(Minion的Grains信息是在Minion服务启动的时候汇报给Master的),但为了统一Minion的Grains管理,我们把这些文件存储到minion.d/grains文件中

[root@salt-minion-1 ~]# cat /etc/salt/minion.d/grains.conf
grains:roles:- webserver- memcachedeployment: datacenter4cabinet: 13cab_u: 14-15
[root@salt-minion-1 ~]# systemctl restart salt-minion.service
#master
[root@salt-master-1 ~]# salt 'salt-minion-1' grains.item roles
salt-minion-1:----------roles:- webserver- memcache

3.通过Grains模版定义Grains

[root@salt-master-1 ~]# salt 'salt-minion-1' grains.append members 'web1'
salt-minion-1:----------members:- web1
[root@salt-master-1 ~]#
[root@salt-master-1 ~]# salt 'salt-minion-1' grains.item members
salt-minion-1:----------members:- web1
#使用grains.setvals同时设置多对Grains信息
[root@salt-master-1 ~]# salt 'salt-minion-2' grains.setvals "{'salt': 'good', 'book': 'cool'}"
salt-minion-2:----------book:coolsalt:good
[root@salt-master-1 ~]# salt 'salt-minion-2' grains.item salt
salt-minion-2:----------salt:good

四、数据管理中心Pillar

Pillar也是SaltStack组件中非常重要的组件之一,是数据管理中心,我们经常配合states在大规模的配置管理工作中使用它,Pillar在SaltStack中主要的作用就是存储和定义配置管理中需要的一些数据,比如软件版本号、用户名密码等信息,它的定义存储格式跟Grains类似,都是YAML格式。

在Master配置文件中有一段Pillar setting选项专门定义Pillar相关的一些参数:

#pillar_roots:
#  base:
#    - /srv/pillar

Pillar_roots目录可以按需修改为自己定义的工作目录,我们首先去pillar工作目录新建top.sls文件然后引用两个sls文件:

[root@salt-master-1 ~]# cat /srv/pillar/top.sls
base:                   # 指定环境'*':                # Target- packages      # 引用packages.sls 或者 packages/init.sls- services      # 引用services.sls 或者 services/init.sls
[root@salt-master-1 ~]# cat /srv/pillar/packages.sls
zabbix:package-name: zabbix20version: 2.0.16-1
[root@salt-master-1 ~]# cat /srv/pillar/services.sls
zabbix:port: 10050user: admin

Pillar相关的一些模块用法:

[root@salt-master-1 ~]# salt 'salt-minion-1' sys.list_functions pillar
salt-minion-1:- pillar.data- pillar.ext- pillar.get- pillar.item- pillar.items- pillar.raw
#查看定义的pillar
[root@salt-master-1 ~]# salt 'salt-minion-1' pillar.item zabbix
salt-minion-1:----------zabbix:----------package-name:zabbix20port:10050user:adminversion:2.0.16-1

SaltStack也支持从外部读取pillar数据。我们可以把pillar数据保存在数据库或者存储服务器上。

五、针对管理对象

Module是我们日常使用SaltStack接触最多的一个组件,用于管理对象操作的,这也是SaltStack通过push的方式进行管理的入口,比如我们日常简单的执行命令、查看安装情况、查看服务运行情况等工作都是通过SaltStack Module来实现的。默认安装好Master和Minion包之后,系统上会安装很多Module,大家可以通过以下命令查看支持的所有Module列表。

1.查看Minion支持的所有module列表:

[root@salt-master-1 ~]# salt 'salt-minion-1' sys.list_modules
salt-minion-1:- acl- aliases- alternatives- archive- artifactory- at- augeas- blockdev- btrfs- buildout- cloud- cmd- composer- config- container_resource- cp- cron- daemontools- data- defaults- devmap- dig- disk- django- dnsmasq- dnsutil- drbd- elasticsearch- environ- etcd- event- extfs- file- firewalld- gem- genesis- gnome- grains- group- hashutil- hg- hipchat- hosts- http- img- incron- ini- introspect- ip- iptables- jboss7- jboss7_cli- key- keyboard- kmod- locale- locate- logrotate- lowpkg- lvm- match- mine- modjk- mount- network- openstack_config- pagerduty- partition- pillar- pip- pkg- pkg_resource- postfix- publish- pyenv- quota- random- random_org- rbenv- ret- rsync- runit- rvm- s3- saltutil- schedule- scsi- sdb- seed- serverdensity_device- service- shadow- slack- smtp- sqlite3- ssh- state- status- supervisord- sys- sysctl- syslog_ng- system- test- timezone- user- vbox_guest- virtualenv- xfs

2.查看指定module的所有function

#查看cmd module的所有functions命令
[root@salt-master-1 ~]# salt 'salt-minion-1' sys.list_functions cmd
salt-minion-1:- cmd.exec_code- cmd.exec_code_all- cmd.has_exec- cmd.retcode- cmd.run- cmd.run_all- cmd.run_chroot- cmd.run_stderr- cmd.run_stdout- cmd.script- cmd.script_retcode- cmd.shell- cmd.shells- cmd.tty- cmd.which- cmd.which_bin
#查看cmd module的详细用法与例子的命令如下:
[root@salt-master-1 ~]# salt 'salt-minion-1' sys.doc cmd

转载于:https://my.oschina.net/u/2317144/blog/540509

SaltStack组件相关推荐

  1. SaltStack组件return和job cache以及salt-ssh

    文章目录 1. 组件return 1.1 return流程 1.2 使用mysql作为return存储方式 1.3 部署mysql 1.4 配置minion 1.5 在Master上测试存储到mysq ...

  2. SaltStack自动化运维(一)——简介与架构解析

    前言 SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位. SaltStack提供了一个动态基础设施通信总线用于 ...

  3. SaltStack的Grains和Pillar

    SaltStack的Grains和Pillar 标签(空格分隔): SaltStack Grains理解为除了 id之外 ,用户可以自定义的属性 下面我们通过Grains模块来设置并定义Grains信 ...

  4. SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流...

    SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...

  5. saltstack 模型与认证通信原理

    1.模型 Salt使用服务器代理通信模型,服务器组件称为 Salt Master, 代理称为 Salt Minion. Salt Master负责向Salt Minion发送命令,然后聚合并显示这些命 ...

  6. SaltStack简介和安装

    1.SaltStack简介 1.1 自动化运维工具 自动化运维就是周期性.重复性.规律性的工作都交给工具去做,把过去的手工执行转为自动化操作.自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护 ...

  7. saltstack高效运维简介和部署,SaltStack 与 Ansible 如何选择?

    1.SaltStack简介 1.1 自动化运维工具 自动化运维就是周期性.重复性.规律性的工作都交给工具去做,把过去的手工执行转为自动化操作.自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护 ...

  8. SaltStack数据系统

    1.SaltStack数据系统 SaltStack有两大数据系统,分别是: Grains Pillar 2.SaltStack数据系统组件 2.1 SaltStack组件之Grains Grains是 ...

  9. SaltStack之return与job管理

    1. SaltStack组件之return return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL.MongoD ...

最新文章

  1. 荣耀手表magic2更新鸿蒙时间表,荣耀手表2更新百种运动模式 618期间到手价799元起...
  2. 在centos上搭建redis集群并附测试(真集群非伪集群)
  3. 4月全球域名商域名解析量23强:西数解析量破百万
  4. hbase中的row key_hbase中RowKey的设计规则
  5. 创建初始脚本工具mkscript.sh
  6. 牛客小白月赛13 解题报告
  7. 如何在Ubuntu 16.04上安装和配置GitLab
  8. android开发目录结构说明
  9. 关于apache httpd.conf脚本的理解
  10. python截图搜题_新手篇之实现Python自动搜题
  11. java数字金额大写金额_Java将数字金额转为大写中文金额
  12. 看漫画学python pdf下载_看漫画学Python 有趣、有料、好玩、好用(全彩版)
  13. 免费域名注册 freenom
  14. 直播网站html代码,怎么生成嵌入网页直播的HTML代码
  15. POJ2586-Y2K Accounting Bug
  16. 计算机二级web知识点,计算机二级WEB考试主要考哪些内容?
  17. linux智能电压表设计与实现,智能电压表的设计
  18. 用CreateToolhelp32Snapshot、Process32First、Process32Next枚举进程(BCB)
  19. jsp---JSTL核心标签
  20. html之简单表格网站制作

热门文章

  1. 很专业的Flash游戏
  2. 机器人运动学_不同D-H矩阵的对比
  3. 汇编语言随笔(3)-条件转移指令和标志寄存器
  4. Java提高——多线程(二)join、sleep、yield
  5. Visual Studio 2013 Web开发新特性
  6. CodeBlcoks插件
  7. Redhat Enterprise linux 5 的安装
  8. java 矩阵计算 加减乘除 反转 分解
  9. 软件工程系列教材:软件架构设计实践教程
  10. 最容易看懂的汇编语言书籍:汇编语言 王爽