1、使用自定义grains grans的一些基本用法: salt object grains.ls 查看某台设备当前可用grains的key salt object grains.items... 查看某台设备当前可用 grains 的值 salt -G 'os:CentOS' test.ping && salt -G 'os:Amazon' test.ping salt...-G 'cpuarch:x86_64' grains.item num_cpus salt -G 'mem_total:32232' test.ping salt 'linux-node1...*' grains.get fqdn 查询某个的信息 salt -G os:CentOS cmd.run 'uptime' 使用granis来匹配主机 -G 参数 [root@redis01...' %} apache: apache2 vim: vim {% elif grains['os'] == 'Arch' %} apache: apache vim: vim {
Grains基本信息 Saltstack 数据系统 Grains (谷粒) Pillar (柱子) Grains:静态数据 当Minion启动的时候收集的Minion本地的相关信息...【这样修改grains信息不用重启salt-minion 也能刷新】 不然需要重启salt-minion salt '*' saltutil.sync_grains 开发一个Grains:...Salt自带Grains 信息 4.1. grains条目项信息 1 [root@salt100 salt]# salt 'salt01' grains.ls # 查看salt01机器有哪些grains...条目项信息 2 ……………… 4.2. grains全部信息 1 [root@salt100 salt]# salt 'salt01' grains.items # 查看salt01机器有哪些grains...在/etc/salt/grains 中定义grains 注意: 该文件默认不存在,需要自己创建。
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成...
(基础环境配置:如:zabbix-agent,salt-minion,dns,等) saltstack的数据系统:(相关组件) Grains:(存储在minion端) 功能:...(1)信息查询 salt 'linux-node1*' grains.ls...salt 'linux-node1*' grains.items image.png image.png (2) 匹配minion: (主机名不方便管理时候...) image.png image.png 如何自定义一个grains 呐: 编辑minion的配置文件:vi /etc/salt/minion image.png...image.png 方便管理,可以不用在配置文件中修改: image.png (3)topfile,入口文件中也可以使用grains image.png Pillar: (给minion
grains是在minion启动时收集到的一些信息,比如操作系统类型、网卡ip、内核版本、cpu架构等。...列出所有的grains项目名字 salt 'zhdy02' grains.ls 列出所有grains项目以及值 salt 'zhdy02' grains.items //利用如上的显示值我们可以统计资产管理信息...grains的信息并不是动态的,并不会实时变更,它是在minion启动时收集到的。 我们可以根据grains收集到的一些信息,做配置管理工作。...grains支持自定义信息 minion上: vim /etc/salt/grains //添加: role: nginx env: test //一个key和一个vlue 重启minion...服务 systemctl restart salt-minion master上: 获取grains: [[email protected] sbin]# salt '*' grains.item
1.数据系统Grains Grains静态数据 1.Grains数据存储在minion端,minion端的数据信息 2.当minion启动时会收集Minion自身的状态信息后才加载grins信息,所以...grains数据是静态的。...~]# salt '*' grains.items //列出每台minion的本地IP地址 [root@salt0-master ~]# salt '*' grains.item fqdn_ip4 2...@salt0-master _grains]# cat /srv/salt/_grains/my_grains.py #!...grains['iaas'] = 'openstack' grains['pass'] = 'Docker' #返回这个字典 return grains # 刷新Grains
发生变化后立即重启服务) watch_in: 与watch位置相反 prereq:0.16.0 新增的功能,会通过test=True接口检查所依赖的state的状态,如果状态发生变化,执行 prereq_in:相反 grains...静态数据 只在启动minion时才采集一次数据 salt '*' grains.items #详细信息 salt '*' grains.ls #获取grains采集信息项目 salt '*' grains.get...获取所有系统安装的操作系统类型 salt -G os:CentOS cmd.run 'w ' #对centos系统执行远程命令 (w查看谁登陆在做什么操作) salt -G 'master:127.0.0.1' grains.ls...#查看grains项;grains.items 查看详细 salt "*" grains.get master | head -2 #查看master地址;用get方法获取items项的值 salt..."*" grains.items | grep nodename -A 1 #查看主机名;如 grains.get nodename pillar 动态数据 salt '*' saltutil.refresh_pillar
又或者用python的salt-api写脚本呢 Grains 是saltstack组件中非常重要之一,在配置部署时候回经常使用,Grains记录minion的静态信息,比如常用属性,CPU、内存、磁盘、...Minions的Grains信息是Minion启动时采集汇报给Master的 Grains是以 key value形式存储的数据库,可以看做Host的元数据(metadata) Grains保存着收集到的客户端的详细信息...如果slave机器数据变化,grains就过期了 在生产环境中需要自定义Grains,可以通过 Minion配置文件 Grains相关模块定义 Python脚本定义 #查看grains的命令用法 [root...@master ~]# salt 'slave' sys.doc grains Grains人为是描述minion本身固有的静态属性数据,列出主机所有Grains数据 [root@master ~]#...,Grains还可以自定义来满足不同的需求。
['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %} 12 web_info...web: nginx 14 {% endif %} 15 16 [root@salt150-master prod]# cat program.sls 17 # 使用的编程语言 18 {% if grains...['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %} 19 program_info...program: php 21 {% endif %} 22 23 [root@salt150-master prod]# cat proxy.sls 24 # 负载均衡服务器 25 {% if grains...['host'] == 'salt01-haproxy' or grains['host'] == 'salt02-haproxy' %} 26 proxy_info: 27 proxy: haproxy
minion-hostname}/data.p 的时候有权限问题,在修改权限以后,可以读取到了,但是在重启了salt-minion以后,这个文件会被更新,然后权限又变成无法读取的 2.2 相关知识补充 Grains...- salt-minion 自身的一些静态信息 salt '*' grains.ls # 查看 grains 分类 salt '*' grains.items # 查看 grains...所有信息 salt '*' grains.item os # 查看 grains 某个信息 salt '*' grains.get os 上面的是salt-minion的静态信息的查询的相关的命令,...as fp_: fp_.write( self.serial.dumps( {'grains...': load['grains'], 'pillar': data}) ) # On Windows
# 查看所有grains信息 3.2. grains设置 1 [root@salt01 ~]# vim /etc/salt/minion 2 ……………… 3 # Custom static...grains for this minion can be specified here and used in SLS 4 # files just like all other grains....This example sets 4 custom grains, with 5 # the 'roles' grain having two values that can be matched...tree001 12 ……………… 13 [root@salt01 ~]# salt-call saltutil.sync_grains # 刷新 grains【实际可以不进行此操作,因为是本地读取...】 14 local: 15 ##### 查看grains结果 16 [root@salt01 ~]# salt-call grains.item tree 17 local: 18 -----
这默认为60秒 grains_refresh_every: 1 定期检查其grains,10分钟是合理值,单位是分钟。...grains_cache: False 是否做grains的缓存 grains_cache_expiration: 300 启用grains缓存之后这里才有作用,缓存过期时间,单位是秒 ipc_mode...和 pillar 下面来介绍 grains 和 pillar 1、grains grains 是在 minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等。 ...~]# salt 'slaver.test.com' grains.items //列出所有的 grains 项目名以及值 grains的信息并不是动态的,并不会时时变更,它只是在 minion...grains 也可以做配置管理。
cmd.shell "ls -l | awk '/foo/{print \$2}'" salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id...a test' salt '*' cmd.tty pts3 'This is a test' 'cmd.which:' salt '*' cmd.which cat grains...选项 salt '*' grains.ls //查看grains分类 salt '*' grains.items //查看grains所有信息 salt '*' grains.item osrelease...//查看grains某个信息 saalt-run 选项 salt-run manage.up 查看存活的minion salt-run manage.down
IGrainFactory: IGrainFactory 是 Orleans 用于集群中创建 Grains 的工厂接口。...它通常用于在 Orleans Silo 或者 Orleans Client 中创建 Grains 实例。...在 Silo 中,您可以通过依赖注入或者直接实例化一个 IGrainFactory 对象来创建 Grains。...它通常在 Orleans Client 中使用,用于与 Orleans Silo 进行通信,以调用 Grains 的方法或者获取 Grains 的引用。...,而 IClusterClient 则更适合用于外部Client与 Orleans 集群进行通信,包括创建 Grains 和执行其他集群操作。
可见 salt docs. 1.设置变量 开始设置很多变量以后会用得着,使用pillars和 grains能让状态更易于重用,noofcontainers是用于设置启动多少个容器。...{% set tag = salt['pillar.get']('imagetag', "latest") %} {% set containerid = salt['grains.get...']('id') %} {% set hostport = '808' %} {% set hostip = grains['ip_interfaces']['eth0'...{% set tag = salt['pillar.get']('imagetag', "latest") %} {% set containerid = salt['grains.get...']('id') %} {% set hostport = '808' %} {% set hostip = grains['ip_interfaces']['eth0'
root@salt01 salt]# tree 4 . 5 └── minion 6 ├── accumulator 7 ├── extmods 8 │ ├── grains...9 │ │ ├── my_grains.py 10 │ │ └── my_grains.pyc 11 │ └── modules 12 │...└── my_disk.py # 同步模块存在的位置 13 ├── files 14 │ └── base 15 │ ├── _grains 16 │...│ └── my_grains.py 17 │ ├── _modules 18 │ │ └── my_disk.py 19 │ ├──
['ip4_interfaces']['eth0'][0] == '172.16.1.11' and grains['host'] == 'salt01') 19 or (grains['ip4..._interfaces']['eth0'][0] == '172.16.1.12' and grains['host'] == 'salt02') 20 or (grains['ip4_interfaces...: www 24 {% elif grains['ip4_interfaces']['eth0'][0] == '172.16.1.100' %} 25 service_appoint: mariadb...规则得到对应 minion 的内网IP 15 # ServerName {{ grains['ip4_interfaces']['eth0'][0] }}:{{ HttpPort }} 16 17...支持 【其实 defaults 下的第一行就是,这里在重复一遍】 32 IP6_Interface_eth0: {{ grains['ip6_interfaces']['eth0'][0]
be set prior to execution. jinja语法修改配置文件 通过jinja语法修改 /etc/sysconfig/elasticsearch ... {% if 7000 grains...['mem_total'] < 10000 %} ES_HEAP_SIZE=4g {% elif 5000 grains['mem_total'] < 7000 %} ES_HEAP_SIZE=3g...{% elif 3000 grains['mem_total'] < 5000 %} ES_HEAP_SIZE=2g {% elif 1000 grains['mem_total'] < 3000...通过jinja语法修改 /etc/elasticsearch/elasticsearch.yml ... node.name: {{grains['fqdn']}} network.publish_host: {{grains['fqdn_ip4'][0]}} ...
--skip-grains:不加载grains信息。 --refresh-grains-cache:强制刷新grains信息。 ...*’ grains.get pkg:apache salt ‘*’ grains.get_or_set_hash ‘django:SECRET_KEY’ 50 salt ‘*’ grains.has_value...pkg:apache salt ‘*’ grains.item os salt ‘*’ grains.item os osrelease oscodename salt ‘*’ grains.item...host sanitize=True salt ‘*’ grains.items salt ‘*’ grains.items sanitize=True salt ‘*’ grains.ls salt...‘*’ grains.remove key val salt ‘*’ grains.setval key val salt ‘*’ grains.setval key “{‘sub-key': ‘val
信息等 import salt.client caller = salt.client.Caller() caller.sminion.functions['cmd.run']('ls -l') 获取grains...的信息 import salt.client caller = salt.client.Caller() caller.sminion.functions['grains.items'] #grains.items...代表获取全部的grains信息 caller.sminion.functions['grains.item']('os') #想要特定的grains信息用grains.item然后在后面指定
领取专属 10元无门槛券
手把手带您无忧上云