<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ansible &#8211; Strava LTD</title>
	<atom:link href="https://strava.ltd/category/ansible/feed/" rel="self" type="application/rss+xml" />
	<link>https://strava.ltd</link>
	<description>Services of IT infrastructure, AIX Operating System and IBM pSeries, IBM Power, PureStorage PureArrays and DevOps Ansible, Terraform, Infrastructure as a Code</description>
	<lastBuildDate>Tue, 03 Mar 2026 20:25:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://strava.ltd/wp-content/uploads/2024/02/cropped-logo_strava-140_transparent-32x32.png</url>
	<title>ansible &#8211; Strava LTD</title>
	<link>https://strava.ltd</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ansible: create Volume Groups &#038; filesystems on AIX</title>
		<link>https://strava.ltd/2025/09/12/ansible-volume-groups-filesystems-fun-on-aix/</link>
		
		<dc:creator><![CDATA[nicolas]]></dc:creator>
		<pubDate>Fri, 12 Sep 2025 07:45:40 +0000</pubDate>
				<category><![CDATA[ansible]]></category>
		<guid isPermaLink="false">https://strava.ltd/?p=294</guid>

					<description><![CDATA[Today we are going to create a Volume Group and a list of JFS2 filesystems programmatically using Ansible on an AIX 7.x system. Let&#8217;s not make you languish any further, here we go: At this stage we already have a scalable Volume Group named stuffvg. Now, let&#8217;s add some filesystems in it but first thing first, we then need to create the jfs2log LV: Now we are ready to create our Logical Volumes: Now it&#8217;s time to create JFS2 filesystems on our freshly made LV, and to mount them: Last but not least, some exotic stuff to finish, as I]]></description>
										<content:encoded><![CDATA[<p>Today we are going to create a Volume Group and a list of JFS2 filesystems programmatically using Ansible on an AIX 7.x system. Let&#8217;s not make you languish any further, here we go:</p>
<pre class="brush: yaml; title: ; notranslate">
- name: Create stuffvg and its filesystems
  hosts: target
  remote_user: root
  collections:
    - ibm.power_aix
  var:
    prefix: &quot;stuff&quot;

  tasks:
  - name: Be sure the wanted disks are usable with a cfgmgr
    ansible.builtin.shell: cfgmgr

  - name: Create &quot;{{ prefix }}vg&quot;
    ibm.power_aix.lvg:
      state: present
      vg_name: &quot;{{ prefix }}vg&quot;
      pvs: hdisk1
      vg_type: scalable

</pre>
<p>At this stage we already have a scalable Volume Group named stuffvg. Now, let&#8217;s add some filesystems in it but first thing first, we then need to create the jfs2log LV:</p>
<pre class="brush: yaml; title: ; notranslate">
  - name: Create the jfs2Log lv
    aix_lvol:
      vg: &quot;{{ prefix }}vg&quot; 
      lv: stuffj2log
      lv_type: jfs2log
      size: 128M

  - name: Logform the jfs2log
    ansible.builtin.shell: yes | /usr/sbin/logform -V jfs2 /dev/stuffj2log
</pre>
<p>Now we are ready to create our Logical Volumes:</p>
<pre class="brush: yaml; title: ; notranslate">
  - name: Create LVs
    aix_lvol:
      vg: &quot;{{ prefix }}vg&quot;
      lv: 	&quot;{{ item.name }}&quot;
      lv_type: 	&quot;{{ item.type }}&quot;
      size: 	&quot;{{ item.size }}&quot;
    loop:
      - { name: &#039;stuff_users&#039;,	type: &#039;jfs2&#039;, 	size: &#039;20G&#039; }
      - { name: &#039;stuffora19c&#039;,	type: &#039;jfs2&#039;, 	size: &#039;2G&#039; }
      - { name: &#039;stuff_ora&#039;, 	type: &#039;jfs2&#039;, 	size: &#039;3G&#039; }
</pre>
<p>Now it&#8217;s time to create JFS2 filesystems on our freshly made LV, and to mount them:</p>
<pre class="brush: yaml; title: ; notranslate">
 - name: Creation of JFS2 filesystems
    ibm.power_aix.filesystem:
      state:		present
      device: 	  	&quot;{{ item.device }}&quot;
      filesystem: 	&quot;{{ item.mountpoint }}&quot;
      fs_type:		jfs2
      auto_mount:	true
    loop:
      - { device: &#039;stuffora&#039;,	        mountpoint: &#039;/home/oracle&#039; }
      - { device: &#039;stuff_users&#039;,	mountpoint: &#039;/home/users&#039; }
      - { device: &#039;stuffora19c&#039;,	mountpoint: &#039;/home/oracle/product/v19c&#039; }

  - name: Mount FS
    ansible.builtin.shell: mount &quot;{{ item }}&quot;
    with_items:
      - &quot;/home/oracle&quot;
      - &quot;/home/users&quot;
      - &quot;/home/oracle/product/v19c&quot;
</pre>
<p>Last but not least, some exotic stuff to finish, as I know you are kind of that:</p>
<pre class="brush: yaml; title: ; notranslate">
  - name: chlv -x 3000 hd1
    ibm.power_aix.lvol:
      vg: rootvg
      lv: hd1
      extra_opts: &quot;-x 3000&quot;

  - name: Increase size of a filesystem
    ibm.power_aix.filesystem:
      filesystem: /home
      state: present
      attributes: size=25G
</pre>
<p>And here we are. No more excuse to create twice the same FS.</p>
<p>I&#8217;ll see you next time.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ansible: how to check a fileset version on AIX</title>
		<link>https://strava.ltd/2024/02/10/aix-monitoring-with-prometheus/</link>
		
		<dc:creator><![CDATA[nicolas]]></dc:creator>
		<pubDate>Sat, 10 Feb 2024 09:27:07 +0000</pubDate>
				<category><![CDATA[ansible]]></category>
		<category><![CDATA[aix]]></category>
		<category><![CDATA[lpp_facts]]></category>
		<guid isPermaLink="false">https://strava.ltd/?p=1</guid>

					<description><![CDATA[If you wonder or struggle to compare a fileset, or ptf, or package version on AIX, then you are on the right place. First thing first, let&#8217;s gather our filesets details in the ansible_facts: - name: Extract bos.mp64 fileset version ibm.power_aix.lpp_facts: filesets: - bos.adt.base - bos.adt.lib - bos.mp64 Then we extract the version string from the dict: - set_fact: version_string: &#34;{{ item.key }}&#34; loop: &#34;{{ ansible_facts.filesets&#x5B;&#039;bos.mp64&#039;].levels &#124; dict2items }}&#34; when: item.value.vrmf is defined register: version_fact - name: Check bos.mp64 version debug: msg: &#34;ifix #IJ04311 needs to be applied: bos.mp64 {{ version_string }}.&#34; when: &#34;&#039;bos.mp64&#039; in ansible_facts.filesets and version_string is version(&#039;7.1.5.43&#039;,]]></description>
										<content:encoded><![CDATA[
<p>If you wonder or struggle to compare a fileset, or ptf, or package version on AIX, then you are on the right place. First thing first, let&#8217;s gather our filesets details in the ansible_facts:</p>
<pre><pre class="brush: yaml; title: ; notranslate"> - name: Extract bos.mp64 fileset version
   ibm.power_aix.lpp_facts:
     filesets:
       - bos.adt.base
       - bos.adt.lib
       - bos.mp64</pre></pre>
<p><br />Then we extract the version string from the dict:</p>
<pre><pre class="brush: yaml; title: ; notranslate">  - set_fact:
      version_string: &quot;{{ item.key }}&quot;
    loop: &quot;{{ ansible_facts.filesets&#x5B;&#039;bos.mp64&#039;].levels | dict2items }}&quot;
    when: item.value.vrmf is defined
    register: version_fact

  - name: Check bos.mp64 version
    debug:
      msg: &quot;ifix #IJ04311 needs to be applied: bos.mp64 {{ version_string }}.&quot;
    when: &quot;&#039;bos.mp64&#039; in ansible_facts.filesets and version_string is version(&#039;7.1.5.43&#039;, &#039;&amp;amp;amp;lt;&#039;)&quot;
</pre></pre>
<p>And finally the playbook output:</p>
<pre><pre class="brush: plain; title: ; notranslate">ok: &#x5B;aixbox] =&amp;amp;amp;gt; 
(item=
  {&#039;key&#039;: &#039;7.1.5.43&#039;, 
   &#039;value&#039;: 
     {&#039;vrmf&#039;: 
       {&#039;ver&#039;: 7, &#039;rel&#039;: 1, &#039;mod&#039;: 5, &#039;fix&#039;: 43},
       &#039;state&#039;: &#039;committed&#039;,
       &#039;type&#039;: &#039;install&#039;,
       &#039;description&#039;: &#039;Base Operating System 64-bit Multiprocessor Runtime&#039;,
       &#039;emgr_locked&#039;: False,
       &#039;sources&#039;: &#x5B;&#039;/usr/lib/objrepos&#039;, &#039;/etc/objrepos&#039;]
       }
    }
) =&amp;amp;amp;gt; {&quot;ansible_facts&quot;: 
       {&quot;version_string&quot;: &quot;7.1.5.43&quot;},
       &quot;ansible_loop_var&quot;: &quot;item&quot;,
       &quot;changed&quot;: false,
       &quot;item&quot;: 
       {&quot;key&quot;: &quot;7.1.5.43&quot;,
        &quot;value&quot;: 
          {&quot;description&quot;: &quot;Base Operating System 64-bit Multiprocessor Runtime&quot;, 
           &quot;emgr_locked&quot;: false,
           &quot;sources&quot;: &#x5B;&quot;/usr/lib/objrepos&quot;, &quot;/etc/objrepos&quot;],          
           &quot;state&quot;: &quot;committed&quot;,
           &quot;type&quot;: &quot;install&quot;,
           &quot;vrmf&quot;: 
             {&quot;fix&quot;: 43, &quot;mod&quot;: 5, &quot;rel&quot;: 1, &quot;ver&quot;: 7}
          }
        }
      }

TASK &#x5B;Check bos.mp64 version]
skipping: &#x5B;aixbox] =&amp;amp;amp;gt; 
  {&quot;false_condition&quot;: 
    &quot;&#039;bos.mp64&#039; in ansible_facts.filesets and version_string is version(&#039;7.1.5.43&#039;, &#039;&amp;amp;amp;lt;&#039;)&quot;}</pre></pre>
<p> Yes, you are welcomed. ^^</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
