017 Inventory plugin community.general.iocage

Extending example 016.

Tree

shell> tree .
.
├── ansible.cfg
├── hosts
│   ├── 01_iocage.yml
│   ├── 02_iocage.yml
│   └── 03_constructed.yml
└── pb-test.yml

Synopsis

  • The inventory plugin community.general.iocage provides the same functionality

Notes

  • Available in community.general >= 10.2.0

  • See

    shell> ansible-doc -t inventory community.general.iocage
    

Inventory hosts/01_iocage.yml

plugin: community.general.iocage
host: 10.1.0.18
user: admin
env:
  CRYPTOGRAPHY_OPENSSL_NO_LEGACY: 1
compose:
  ansible_host: iocage_ip4
groups:
  test_01: inventory_hostname.startswith('test')

Inventory hosts/02_iocage.yml

plugin: community.general.iocage
host: 10.1.0.73
user: admin
env:
  CRYPTOGRAPHY_OPENSSL_NO_LEGACY: 1
compose:
  ansible_host: iocage_ip4
groups:
  test_02: inventory_hostname.startswith('test')

Inventory hosts/03_constructed.yml

plugin: ansible.builtin.constructed
groups:
    test: inventory_hostname.startswith('test')

Playbook pb-test.yml

- hosts: test

  tasks:

    - debug:
        var: iocage_ip4

    - debug:
        msg: |
          {% for group in groups %}
          {{ group }}: {{ groups[group] }}
          {% endfor %}
      run_once: true

Playbook output

(env) > ansible-playbook pb-test.yml -i hosts

PLAY [test] ***************************************************************************************

TASK [debug] **************************************************************************************
ok: [test_101] => 
  iocage_ip4: 10.1.0.101
ok: [test_102] => 
  iocage_ip4: 10.1.0.102
ok: [test_103] => 
  iocage_ip4: 10.1.0.103
ok: [test_111] => 
  iocage_ip4: 10.1.0.111
ok: [test_112] => 
  iocage_ip4: 10.1.0.112
ok: [test_113] => 
  iocage_ip4: 10.1.0.113

TASK [debug] **************************************************************************************
ok: [test_101] => 
  msg: |-
    all: ['ansible_client', 'test_101', 'test_102', 'test_103', 'test_111', 'test_112', 'test_113']
    ungrouped: ['ansible_client']
    test_01: ['test_101', 'test_102', 'test_103']
    test_02: ['test_111', 'test_112', 'test_113']
    test: ['test_101', 'test_102', 'test_103', 'test_111', 'test_112', 'test_113']

PLAY RECAP ****************************************************************************************
test_101: ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
test_102: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
test_103: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
test_111: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
test_112: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
test_113: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0