zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    postgresql客户端连接错误的解决方法【转】
    在游戏开发中使用管理类的目的和作用
    Unity3D对象池
    yield的作用
    Unity延迟和重复调用方法
    Unity的Asset Store商店下载文件路径
    C#委托和事件详解
    C#一个关于委托和事件通俗易懂的例子
    C#委托和事件定义和使用
    C#委托和事件
  • 原文地址:https://www.cnblogs.com/ajaxa/p/11382009.html
Copyright © 2011-2022 走看看