擅长:python、mysql、java
<p>简单bash脚本</p>
<pre><code>#!/bin/bash
hosts_file=$1
sections=$(cat $hosts_file | grep "\[" | tr -d "[]" | sort)
for i in $sections; do
sed -n -e "/\[$i\]/,/\[/p" $hosts_file | sed '${/\[.*/d}'
done
</code></pre>
<p>使用larsks的输入给出</p>
^{pr2}$
<p>本机可译解决方案仅限于组和主机。下面的问题示例清单</p>
^{pr3}$
<p>给出(简写):</p>
^{pr4}$
<p>与<em>blockinfide</em></p>
<pre><code>tasks:
- blockinfile:
create: yes
path: "{{ playbook_dir }}/my_hosts"
block: |
[{{ item }}]
{% for host in groups[item] %}
{{ host }}
{% endfor %}
marker: "# {mark} group:{{ item }}"
loop: "{{ groups.keys()|difference(['all', 'ungrouped'])|sort }}"
</code></pre>
<p>创建文件:</p>
<pre><code>> cat my_hosts
# BEGIN group:database
[database]
db_server_1
local_db_server
# END group:database
# BEGIN group:ExampleGroup
[ExampleGroup]
Server05
Myserver01
# END group:ExampleGroup
# BEGIN group:webservers
[webservers]
examplehostserver
hostname3
# END group:webservers
</code></pre>
<p>从构成变量声明的可解释变量重建库存不会是明确的。</p>