<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ansible on Namtok blog</title>
    <link>https://blog.namtok-it.com/tags/ansible/</link>
    <description>Recent content in Ansible on Namtok blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2025 </copyright>
    <lastBuildDate>Tue, 29 Mar 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.namtok-it.com/tags/ansible/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>[Ansible] ファイルにある行が存在することを保証する</title>
      <link>https://blog.namtok-it.com/posts/ansible_ensure_a_line_exists_in_a_file/</link>
      <pubDate>Tue, 29 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.namtok-it.com/posts/ansible_ensure_a_line_exists_in_a_file/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#1&#34;&gt;ファイルにある行が存在することを保証する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2&#34;&gt;共通タスクにする&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 class=&#34;relative group&#34;&gt;&lt;a name=&#34;1&#34;&gt;ファイルにある行が存在することを保証する&lt;/a&gt; 
    &lt;div id=&#34;ファイルにある行が存在することを保証する&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ab%e3%81%82%e3%82%8b%e8%a1%8c%e3%81%8c%e5%ad%98%e5%9c%a8%e3%81%99%e3%82%8b%e3%81%93%e3%81%a8%e3%82%92%e4%bf%9d%e8%a8%bc%e3%81%99%e3%82%8b&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h3&gt;
&lt;p&gt;以下の 2 ステップで行います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ファイルが行に存在するか確認する。&lt;/li&gt;
&lt;li&gt;存在しなければ行を追加する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;今回は行をファイルのどの位置に追加するかは制御していません。必要が出てきたらまた調べます。&lt;/p&gt;
&lt;p&gt;これで &lt;code&gt;/etc/bar&lt;/code&gt; に &lt;code&gt;&amp;quot;foooooo&amp;quot;&lt;/code&gt; という文字列が存在しなければ追加するという処理を行います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;foooooo がファイル内に存在するか確認&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;shell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;grep -c &amp;#34;foooooo&amp;#34; /etc/bar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;lines_count&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ignore_errors&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;yes&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;foooooo がファイル内に存在しなければ追加する&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;lineinfile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;foooooo&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;line&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/etc/bar&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;when&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;lines_count.stdout == &amp;#34;0&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class=&#34;relative group&#34;&gt;&lt;a name=&#34;2&#34;&gt;共通タスクにする&lt;/a&gt; 
    &lt;div id=&#34;共通タスクにする&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e5%85%b1%e9%80%9a%e3%82%bf%e3%82%b9%e3%82%af%e3%81%ab%e3%81%99%e3%82%8b&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h3&gt;
&lt;p&gt;構成は ansible の &lt;a href=&#34;https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html#directory-layout&#34; target=&#34;_blank&#34;&gt;best practice&lt;/a&gt;{:target=&amp;quot;_blank&amp;quot;} を参考に以下のようにします。&lt;br&gt;
必要なパスだけ書いています。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>[Ansible] コマンドが存在するかどうかでタスクの実行を制御する</title>
      <link>https://blog.namtok-it.com/posts/ansible_command_exists/</link>
      <pubDate>Sun, 27 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.namtok-it.com/posts/ansible_command_exists/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#1&#34;&gt;command が存在するかのフラグを変数にいれて when で処理を分ける&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 class=&#34;relative group&#34;&gt;&lt;a name=&#34;1&#34;&gt;command が存在するかのフラグを変数にいれて when で処理を分ける&lt;/a&gt; 
    &lt;div id=&#34;command-が存在するかのフラグを変数にいれて-when-で処理を分ける&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#command-%e3%81%8c%e5%ad%98%e5%9c%a8%e3%81%99%e3%82%8b%e3%81%8b%e3%81%ae%e3%83%95%e3%83%a9%e3%82%b0%e3%82%92%e5%a4%89%e6%95%b0%e3%81%ab%e3%81%84%e3%82%8c%e3%81%a6-when-%e3%81%a7%e5%87%a6%e7%90%86%e3%82%92%e5%88%86%e3%81%91%e3%82%8b&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;shell: command -v &amp;lt;コマンド名&amp;gt; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt; でコマンドが存在するかどうかをフラグとして出力できます。&lt;br&gt;
&lt;code&gt;register: var_name&lt;/code&gt; によって、&lt;code&gt;var_name.rc&lt;/code&gt;に存在するかどうかのフラグが代入されます。&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
