ansible-collections / community.rabbitmq

Manage RabbitMQ with Ansible
http://galaxy.ansible.com/community/rabbitmq
Other
30 stars 44 forks source link

community.rabbitmq.rabbitmq_plugin - No option to specify "node" #59

Open tlb1galaxy opened 3 years ago

tlb1galaxy commented 3 years ago
SUMMARY

Community.rabbitmq.rabbitmq_plugin module does not have the ability to specify the RabbitMQ node name. If/when the node name is not the default "rabbit", this module will report false success.

ISSUE TYPE
COMPONENT NAME

community.rabbitmq.rabbitmq_plugin

ANSIBLE VERSION
ansible 2.9.17
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/var/lib/awx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Aug 24 2020, 17:57:11) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
CONFIGURATION
ACTION_WARNINGS(default) = True
AGNOSTIC_BECOME_PROMPT(default) = True
ALLOW_WORLD_READABLE_TMPFILES(default) = False
ANSIBLE_CONNECTION_PATH(default) = None
ANSIBLE_COW_PATH(default) = None
ANSIBLE_COW_SELECTION(default) = default
ANSIBLE_COW_WHITELIST(default) = ['bud-frogs', 'bunny', 'cheese', 'daemon', 'default', 'dragon', 'elephant-in->
ANSIBLE_FORCE_COLOR(default) = False
ANSIBLE_NOCOLOR(default) = False
ANSIBLE_NOCOWS(default) = False
ANSIBLE_PIPELINING(default) = False
ANSIBLE_SSH_ARGS(default) = -C -o ControlMaster=auto -o ControlPersist=60s
ANSIBLE_SSH_CONTROL_PATH(default) = None
ANSIBLE_SSH_CONTROL_PATH_DIR(default) = ~/.ansible/cp
ANSIBLE_SSH_EXECUTABLE(default) = ssh
ANSIBLE_SSH_RETRIES(default) = 0
ANY_ERRORS_FATAL(default) = False
BECOME_ALLOW_SAME_USER(default) = False
BECOME_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/become', '/usr/share/ansible/plugins/become']
CACHE_PLUGIN(default) = memory
CACHE_PLUGIN_CONNECTION(default) = None
CACHE_PLUGIN_PREFIX(default) = ansible_facts
CACHE_PLUGIN_TIMEOUT(default) = 86400
COLLECTIONS_PATHS(default) = ['/var/lib/awx/.ansible/collections', '/usr/share/ansible/collections']
COLOR_CHANGED(default) = yellow
COLOR_CONSOLE_PROMPT(default) = white
COLOR_DEBUG(default) = dark gray
COLOR_DEPRECATE(default) = purple
COLOR_DIFF_ADD(default) = green
COLOR_DIFF_LINES(default) = cyan
COLOR_DIFF_REMOVE(default) = red
COLOR_ERROR(default) = red
COLOR_HIGHLIGHT(default) = white
COLOR_OK(default) = green
COLOR_SKIP(default) = cyan
COLOR_UNREACHABLE(default) = bright red
COLOR_VERBOSE(default) = blue
COLOR_WARN(default) = bright purple
COMMAND_WARNINGS(default) = True
CONDITIONAL_BARE_VARS(default) = True
CONNECTION_FACTS_MODULES(default) = {'asa': 'asa_facts', 'cisco.asa.asa': 'cisco.asa.asa_facts', 'eos': 'eos_f>
COVERAGE_REMOTE_OUTPUT(default) = None
COVERAGE_REMOTE_WHITELIST(default) = *
DEFAULT_ACTION_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/action', '/usr/share/ansible/plugins/act>
DEFAULT_ALLOW_UNSAFE_LOOKUPS(default) = False
DEFAULT_ASK_PASS(default) = False
DEFAULT_ASK_VAULT_PASS(default) = False
DEFAULT_BECOME(default) = False
DEFAULT_BECOME_ASK_PASS(default) = False
DEFAULT_BECOME_EXE(default) = None
DEFAULT_BECOME_FLAGS(default) =
DEFAULT_BECOME_METHOD(default) = sudo
DEFAULT_BECOME_USER(default) = root
DEFAULT_CACHE_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/cache', '/usr/share/ansible/plugins/cache>
DEFAULT_CALLABLE_WHITELIST(default) = []
DEFAULT_CALLBACK_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/callback', '/usr/share/ansible/plugins>
DEFAULT_CALLBACK_WHITELIST(default) = []
DEFAULT_CLICONF_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/cliconf', '/usr/share/ansible/plugins/c>
DEFAULT_CONNECTION_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/connection', '/usr/share/ansible/plu>
DEFAULT_DEBUG(default) = False
DEFAULT_EXECUTABLE(default) = /bin/sh
DEFAULT_FACT_PATH(default) = None
DEFAULT_FILTER_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/filter', '/usr/share/ansible/plugins/fil>
DEFAULT_FORCE_HANDLERS(default) = False
DEFAULT_FORKS(default) = 5
DEFAULT_GATHERING(default) = implicit
DEFAULT_GATHER_SUBSET(default) = ['all']
DEFAULT_GATHER_TIMEOUT(default) = 10
DEFAULT_HANDLER_INCLUDES_STATIC(default) = False
DEFAULT_HASH_BEHAVIOUR(default) = replace
DEFAULT_HOST_LIST(default) = ['/etc/ansible/hosts']
DEFAULT_HTTPAPI_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/httpapi', '/usr/share/ansible/plugins/h>
DEFAULT_INTERNAL_POLL_INTERVAL(default) = 0.001
DEFAULT_INVENTORY_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/inventory', '/usr/share/ansible/plugi>
DEFAULT_JINJA2_EXTENSIONS(default) = []
DEFAULT_JINJA2_NATIVE(default) = False
DEFAULT_KEEP_REMOTE_FILES(default) = False
DEFAULT_LIBVIRT_LXC_NOSECLABEL(default) = False
DEFAULT_LOAD_CALLBACK_PLUGINS(default) = False
DEFAULT_LOCAL_TMP(default) = /var/lib/awx/.ansible/tmp/ansible-local-84395ose6fvva
DEFAULT_LOG_FILTER(default) = []
DEFAULT_LOG_PATH(default) = None
DEFAULT_LOOKUP_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/lookup', '/usr/share/ansible/plugins/loo>
DEFAULT_MANAGED_STR(default) = Ansible managed
DEFAULT_MODULE_ARGS(default) =
DEFAULT_MODULE_COMPRESSION(default) = ZIP_DEFLATED
DEFAULT_MODULE_NAME(default) = command
DEFAULT_MODULE_PATH(default) = ['/var/lib/awx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
DEFAULT_MODULE_UTILS_PATH(default) = ['/var/lib/awx/.ansible/plugins/module_utils', '/usr/share/ansible/plugin>
DEFAULT_NETCONF_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/netconf', '/usr/share/ansible/plugins/n>
DEFAULT_NO_LOG(default) = False
DEFAULT_NO_TARGET_SYSLOG(default) = False
DEFAULT_NULL_REPRESENTATION(default) = None
DEFAULT_POLL_INTERVAL(default) = 15
DEFAULT_PRIVATE_KEY_FILE(default) = None
DEFAULT_PRIVATE_ROLE_VARS(default) = False
DEFAULT_REMOTE_PORT(default) = None
DEFAULT_REMOTE_USER(default) = None
DEFAULT_ROLES_PATH(default) = ['/var/lib/awx/.ansible/roles', '/usr/share/ansible/roles', '/etc/ansible/roles']
DEFAULT_SCP_IF_SSH(default) = smart
DEFAULT_SELINUX_SPECIAL_FS(default) = ['fuse', 'nfs', 'vboxsf', 'ramfs', '9p', 'vfat']
DEFAULT_SFTP_BATCH_MODE(default) = True
DEFAULT_SQUASH_ACTIONS(default) = ['apk', 'apt', 'dnf', 'homebrew', 'openbsd_pkg', 'pacman', 'pip', 'pkgng', '>
DEFAULT_SSH_TRANSFER_METHOD(default) = None
DEFAULT_STDOUT_CALLBACK(default) = default
DEFAULT_STRATEGY(default) = linear
DEFAULT_STRATEGY_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/strategy', '/usr/share/ansible/plugins>
DEFAULT_SU(default) = False
DEFAULT_SYSLOG_FACILITY(default) = LOG_USER
DEFAULT_TASK_INCLUDES_STATIC(default) = False
DEFAULT_TERMINAL_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/terminal', '/usr/share/ansible/plugins>
DEFAULT_TEST_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/test', '/usr/share/ansible/plugins/test']
DEFAULT_TIMEOUT(default) = 10
DEFAULT_TRANSPORT(default) = smart
DEFAULT_UNDEFINED_VAR_BEHAVIOR(default) = True
DEFAULT_VARS_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/vars', '/usr/share/ansible/plugins/vars']
DEFAULT_VAULT_ENCRYPT_IDENTITY(default) = None
DEFAULT_VAULT_IDENTITY(default) = default
DEFAULT_VAULT_IDENTITY_LIST(default) = []
DEFAULT_VAULT_ID_MATCH(default) = False
DEFAULT_VAULT_PASSWORD_FILE(default) = None
DEFAULT_VERBOSITY(default) = 0
DEPRECATION_WARNINGS(default) = True
DIFF_ALWAYS(default) = False
DIFF_CONTEXT(default) = 3
DISPLAY_ARGS_TO_STDOUT(default) = False
DISPLAY_SKIPPED_HOSTS(default) = True
DOCSITE_ROOT_URL(default) = https://docs.ansible.com/ansible/
DOC_FRAGMENT_PLUGIN_PATH(default) = ['/var/lib/awx/.ansible/plugins/doc_fragments', '/usr/share/ansible/plugin>
DUPLICATE_YAML_DICT_KEY(default) = warn
ENABLE_TASK_DEBUGGER(default) = False
ERROR_ON_MISSING_HANDLER(default) = True
FACTS_MODULES(default) = ['smart']
GALAXY_IGNORE_CERTS(default) = False
GALAXY_ROLE_SKELETON(default) = None
GALAXY_ROLE_SKELETON_IGNORE(default) = ['^.git$', '^.*/.git_keep$']
GALAXY_SERVER(default) = https://galaxy.ansible.com
GALAXY_SERVER_LIST(default) = None
GALAXY_TOKEN_PATH(default) = /var/lib/awx/.ansible/galaxy_token
HOST_KEY_CHECKING(default) = True
HOST_PATTERN_MISMATCH(default) = warning
INJECT_FACTS_AS_VARS(default) = True
INTERPRETER_PYTHON(default) = auto_legacy
INTERPRETER_PYTHON_DISTRO_MAP(default) = {'centos': {'6': '/usr/bin/python', '8': '/usr/libexec/platform-pytho>
INTERPRETER_PYTHON_FALLBACK(default) = ['/usr/bin/python', 'python3.7', 'python3.6', 'python3.5', 'python2.7',>
INVALID_TASK_ATTRIBUTE_FAILED(default) = True
INVENTORY_ANY_UNPARSED_IS_FAILED(default) = False
INVENTORY_CACHE_ENABLED(default) = False
INVENTORY_CACHE_PLUGIN(default) = None
INVENTORY_CACHE_PLUGIN_CONNECTION(default) = None
INVENTORY_CACHE_PLUGIN_PREFIX(default) = ansible_facts
INVENTORY_CACHE_TIMEOUT(default) = 3600
INVENTORY_ENABLED(default) = ['host_list', 'script', 'auto', 'yaml', 'ini', 'toml']
INVENTORY_EXPORT(default) = False
INVENTORY_IGNORE_EXTS(default) = {{(BLACKLIST_EXTS + ( '.orig', '.ini', '.cfg', '.retry'))}}
INVENTORY_IGNORE_PATTERNS(default) = []
INVENTORY_UNPARSED_IS_FAILED(default) = False
LOCALHOST_WARNING(default) = True
MAX_FILE_SIZE_FOR_DIFF(default) = 104448
NETCONF_SSH_CONFIG(default) = None
NETWORK_GROUP_MODULES(default) = ['eos', 'nxos', 'ios', 'iosxr', 'junos', 'enos', 'ce', 'vyos', 'sros', 'dello>
OLD_PLUGIN_CACHE_CLEARING(default) = False
PARAMIKO_HOST_KEY_AUTO_ADD(default) = False
PARAMIKO_LOOK_FOR_KEYS(default) = True
PERSISTENT_COMMAND_TIMEOUT(default) = 30
PERSISTENT_CONNECT_RETRY_TIMEOUT(default) = 15
PERSISTENT_CONNECT_TIMEOUT(default) = 30
PERSISTENT_CONTROL_PATH_DIR(default) = /var/lib/awx/.ansible/pc
PLAYBOOK_DIR(default) = None
PLAYBOOK_VARS_ROOT(default) = top
PLUGIN_FILTERS_CFG(default) = None
PYTHON_MODULE_RLIMIT_NOFILE(default) = 0
RETRY_FILES_ENABLED(default) = False
RETRY_FILES_SAVE_PATH(default) = None
SHOW_CUSTOM_STATS(default) = False
STRING_CONVERSION_ACTION(default) = warn
STRING_TYPE_FILTERS(default) = ['string', 'to_json', 'to_nice_json', 'to_yaml', 'ppretty', 'json']
SYSTEM_WARNINGS(default) = True
TAGS_RUN(default) = []
TAGS_SKIP(default) = []
TASK_DEBUGGER_IGNORE_ERRORS(default) = True
TRANSFORM_INVALID_GROUP_CHARS(default) = never
USE_PERSISTENT_CONNECTIONS(default) = False
VARIABLE_PRECEDENCE(default) = ['all_inventory', 'groups_inventory', 'all_plugins_inventory', 'all_plugins_pla>
VERBOSE_TO_STDERR(default) = False
YAML_FILENAME_EXTENSIONS(default) = ['.yml', '.yaml', '.json']
OS / ENVIRONMENT

OS = CentOS 8 AWX = 17.0.1 Docker = 20.10.2 build 2291f61 Erlang = 23[erts-11.1.5] RabbitMQ = 3.7.9 ansible_python_interpreter = auto (set globally) AnsibleControler: python = 3.6.8 (alternatives: python->auto->/usr/libexec/no-python, python3->auto->/usr/bin/python3.6) Targetserver: CentOS 7 (fresh install with latest updates) python = 2.7.5 & 3.6.8

STEPS TO REPRODUCE
  1. Within RabbitMQ server/target, create /etc/rabbitmq/rabbitmq-env.conf file
  2. In rabbitmq-env.conf => set variable USE_LONGNAMES=true (essentially this changes the RabbitMQ default node name from "rabbit" to "rabbit@%localhost-FQDN%"
- name: rabbitmq_plugin_enable
  community.rabbitmq.rabbitmq_plugin:
    names: "{{ item }}"
    state: enabled
    new_only: yes
  with_items: "{{ var_rabbitmq_plugin_enable }}"

var_rabbitmq_plugin_enable:
  - rabbitmq_management
  - rabbitmq_management_agent
EXPECTED RESULTS

Should see RabbitMQ plugins management & management_agent enabled.

ACTUAL RESULTS

No plugins are enabled.

testserver02 rabbitmq]# rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@testserver02.tlb1.thinkon.net
 |/
[  ] rabbitmq_amqp1_0                  3.7.9
[  ] rabbitmq_auth_backend_cache       3.7.9
[  ] rabbitmq_auth_backend_http        3.7.9
[  ] rabbitmq_auth_backend_ldap        3.7.9
[  ] rabbitmq_auth_mechanism_ssl       3.7.9
[  ] rabbitmq_consistent_hash_exchange 3.7.9
[  ] rabbitmq_event_exchange           3.7.9
[  ] rabbitmq_federation               3.7.9
[  ] rabbitmq_federation_management    3.7.9
[  ] rabbitmq_jms_topic_exchange       3.7.9
[  ] rabbitmq_management               3.7.9
[  ] rabbitmq_management_agent         3.7.9
[  ] rabbitmq_mqtt                     3.7.9
[  ] rabbitmq_peer_discovery_aws       3.7.9
[  ] rabbitmq_peer_discovery_common    3.7.9
[  ] rabbitmq_peer_discovery_consul    3.7.9
[  ] rabbitmq_peer_discovery_etcd      3.7.9
[  ] rabbitmq_peer_discovery_k8s       3.7.9
[  ] rabbitmq_random_exchange          3.7.9
[  ] rabbitmq_recent_history_exchange  3.7.9
[  ] rabbitmq_sharding                 3.7.9
[  ] rabbitmq_shovel                   3.7.9
[  ] rabbitmq_shovel_management        3.7.9
[  ] rabbitmq_stomp                    3.7.9
[  ] rabbitmq_top                      3.7.9
[  ] rabbitmq_tracing                  3.7.9
[  ] rabbitmq_trust_store              3.7.9
[  ] rabbitmq_web_dispatch             3.7.9
[  ] rabbitmq_web_mqtt                 3.7.9
[  ] rabbitmq_web_mqtt_examples        3.7.9
[  ] rabbitmq_web_stomp                3.7.9
[  ] rabbitmq_web_stomp_examples       3.7.9
See playbook and attached file below

RabbitMQ_cluster_Enable_Plugins_False_Success.txt

This is a similar issue related to issue# https://github.com/ansible-collections/community.rabbitmq/issues/53

Im0 commented 2 years ago

@tlb1galaxy out of interest, what does rabbitmq-plugins list -E -m return for you on the rabbitmq node?

tlb1galaxy commented 2 years ago

Hello, Output on this nod/cluster:

]# rabbitmq-plugins list -E -m
Listing plugins with pattern ".*" ...
rabbitmq_management

Thanks

From: John Imison @.> Sent: September 24, 2021 7:36 AM To: ansible-collections/community.rabbitmq @.> Cc: tlb1_galaxy @.>; Mention @.> Subject: Re: [ansible-collections/community.rabbitmq] community.rabbitmq.rabbitmq_plugin - No option to specify "node" (#59)

CAUTION - EXTERNAL EMAIL This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe


@tlb1galaxyhttps://github.com/tlb1galaxy out of interest, what does rabbitmq-plugins list -E -m return for you on the rabbitmq node?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/ansible-collections/community.rabbitmq/issues/59#issuecomment-926556665, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASODCRRM2C5UGIQPDHCDV6TUDRPDPANCNFSM4W2K4EPA. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.