<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Ansible - 标签 - Gene.Tech</title>
        <link>https://geneliu.itaghome.win/zh-cn/tags/ansible/</link>
        <description>Ansible - 标签 - Gene.Tech</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>gene.liu@live.com (Gene Liu)</managingEditor>
            <webMaster>gene.liu@live.com (Gene Liu)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Thu, 28 Jan 2021 00:00:00 &#43;0000</lastBuildDate><atom:link href="https://geneliu.itaghome.win/zh-cn/tags/ansible/" rel="self" type="application/rss+xml" /><item>
    <title>Ansible from_yaml 过滤器</title>
    <link>https://geneliu.itaghome.win/zh-cn/2021-01-28-ansible-fromyaml/</link>
    <pubDate>Thu, 28 Jan 2021 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2021-01-28-ansible-fromyaml/</guid>
    <description><![CDATA[<p>Ansible <code>from_yaml</code> 过滤器可用于简化带有格式的数据操作。</p>
<p>列表数据类型的示例：</p>
<h3 id="没有过滤器">没有过滤器</h3>
<p>我必须同时使用 <code>strip</code> 和 <code>split</code> 函数，这很容易出错。</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-yaml">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">glusterfs_node_hostname_base</span><span class="p">:</span><span class="w"> </span><span class="p">|</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">  {% for item in glusterfs_node|unique %}
</span></span></span><span class="line"><span class="cl"><span class="sd">  {{ hostvars[item].get(&#39;ansible_hostname&#39;) }}
</span></span></span><span class="line"><span class="cl"><span class="sd">  {% endfor %}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c">## gluster 在探测对等点时需要唯一的主机名或节点名，这里 glusterfs_node_hostname </span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c">## 存储所有 glusterfs 节点的主机名以用于验证目的</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">glusterfs_node_hostname</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;{{ glusterfs_node_hostname_base.strip().split(&#39;\n&#39;) | default([]) }}&#34;</span></span></span></code></pre></div></div>
<h3 id="使用-from_yaml-过滤器">使用 <code>from_yaml</code> 过滤器</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-yaml">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">glusterfs_node_hostname_base</span><span class="p">:</span><span class="w"> </span><span class="p">|</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">  ---
</span></span></span><span class="line"><span class="cl"><span class="sd">  {% for item in glusterfs_node|unique %}
</span></span></span><span class="line"><span class="cl"><span class="sd">  - {{ hostvars[item].get(&#39;ansible_hostname&#39;) }}
</span></span></span><span class="line"><span class="cl"><span class="sd">  {% endfor %}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c">## gluster 在探测对等点时需要唯一的主机名或节点名，这里 glusterfs_node_hostname </span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c">## 存储所有 glusterfs 节点的主机名以用于验证目的</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">glusterfs_node_hostname</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;{{ glusterfs_node_hostname_base | from_yaml }}&#34;</span></span></span></code></pre></div></div>]]></description>
</item>
</channel>
</rss>
