> shell> cat pb.yml  
> - hosts: localhost
>   vars:
>     versions:
>       4.2.5: false
>       4.2.8: true
>   tasks:
>     - name: Remove versions
>       lineinfile:
>         state: absent
>         path: docker-compose
>         regexp: '^\s*#*\s*image: graylog/graylog{{ item.key }}\s*$'
>       loop: "{{ versions|dict2items }}"
>       when: force_remove_versions|d(false)|bool
>     - name: Add versions
>       lineinfile:
>         path: docker-compose
>         regexp: '^\s*#*\s*image: graylog/graylog{{ item.key }}\s*$'
>         line: '{{ hash }}image: graylog/graylog{{ item.key }}'
>       loop: "{{ versions|dict2items }}"
>       vars:
>         hash: "{{ item.value|ternary('', '#') }}"

The playbook is idempotent

shell> cat docker-compose
#image: graylog/graylog4.2.5
image: graylog/graylog4.2.8


shell> ansible-playbook pb.yml

PLAY [localhost]
****************************************************************

TASK [Remove versions]
****************************************************************
skipping: [localhost] => (item={'key': '4.2.5', 'value': False})
skipping: [localhost] => (item={'key': '4.2.8', 'value': True}) 

TASK [Add versions]
****************************************************************
ok: [localhost] => (item={'key': '4.2.5', 'value': False})
ok: [localhost] => (item={'key': '4.2.8', 'value': True})

PLAY RECAP
****************************************************************
localhost: ok=1    changed=0    unreachable=0
failed=0    skipped=1    rescued=0    ignored=0


-- 
Vladimir Botka

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/20220506065010.3524cdc7%40gmail.com.

Attachment: pgptsxKfEGLKl.pgp
Description: OpenPGP digital signature

Reply via email to