ansible-middleware / amq

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

In the newest version of the playbook the shared storage is not mounted correctly. #56

Closed RobertFloor closed 1 year ago

RobertFloor commented 1 year ago
SUMMARY

I was comparing version middleware_automation.amq:1.2.0 to version 'middleware_automation.amq:1.1.1. In version 1.1.1 everything is ok, but in version 1.2.0 the shared storage path is not mounted correctly. I attached the broker.xml files. for both versions. In the new version these four variables are not set correctly in the broker.xml. This results in all kind of errors in the console. With the same input files I get these results

Compare the broker.xml files after installation: in version the broker.xml is nor correct1.2.0

<paging-directory>data/paging</paging-directory>
 <bindings-directory>data/bindings</bindings-directory>
 <journal-directory>data/journal</journal-directory>
 <large-messages-directory>data/largemessages</large-messages-directory>

in 1.1.1 it is correct.

    <paging-directory>/data/amq-broker/shared/paging</paging-directory>
    <bindings-directory>/data/amq-broker/shared/bindings</bindings-directory>
    <journal-directory>/data/amq-broker/shared/journal</journal-directory>
    <large-messages-directory>/data/amq-broker/shared/large-messages</large-messages-directory>

These are the variables we use:

all:
  children:
    amq:
      children:
        ha1:
          hosts: xxxxxx
        ha2:
          hosts: xxxxxx
      vars:
        activemq_configure_firewalld: True
        activemq_prometheus_enabled: True
        amq_broker_enable: True
        activemq_cors_strict_checking: False
        activemq_ha_enabled: true
        activemq_shared_storage: true
        activemq_shared_storage_path: /data/amq-broker/shared
        ansible_user: xxxxx
        ansible_ssh_private_key_file: hostfiles/privkey
        activemq_offline_install: True
        activemq_version: 7.10.2
        activemq_dest: /opt/amq
        activemq_archive: "amq-broker-{{ activemq_version }}-bin.zip"
        activemq_installdir: "{{ activemq_dest }}/amq-broker-{{ activemq_version }}"
        activemq_shared_storage_mounted: true
        activemq_port: 61616
        cluster_name: amqtest002
        nfs_mount_source: "nfssatestasb2.file.core.windows.net:/nfssatestasb2/sharetestasb2"
        activemq_tls_enabled: True
        activemq_tls_keystore_path: "/app/keystores/keystore.jks"
        activemq_tls_truststore_path: "/app/keystores/truststore.jks"
        activemq_tls_truststore_password: "changeit"
        activemq_acceptors:
          - name: all
            bind_address: "0.0.0.0"
            bind_port: "{{ activemq_port }}"
            parameters:
              tcpSendBufferSize: 1048576
              tcpReceiveBufferSize: 1048576
              protocols: AMQP,OPENWIRE
              useEpoll: true
              sslEnabled: True
              keyStorePath: "{{ activemq_tls_keystore_dest }}"
              keyStorePassword: "{{ activemq_tls_keystore_password }}"
              trustStorePath: "{{ activemq_tls_truststore_dest }}"
              trustStorePassword: "{{ activemq_tls_truststore_password }}"
              verifyHost: False
        activemq_sa_password: "asb-sa-test-password"      
        activemq_users:
        - user: "{{ activemq_instance_username }}"
          password: "{{ activemq_instance_password }}"
          roles: [ amq ]
        - user: "asb-sa"
          password: "{{ activemq_sa_password }}"
          roles: [ amq ]
        activemq_roles:
        - name: amq
          match: '#'
          permissions: [ createDurableQueue, deleteDurableQueue, createAddress, deleteAddress, consume, browse, send, manage ]

broker-old.xml.txt

[broker-new.xml.txt](https://github.com/ansible-middleware/amq/files/10518862/broker-new.xml.txt)

##### ISSUE TYPE
 - Bug Report

##### ANSIBLE VERSION
<!-- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version"-->

[default@0ee9d7b5b9c2 app]$ ansible --version ansible [core 2.14.1] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/default/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/default/.local/lib/python3.9/site-packages/ansible ansible collection location = /home/default/.ansible/collections:/usr/share/ansible/collections executable location = /home/default/.local/bin/ansible python version = 3.9.13 (main, Nov 9 2022, 13:16:24) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15)] (/usr/bin/python3.9) jinja version = 3.1.2 libyaml = True


##### COLLECTION VERSION
<!-- Paste, BELOW THIS COMMENT, verbatim output from "ansible-galaxy collection list"-->
<!-- If using virtual environments or execution environments, remember to activate them-->

[default@0ee9d7b5b9c2 app]$ ansible-galaxy collection list

/home/default/.local/lib/python3.9/site-packages/ansible_collections

Collection Version


amazon.aws 5.1.0 ansible.netcommon 4.1.0 ansible.posix 1.4.0 ansible.utils 2.8.0 ansible.windows 1.12.0 arista.eos 6.0.0 awx.awx 21.10.0 azure.azcollection 1.14.0 check_point.mgmt 4.0.0 chocolatey.chocolatey 1.3.1 cisco.aci 2.3.0 cisco.asa 4.0.0 cisco.dnac 6.6.1 cisco.intersight 1.0.22 cisco.ios 4.0.0 cisco.iosxr 4.0.3 cisco.ise 2.5.9 cisco.meraki 2.13.0 cisco.mso 2.1.0 cisco.nso 1.0.3 cisco.nxos 4.0.1 cisco.ucs 1.8.0 cloud.common 2.1.2 cloudscale_ch.cloud 2.2.3 community.aws 5.0.0 community.azure 2.0.0 community.ciscosmb 1.0.5 community.crypto 2.9.0 community.digitalocean 1.22.0 community.dns 2.4.2 community.docker 3.3.1 community.fortios 1.0.0 community.general 6.1.0 community.google 1.0.0 community.grafana 1.5.3 community.hashi_vault 4.0.0 community.hrobot 1.6.0 community.libvirt 1.2.0 community.mongodb 1.4.2 community.mysql 3.5.1 community.network 5.0.0 community.okd 2.2.0 community.postgresql 2.3.1 community.proxysql 1.4.0 community.rabbitmq 1.2.3 community.routeros 2.5.0 community.sap 1.0.0 community.sap_libs 1.4.0 community.skydive 1.0.0 community.sops 1.5.0 community.vmware 3.2.0 community.windows 1.11.1 community.zabbix 1.9.0 containers.podman 1.10.1 cyberark.conjur 1.2.0 cyberark.pas 1.0.14 dellemc.enterprise_sonic 2.0.0 dellemc.openmanage 6.3.0 dellemc.os10 1.1.1 dellemc.os6 1.0.7 dellemc.os9 1.0.4 f5networks.f5_modules 1.21.0 fortinet.fortimanager 2.1.7 fortinet.fortios 2.2.1 frr.frr 2.0.0 gluster.gluster 1.0.2 google.cloud 1.0.2 grafana.grafana 1.1.0 hetzner.hcloud 1.9.0 hpe.nimble 1.1.4 ibm.qradar 2.1.0 ibm.spectrum_virtualize 1.10.0 infinidat.infinibox 1.3.12 infoblox.nios_modules 1.4.1 inspur.ispim 1.2.0 inspur.sm 2.3.0 junipernetworks.junos 4.1.0 kubernetes.core 2.3.2 lowlydba.sqlserver 1.2.1 mellanox.onyx 1.0.0 netapp.aws 21.7.0 netapp.azure 21.10.0 netapp.cloudmanager 21.21.0 netapp.elementsw 21.7.0 netapp.ontap 22.0.1 netapp.storagegrid 21.11.1 netapp.um_info 21.8.0 netapp_eseries.santricity 1.3.1 netbox.netbox 3.9.0 ngine_io.cloudstack 2.3.0 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.1.2 openstack.cloud 1.10.0 openvswitch.openvswitch 2.1.0 ovirt.ovirt 2.4.1 purestorage.flasharray 1.15.0 purestorage.flashblade 1.10.0 purestorage.fusion 1.2.0 sensu.sensu_go 1.13.1 splunk.es 2.1.0 t_systems_mms.icinga_director 1.31.4 theforeman.foreman 3.7.0 vmware.vmware_rest 2.2.0 vultr.cloud 1.3.1 vyos.vyos 4.0.0 wti.remote 1.0.4

/home/default/.ansible/collections/ansible_collections

Collection Version


ansible.posix 1.5.1 community.general 6.2.0 middleware_automation.amq 1.2.0 middleware_automation.redhat_csp_download 1.2.2


##### STEPS TO REPRODUCE
<!-- List the steps to reproduce the problem, using a minimal test-case. -->
apply the ansible playbook with the host file provided in different versions of the amq middleware. In versio 1.1.1 everything is ok, in version 1.2.0 it is not 
<!-- Paste example playbook below -->
```yaml
guidograzioli commented 1 year ago

Confirmed, it's a side effect of the journal settings new parameters: when the shared storage path is set true, the data directory subdirectories are not relocated under the shared directory. As a termporary workaround you can explicitly set the values for:

activemq_paging_directory: "{{ activemq_shared_storage_path }}/paging"
activemq_bindings_directory: "{{ activemq_shared_storage_path }}/bindings"
activemq_journal_directory: "{{ activemq_shared_storage_path }}/journal"
activemq_large_messages_directory: "{{ activemq_shared_storage_path }}/largemessages"

, or wait for next release