ansible-middleware / amq

A collection to manage AMQ brokers
Apache License 2.0
13 stars 11 forks source link

Cannot run playbook with tags to run only part of the playbook #100

Open RobertFloor opened 9 months ago

RobertFloor commented 9 months ago
SUMMARY

We want to run tasks that only change users or queues on our production brokers. Even if the user changes other settings it only should change the tasks with the tag. I see that the playbook has support for tags but for us this is not running correctly.

ISSUE TYPE
ANSIBLE VERSION
❯ ansible --version
ansible [core 2.15.3]
  config file = /home/robert/AMQ-Ansible-config/ansible-configuration/ansible.cfg
  configured module search path = ['/home/robert/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/linuxbrew/.linuxbrew/Cellar/ansible/8.3.0/libexec/lib/python3.11/site-packages/ansible
  ansible collection location = /home/robert/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/linuxbrew/.linuxbrew/bin/ansible
  python version = 3.11.5 (main, Aug 24 2023, 12:23:19) [GCC 11.4.0] (/home/linuxbrew/.linuxbrew/Cellar/ansible/8.3.0/libexec/bin/python)
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
# /home/linuxbrew/.linuxbrew/Cellar/ansible/8.3.0/libexec/lib/python3.11/site-packages/ansible_collections
Collection                                Version
----------------------------------------- -------
amazon.aws                                6.3.0
ansible.netcommon                         5.1.2
ansible.posix                             1.5.4
ansible.utils                             2.10.3
ansible.windows                           1.14.0
arista.eos                                6.0.1
awx.awx                                   22.6.0
azure.azcollection                        1.16.0
check_point.mgmt                          5.1.1
chocolatey.chocolatey                     1.5.1
cisco.aci                                 2.7.0
cisco.asa                                 4.0.1
cisco.dnac                                6.7.3
cisco.intersight                          1.0.27
cisco.ios                                 4.6.1
cisco.iosxr                               5.0.3
cisco.ise                                 2.5.14
cisco.meraki                              2.15.3
cisco.mso                                 2.5.0
cisco.nso                                 1.0.3
cisco.nxos                                4.4.0
cisco.ucs                                 1.10.0
cloud.common                              2.1.4
cloudscale_ch.cloud                       2.3.1
community.aws                             6.2.0
community.azure                           2.0.0
community.ciscosmb                        1.0.6
community.crypto                          2.15.0
community.digitalocean                    1.24.0
community.dns                             2.6.0
community.docker                          3.4.8
community.fortios                         1.0.0
community.general                         7.3.0
community.google                          1.0.0
community.grafana                         1.5.4
community.hashi_vault                     5.0.0
community.hrobot                          1.8.1
community.libvirt                         1.2.0
community.mongodb                         1.6.1
community.mysql                           3.7.2
community.network                         5.0.0
community.okd                             2.3.0
community.postgresql                      2.4.3
community.proxysql                        1.5.1
community.rabbitmq                        1.2.3
community.routeros                        2.9.0
community.sap                             1.0.0
community.sap_libs                        1.4.1
community.skydive                         1.0.0
community.sops                            1.6.4
community.vmware                          3.9.0
community.windows                         1.13.0
community.zabbix                          2.1.0
containers.podman                         1.10.2
cyberark.conjur                           1.2.0
cyberark.pas                              1.0.19
dellemc.enterprise_sonic                  2.2.0
dellemc.openmanage                        7.6.1
dellemc.powerflex                         1.7.0
dellemc.unity                             1.7.1
f5networks.f5_modules                     1.25.1
fortinet.fortimanager                     2.2.1
fortinet.fortios                          2.3.1
frr.frr                                   2.0.2
gluster.gluster                           1.0.2
google.cloud                              1.2.0
grafana.grafana                           2.1.5
hetzner.hcloud                            1.16.0
hpe.nimble                                1.1.4
ibm.qradar                                2.1.0
ibm.spectrum_virtualize                   1.12.0
infinidat.infinibox                       1.3.12
infoblox.nios_modules                     1.5.0
inspur.ispim                              1.3.0
inspur.sm                                 2.3.0
junipernetworks.junos                     5.2.0
kubernetes.core                           2.4.0
lowlydba.sqlserver                        2.1.0
microsoft.ad                              1.3.0
netapp.aws                                21.7.0
netapp.azure                              21.10.0
netapp.cloudmanager                       21.22.0
netapp.elementsw                          21.7.0
netapp.ontap                              22.7.0
netapp.storagegrid                        21.11.1
netapp.um_info                            21.8.0
netapp_eseries.santricity                 1.4.0
netbox.netbox                             3.13.0
ngine_io.cloudstack                       2.3.0
ngine_io.exoscale                         1.0.0
ngine_io.vultr                            1.1.3
openstack.cloud                           2.1.0
openvswitch.openvswitch                   2.1.1
ovirt.ovirt                               3.1.2
purestorage.flasharray                    1.20.0
purestorage.flashblade                    1.12.1
purestorage.fusion                        1.6.0
sensu.sensu_go                            1.14.0
servicenow.servicenow                     1.0.6
splunk.es                                 2.1.0
t_systems_mms.icinga_director             1.33.1
telekom_mms.icinga_director               1.34.1
theforeman.foreman                        3.12.0
vmware.vmware_rest                        2.3.1
vultr.cloud                               1.8.0
vyos.vyos                                 4.1.0
wti.remote                                1.0.5

# /home/robert/.ansible/collections/ansible_collections
Collection                                Version
----------------------------------------- -------
ansible.posix                             1.5.4
community.general                         6.0.1
middleware_automation.amq                 1.3.11
middleware_automation.common              1.1.2
middleware_automation.redhat_csp_download 1.2.2
STEPS TO REPRODUCE
❯ ansible-playbook -i hostfiles/dev/AMQ-dev-cluster.yml -e activemq_version="7.11.1" playbooks/install-broker-dev.yml  --list-tasks --tags install

playbook: playbooks/install-broker-dev.yml

  play #1 (all): Playbook for Red Hat AMQ Broker        TAGS: []
    tasks:
      middleware_automation.amq.activemq : Validating arguments against arg spec 'main' TAGS: [always]
      middleware_automation.amq.activemq : Include install tasks        TAGS: [install]
❯ ansible-playbook -i hostfiles/dev/AMQ-dev-cluster.yml -e activemq_version="7.11.1" playbooks/install-broker-dev.yml  -v --tags "install"
Using /home/robert/AMQ-Ansible-config/ansible-configuration/ansible.cfg as config file

PLAY [Playbook for Red Hat AMQ Broker] *************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************************************************************************************************************************************
ok: [amq1]
ok: [amq2]

TASK [middleware_automation.amq.activemq : Validating arguments against arg spec 'main'] ***********************************************************************************************************************************************************************************************
ok: [amq1] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role
ok: [amq2] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role

TASK [middleware_automation.amq.activemq : Include install tasks] **********************************************************************************************************************************************************************************************************************
included: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq/tasks/install.yml for amq1, amq2

PLAY RECAP *****************************************************************************************************************************************************************************************************************************************************************************
amq1                       : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
amq2                       : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

❯ ansible-playbook -i hostfiles/dev/AMQ-dev-cluster.yml -e activemq_version="7.11.1" playbooks/install-broker-dev.yml  -v --tags "users"
Using /home/robert/AMQ-Ansible-config/ansible-configuration/ansible.cfg as config file

PLAY [Playbook for Red Hat AMQ Broker] *************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************************************************************************************************************************************
ok: [amq2]
ok: [amq1]

TASK [middleware_automation.amq.activemq : Validating arguments against arg spec 'main'] ***********************************************************************************************************************************************************************************************
ok: [amq1] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role
ok: [amq2] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role

PLAY RECAP *****************************************************************************************************************************************************************************************************************************************************************************
amq1                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
amq2                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

❯ ansible-playbook -i hostfiles/dev/AMQ-dev-cluster.yml -e activemq_version="7.11.1" playbooks/install-broker-dev.yml  -v --tags "systemd"
Using /home/robert/AMQ-Ansible-config/ansible-configuration/ansible.cfg as config file

PLAY [Playbook for Red Hat AMQ Broker] *************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************************************************************************************************************************************
ok: [amq1]
ok: [amq2]

TASK [middleware_automation.amq.activemq : Validating arguments against arg spec 'main'] ***********************************************************************************************************************************************************************************************
ok: [amq2] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role
ok: [amq1] => changed=false
  msg: The arg spec validation passed
  validate_args_context:
    argument_spec_name: main
    name: activemq
    path: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq
    type: role

TASK [middleware_automation.amq.activemq : Include systemd tasks] **********************************************************************************************************************************************************************************************************************
included: /home/robert/.ansible/collections/ansible_collections/middleware_automation/amq/roles/activemq/tasks/systemd.yml for amq1, amq2

PLAY RECAP *****************************************************************************************************************************************************************************************************************************************************************************
amq1                       : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
amq2                       : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
EXPECTED RESULTS

We expect that the tasks included such as firewall or user are executed fully. now it seems only the include task is executed.

ACTUAL RESULTS

Included tasks are not ran.