天天看點

Saltstack之pillar元件

我看了很久pillar這個元件,搜尋了不少,還不是很明白這元件的作用,大概我了解到,pillar這個元件比較靈活,可以自己定義minion的資訊,還可以結合jinjia。

網上的解析:

pillar:

    salt一個非常重要的元件,它用于給特定的minion定義任何你需要的資料(資料是動态的),這些資料可以被Salt的其他元件(如:state)使用

    可以根據需求自定義pillar變量,如:使用者和uid相關的變量,作業系統與軟體包相關的變量等等;在pillar中定義變量,每個變量對應一個值,就像python中的字典一樣,一個鍵對應一個值,我們可以通過指定自定義的pillar變量名,來擷取pillar變量對應的值{{ pillar['key']['key'] }} ,pillar裡面也有類似嵌套.

<code>定義pillar檔案</code>

<code>vim </code><code>/srv/pillar/base/pkg/init</code><code>.sls:</code>

<code>pkgs:</code>

<code>  </code><code>{% </code><code>if</code> <code>grains[</code><code>'os_family'</code><code>] == </code><code>'RedHat'</code> <code>%}</code>

<code>  </code><code>apache: httpd</code>

<code>  </code><code>vim: vim-enhanced  {% </code><code>elif</code> <code>grains[</code><code>'os_family'</code><code>] == </code><code>'Debian'</code> <code>%}</code>

<code>  </code><code>apache: apache2</code>

<code>  </code><code>vim: vim  {% </code><code>elif</code> <code>grains[</code><code>'os'</code><code>] == </code><code>'Arch'</code> <code>%}</code>

<code>  </code><code>apache: apache</code>

<code>  </code><code>vim: vim  {% endif %}</code>

<code>vim </code><code>/srv/pillar/base/top</code><code>.sls:</code>

<code>base:</code>

<code>  </code><code>'*'</code><code>:</code>

<code>    </code><code>- pkg</code>

<code>使用pillar擷取相應系統的apache值</code>

<code>vim </code><code>/srv/salt/apache/init</code><code>.sls:</code>

<code>apache:</code>

<code>  </code><code>pkg.installed:</code>

<code>    </code><code>- name: {{ pillar[</code><code>'pkgs'</code><code>][</code><code>'apache'</code><code>] }}</code>

<code>直接執行剛剛寫好的apache目錄下的sls将會自動安裝httpd,由于centos6屬于redhat家族的分支,a</code>

<code>apahce的value是httpd。</code>

<code>[root@salt-master base]</code><code># salt 'salt-minion01' state.sls apache </code>

<code>salt-minion01:</code>

<code>----------</code>

<code>          </code><code>ID: apache</code>

<code>    </code><code>Function: pkg.installed</code>

<code>        </code><code>Name: httpd</code>

<code>      </code><code>Result: True</code>

<code>     </code><code>Comment: The following packages were installed</code><code>/updated</code><code>: httpd</code>

<code>     </code><code>Started: 15:22:35.860220</code>

<code>    </code><code>Duration: 25318.05 ms</code>

<code>     </code><code>Changes:   </code>

<code>              </code><code>----------</code>

<code>              </code><code>apr:</code>

<code>                  </code><code>----------</code>

<code>                  </code><code>new:</code>

<code>                      </code><code>1.3.9-5.el6_2</code>

<code>                  </code><code>old:</code>

<code>              </code><code>apr-util:</code>

<code>                      </code><code>1.3.9-3.el6_0.1</code>

<code>              </code><code>apr-util-ldap:</code>

<code>              </code><code>httpd:</code>

<code>                      </code><code>2.2.15-55.el6.centos.2</code>

<code>              </code><code>httpd-tools:</code>

<code>              </code><code>mailcap:</code>

<code>                      </code><code>2.1.31-2.el6</code>

<code>Summary </code><code>for</code> <code>salt-minion01</code>

<code>------------</code>

<code>Succeeded: 1 (changed=1)</code>

<code>Failed:    0</code>

<code>Total states run:     1</code>

<code>Total run </code><code>time</code><code>:  25.318 s</code>

<code></code>

本文轉自 yanconggod 51CTO部落格,原文連結:http://blog.51cto.com/yanconggod/1878904

繼續閱讀