SaltStack组件
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组件相关推荐
- 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 ...
- SaltStack自动化运维(一)——简介与架构解析
前言 SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位. SaltStack提供了一个动态基础设施通信总线用于 ...
- SaltStack的Grains和Pillar
SaltStack的Grains和Pillar 标签(空格分隔): SaltStack Grains理解为除了 id之外 ,用户可以自定义的属性 下面我们通过Grains模块来设置并定义Grains信 ...
- SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流...
SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...
- saltstack 模型与认证通信原理
1.模型 Salt使用服务器代理通信模型,服务器组件称为 Salt Master, 代理称为 Salt Minion. Salt Master负责向Salt Minion发送命令,然后聚合并显示这些命 ...
- SaltStack简介和安装
1.SaltStack简介 1.1 自动化运维工具 自动化运维就是周期性.重复性.规律性的工作都交给工具去做,把过去的手工执行转为自动化操作.自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护 ...
- saltstack高效运维简介和部署,SaltStack 与 Ansible 如何选择?
1.SaltStack简介 1.1 自动化运维工具 自动化运维就是周期性.重复性.规律性的工作都交给工具去做,把过去的手工执行转为自动化操作.自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护 ...
- SaltStack数据系统
1.SaltStack数据系统 SaltStack有两大数据系统,分别是: Grains Pillar 2.SaltStack数据系统组件 2.1 SaltStack组件之Grains Grains是 ...
- SaltStack之return与job管理
1. SaltStack组件之return return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL.MongoD ...
最新文章
- 荣耀手表magic2更新鸿蒙时间表,荣耀手表2更新百种运动模式 618期间到手价799元起...
- 在centos上搭建redis集群并附测试(真集群非伪集群)
- 4月全球域名商域名解析量23强:西数解析量破百万
- hbase中的row key_hbase中RowKey的设计规则
- 创建初始脚本工具mkscript.sh
- 牛客小白月赛13 解题报告
- 如何在Ubuntu 16.04上安装和配置GitLab
- android开发目录结构说明
- 关于apache httpd.conf脚本的理解
- python截图搜题_新手篇之实现Python自动搜题
- java数字金额大写金额_Java将数字金额转为大写中文金额
- 看漫画学python pdf下载_看漫画学Python 有趣、有料、好玩、好用(全彩版)
- 免费域名注册 freenom
- 直播网站html代码,怎么生成嵌入网页直播的HTML代码
- POJ2586-Y2K Accounting Bug
- 计算机二级web知识点,计算机二级WEB考试主要考哪些内容?
- linux智能电压表设计与实现,智能电压表的设计
- 用CreateToolhelp32Snapshot、Process32First、Process32Next枚举进程(BCB)
- jsp---JSTL核心标签
- html之简单表格网站制作