天天看点

saltstack的探索-使用模版分发一个配置文件到minion

saltstack的探索-使用模版分发一个配置文件到minion

<code>配置pillar:</code>

<code>[root@server200-21 salt]</code><code># cat /srv/pillar/top.sls    </code>

<code>base:</code>

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

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

<code>[root@server200-21 salt]</code><code># cat /srv/pillar/data.sls </code>

<code>a: 1</code>

<code>b: 2</code>

<code>c:</code>

<code>    </code><code>c1: 1001</code>

<code>    </code><code>c2: 2001</code>

<code>    </code><code>c3: 3001</code>

<code>使用yaml模版来创建一个配置文件:</code>

<code>[root@server200-21 salt]</code><code># cat /srv/salt/top.sls </code>

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

<code>    </code><code>'test230'</code><code>:</code>

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

<code>模版文件路径:</code>

<code>[root@server200-21 salt]</code><code># cat /srv/salt/appconfig.sls </code>

<code>/tmp/appconfig</code><code>.conf:</code>

<code>    </code><code>file</code><code>.managed:</code>

<code>        </code><code>- </code><code>source</code><code>: salt:</code><code>//files/appconfig</code><code>.conf.yaml</code>

<code>        </code><code>- template: jinja</code>

<code>模版文件内容:</code>

<code>[root@server200-21 salt]</code><code># cat files/appconfig.conf.yaml </code>

<code>test</code> <code>hostname</code><code>:  {{ grains[</code><code>'id'</code><code>] }}</code>

<code>get the value of a: {{ pillar[</code><code>'a'</code><code>] }}</code>

<code>get the value of b: {{ pillar[</code><code>'b'</code><code>] }}</code>

<code>{% </code><code>if</code> <code>'c'</code> <code>in</code> <code>pillar %}</code>

<code>get the value of c:</code>

<code>{% </code><code>for</code> <code>k,</code><code>v</code> <code>in</code> <code>pillar.get(</code><code>'c'</code><code>, {}).items() %}</code>

<code>    </code><code>{{ k }}: {{ </code><code>v</code> <code>}}</code>

<code>{% endfor %}</code>

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

<code>执行:</code>

<code>[root@server200-21 salt]</code><code># salt 'test230' state.highstate</code>

<code>test230:</code>

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

<code>          </code><code>ID: dnsmasq</code>

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

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

<code>     </code><code>Comment: Package dnsmasq is already installed.</code>

<code>     </code><code>Started: 15:44:55.301089</code>

<code>    </code><code>Duration: 1084.57 ms</code>

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

<code>          </code><code>ID: </code><code>/tmp/appconfig</code><code>.conf</code>

<code>    </code><code>Function: </code><code>file</code><code>.managed</code>

<code>     </code><code>Comment: File </code><code>/tmp/appconfig</code><code>.conf updated</code>

<code>     </code><code>Started: 15:44:56.385793</code>

<code>    </code><code>Duration: 12.932 ms</code>

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

<code>              </code><code>diff</code><code>:</code>

<code>                  </code><code>New </code><code>file</code>

<code>              </code><code>mode:</code>

<code>                  </code><code>0644</code>

<code>Summary</code>

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

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

<code>Failed:    0</code>

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

<code>查看生成的squid.conf文件内容:</code>

<code>[root@test230 monitor_agent]</code><code># cat /tmp/appconfig.conf </code>

<code>test</code> <code>hostname</code><code>:  test230</code>

<code>get the value of a: 1</code>

<code>get the value of b: 2</code>

本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1613374,如需转载请自行联系原作者

继续阅读