• saltStack_Pillar


    Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。这里可以看出Pillar的一个特点,Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。 另外还可以在Pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在State中引用等。

     

     

    默认情况下,master配置文件中的所有数据都添加到Pillar中,且对所有minion可用。默认如下:

     

    #pillar_opts: True 

     

     

    [root@server_client base]# salt '*' pillar.items    #查看当前pillar的值

    server_client:
    ----------
    _errors:
    - Error encountered while rendering pillar top file.
    master:
    ----------
    __cli:
    salt-master
    __role:
    master
    allow_minion_key_revoke:
    True
    archive_jobs:
    False

    ....

     

    master上配置文件中定义pillar_roots,用来指定pillar的数据存储在哪个目录

    pillar_roots:
       base:
        - /srv/salt/pillar 

    首先,和state系统一样,pillar也是需要一个top.sls文件作为一个入口,用来指定对象

    base:
      'client':    #这里面表示谁可以使用pillar 
        - sl    #这里指定了一个sl.sls文件

    sl.sls文件:

    {% if grains['os'] == 'CentOS' %}
    var-sl: sl   #pillar定义了一个变量 var-sl 值为 sl
    {% endif %} 

     

    测试刚才定义的pillar:

    [root@server_client base]# salt '*' pillar.items

    在State文件中将可以引用Pillar数据

    进入/srv/salt/base目录 新建一个文件叫xxxx.sls   

     sl-install:

      pkg.installed:
        - name: {{ pillar['var-sl'] }} #pillar数据中的定义的'var-sl' 变量

     

     

    刷新pillar

    [root@server_client base]# salt * saltutil.refresh_pillar

     

     

  • 相关阅读:
    【NIPS 2018】完整论文下载链接
    【今日CV 视觉论文速览】30 Nov 2018
    【超好玩的在线AI项目】浏览器里玩AI------持续更新
    hdu 4035 Maze 概率DP
    hdu 4089 Activation 概率DP
    hdu 4405 Aeroplane chess 概率DP
    zoj 3329 One Person Game 概率DP
    poj 2096 Collecting Bugs 概率DP
    poj 3744 Scout YYF I
    2013 Multi-University Training Contest 5 Partition
  • 原文地址:https://www.cnblogs.com/ajaxa/p/11382009.html
Copyright © 2020-2023  润新知