xlid 发表于 2018-7-31 07:06:56

saltstack grain pillar

  GrainPillar概念
  本质上都是keyvalue 型的数据库。
  Grains 是存储在minon上的数据,minion启动后就进行Grain计算,是一种静态数据。
  Pillar 数据存储在master, 是动态数据,每个minion只能看到自已的pillar。
  一个minion可以告诉master它的数据,而minion则需要从master索要pillar数据。
  列出所有minion上的Grains项
  salt 'SN18' grains.ls
  查询 minion上某一具体Grain的值
  salt "SN18" grains.item ipv4

列出对应minion上所有Grain 的详细信息
  salt 'SN18' grains.items
  +++++++++++++++++++++++++++++++
  设置 Grains 数据
  命令行方式
  1)单个值设置
  ]# salt 'SN28' grains.setval my_grain bar
  SN28:
  

my_grain:  bar
  

查询
  ]# salt 'SN28' grains.item my_grain
  SN28:
  

my_grain:  bar
  

2)多个值设置
  ]# salt 'SN28' grains.setvals "{'key1':'val1','key2':'val2'}"
  SN28:
  

key1:  val1
  
key2:
  val2
  

查询命令
  ]# salt 'SN28' grains.item key1
  SN28:
  

key1:  val1
  

3)列表结构设置
  ]# salt 'SN28' grains.setval my_list '['one','two','three']'
  SN28:
  

my_list:  - one
  - two
  - three
  

查询命令
  ]# salt 'SN28' grains.item my_list
  SN28:
  

my_list:  - one
  - two
  - three
  

  查看对应的minion的/etc/salt/grains 可以发现已经写入的Grains数据
  ]# salt 'SN28' cmd.run "cat /etc/salt/grains"
  SN28:
  key1: val1
  key2: val2
  my_grain: bar
  my_list:


[*]one
[*]two
[*]three
grains_module的方式设置
  在master上建立模块对应的目录

  ]# mkdir -pv /srv/salt/_grains
  mkdir: created directory ‘/srv/salt/_grains’
  ]# vim /srv/salt/_grains/my_grain_mod.py
  import time
  def now():
  grains={}
  grains['now']=time.time()
  return grains
  -----------------------同步有没有生效--
  同步模块到minion
  ]# salt 'SN28' saltutil.sync_all
  重载一次模块
  ]# salt 'SN28' sys.reload_moduls
  查看新设置的Grians
  ]# salt 'SN28' grains.item now
  在minion端设置
  登陆到一台minion
  vim /etc/salt/minion.d/grains.conf
  grains:
  roles:


[*]webserver
[*]
memcach
  deployment: datacenter4
  cabinet: 13
  cab_u: 14-15
  重启salt-minion加载新的配置文件,在satl-master上查看
  ]# salt 'SN27' grains.item roles
  SN27:

  roles:

[*]webserver
[*]memcach
  删除自定义Grains
  通过 grains.setval 设置的Grain 可以直接通过下面命令删除
  ]# salt 'SN28' grains.delval my_grain
  SN28:
  None
  ++++++++++++++++++++++++++++++++++++
  列出minon上所有Pillar的详细信息
  # salt 'SN28' pillar.items
页: [1]
查看完整版本: saltstack grain pillar