Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot remove A records via dnsmadeeasy #38730

Closed
BlackthornYugen opened this issue Apr 13, 2018 · 9 comments
Closed

Cannot remove A records via dnsmadeeasy #38730

BlackthornYugen opened this issue Apr 13, 2018 · 9 comments
Labels
affects_2.5 This issue/PR affects Ansible v2.5 bot_closed bug This issue/PR relates to a bug. collection:community.general collection Related to Ansible Collections work has_pr This issue has an associated PR. module This issue/PR relates to a module. needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md net_tools Net-tools category support:community This issue/PR relates to code supported by the Ansible community.

Comments

@BlackthornYugen
Copy link
Contributor

ISSUE TYPE
  • Bug Report
COMPONENT NAME

dnsmadeeasy

ANSIBLE VERSION
ansible 2.5.0
  config file = None
  configured module search path = [u'/Users/jsteel/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.5.0/libexec/lib/python2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.14 (default, Mar 22 2018, 14:43:05) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]
CONFIGURATION

ANSIBLE_COW_SELECTION(env: ANSIBLE_COW_SELECTION) = random
DISPLAY_ARGS_TO_STDOUT(env: ANSIBLE_DISPLAY_ARGS_TO_STDOUT) = True

OS / ENVIRONMENT

OSX targeting CENTOS 7

SUMMARY

When removing an A record using DNS Made Easy's module, the module says nothing happened. That's correct, it will never remove a DNS A record. The documentation says you don't need to specify the record type when removing, but it will throw an exception if you omit this. When you include the type "A" record it does nothing ever.

STEPS TO REPRODUCE
- name: Remove old record
  dnsmadeeasy:
    account_key: "{{ dme_key }}"
    account_secret: "{{ dme_secret }}"
    domain: "{{ dns_domain }}"
    state: absent
    record_type: A
    record_name: "{{ dns_a_record }}"
  register: dme_data

- name: Add new record
  dnsmadeeasy:
    account_key: "{{ dme_key }}"
    account_secret: "{{ dme_secret }}"
    domain: "{{ dns_domain }}"
    state: present
    record_type: A
    record_name: "{{ dns_a_record }}"
    record_value: "{{ dns_ip_addr }}"
  register: dme_data
EXPECTED RESULTS

Previous DNS A Record would be deleted and new record would be added

ACTUAL RESULTS

The previous DNS A Record remains in addition to the new record.

ansible-playbook ${KSS_HOME}/deployment/ansible_deploy.yml \
  -i ${KSS_HOME}/deployment/ansible_hosts.yml \
  -e "le_enabled=true" \
  -e "dns_ip_addr=10.x.x.11" \
  -e "dns_domain=trst.ca" \
  -e "dns_a_record=ansible" \
  -e "dme_key=${DME_KEY}" \
  -e "dme_secret=${DME_SECRET}" \
  -vvvv

TASK [le_certificate : Remove old records record_type=A, domain={{ dns_domain }}, record_name={{ dns_a_record }}, account_secret={{ dme_secret }}, state=absent, account_key={{ dme_key }}] ************************************************************************************
task path: /Users/jsteel/git/kss/deployment/roles/le_certificate/tasks/main.yml:32
Using module file /usr/local/Cellar/ansible/2.5.0/libexec/lib/python2.7/site-packages/ansible/modules/net_tools/dnsmadeeasy.py
<redacted.server.name.com> ESTABLISH SSH CONNECTION FOR USER: None
<redacted.server.name.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 redacted.server.name.com '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<redacted.server.name.com> (0, '/home/jsteel\n', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<redacted.server.name.com> ESTABLISH SSH CONNECTION FOR USER: None
<redacted.server.name.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 redacted.server.name.com '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706 `" && echo ansible-tmp-1523623513.38-87285524575706="` echo /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706 `" ) && sleep 0'"'"''
<redacted.server.name.com> (0, 'ansible-tmp-1523623513.38-87285524575706=/home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706\n', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<redacted.server.name.com> PUT /Users/jsteel/.ansible/tmp/ansible-local-78562pc_68Q/tmpwHE4xh TO /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/dnsmadeeasy.py
<redacted.server.name.com> SSH: EXEC sftp -b - -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 '[redacted.server.name.com]'
<redacted.server.name.com> (0, 'sftp> put /Users/jsteel/.ansible/tmp/ansible-local-78562pc_68Q/tmpwHE4xh /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/dnsmadeeasy.py\n', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug2: Remote version: 3\r\ndebug2: Server supports extension "posix-rename@openssh.com" revision 1\r\ndebug2: Server supports extension "statvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "fstatvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "hardlink@openssh.com" revision 1\r\ndebug2: Server supports extension "fsync@openssh.com" revision 1\r\ndebug3: Sent message fd 8 T:16 I:1\r\ndebug3: SSH_FXP_REALPATH . -> /home/jsteel size 0\r\ndebug3: Looking up /Users/jsteel/.ansible/tmp/ansible-local-78562pc_68Q/tmpwHE4xh\r\ndebug3: Sent message fd 8 T:17 I:2\r\ndebug3: Received stat reply T:101 I:2\r\ndebug1: Couldn\'t stat remote file: No such file or directory\r\ndebug3: Sent message SSH2_FXP_OPEN I:3 P:/home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/dnsmadeeasy.py\r\ndebug3: Sent message SSH2_FXP_WRITE I:4 O:0 S:32768\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 4 32768 bytes at 0\r\ndebug3: Sent message SSH2_FXP_WRITE I:5 O:32768 S:32768\r\ndebug3: Sent message SSH2_FXP_WRITE I:6 O:65536 S:23118\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 5 32768 bytes at 32768\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 6 23118 bytes at 65536\r\ndebug3: Sent message SSH2_FXP_CLOSE I:4\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<redacted.server.name.com> ESTABLISH SSH CONNECTION FOR USER: None
<redacted.server.name.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 redacted.server.name.com '/bin/sh -c '"'"'chmod u+x /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/ /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/dnsmadeeasy.py && sleep 0'"'"''
<redacted.server.name.com> (0, '', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<redacted.server.name.com> ESTABLISH SSH CONNECTION FOR USER: None
<redacted.server.name.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 -tt redacted.server.name.com '/bin/sh -c '"'"'/usr/bin/python /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/dnsmadeeasy.py && sleep 0'"'"''
<redacted.server.name.com> (0, '\r\n{"invocation": {"module_args": {"httpFqdn": null, "domain": "trst.ca", "protocol": "HTTP", "autoFailover": false, "sensitivity": "Medium", "ip5": null, "account_key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "record_type": "A", "port": 80, "monitor": false, "httpQueryString": null, "state": "absent", "systemDescription": "", "httpFile": null, "record_name": "ansible", "record_ttl": 1800, "account_secret": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "ip2": null, "ip3": null, "ip1": null, "ip4": null, "contactList": null, "failover": false, "maxEmails": 1, "record_value": null, "validate_certs": true}}, "changed": false}\r\n', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\nShared connection to 10.240.0.11 closed.\r\n')
<redacted.server.name.com> ESTABLISH SSH CONNECTION FOR USER: None
<redacted.server.name.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/jsteel/.ansible/cp/fd3f9a2757 redacted.server.name.com '/bin/sh -c '"'"'rm -f -r /home/jsteel/.ansible/tmp/ansible-tmp-1523623513.38-87285524575706/ > /dev/null 2>&1 && sleep 0'"'"''
<redacted.server.name.com> (0, '', 'OpenSSH_7.6p1, LibreSSL 2.6.2\r\ndebug1: Reading configuration data /Users/jsteel/.ssh/config\r\ndebug1: /Users/jsteel/.ssh/config line 1: Applying options for *\r\ndebug1: /Users/jsteel/.ssh/config line 216: Applying options for redacted.server.name.com\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 48: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 78572\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
ok: [redacted.server.name.com] => 
{
    "changed": false, 
    "invocation": {
        "module_args": {
            "account_key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", 
            "account_secret": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", 
            "autoFailover": false, 
            "contactList": null, 
            "domain": "trst.ca", 
            "failover": false, 
            "httpFile": null, 
            "httpFqdn": null, 
            "httpQueryString": null, 
            "ip1": null, 
            "ip2": null, 
            "ip3": null, 
            "ip4": null, 
            "ip5": null, 
            "maxEmails": 1, 
            "monitor": false, 
            "port": 80, 
            "protocol": "HTTP", 
            "record_name": "ansible", 
            "record_ttl": 1800, 
            "record_type": "A", 
            "record_value": null, 
            "sensitivity": "Medium", 
            "state": "absent", 
            "systemDescription": "", 
            "validate_certs": true
        }
    }
}

Before execution

dig +short ansible.trst.ca @8.8.8.8                         
192.168.120.30

After execution

dig +short ansible.trst.ca @8.8.8.8                         
192.168.120.30
10.x.x.11
BlackthornYugen added a commit to BlackthornYugen/ansible that referenced this issue Apr 13, 2018
<!--- Your description here -->
If you omit the record type on state absent you will get "record_type not yet supported". Although in my experience so far, if you put the record type it still fails to remove the record but it doesn't crash. (ansible#38730)
+label: docsite_pr
@ansibot
Copy link
Contributor

ansibot commented Apr 13, 2018

Files identified in the description:

If these files are inaccurate, please update the component name section of the description or use the !component bot command.

click here for bot help

@ansibot
Copy link
Contributor

ansibot commented Apr 13, 2018

@ansibot ansibot added affects_2.5 This issue/PR affects Ansible v2.5 bug This issue/PR relates to a bug. module This issue/PR relates to a module. needs_triage Needs a first human triage before being processed. net_tools Net-tools category support:community This issue/PR relates to code supported by the Ansible community. labels Apr 13, 2018
@mkrizek mkrizek removed the needs_triage Needs a first human triage before being processed. label Apr 13, 2018
gundalow pushed a commit to gundalow/ansible that referenced this issue Apr 20, 2018
<!--- Your description here -->
If you omit the record type on state absent you will get "record_type not yet supported". Although in my experience so far, if you put the record type it still fails to remove the record but it doesn't crash. (ansible#38730)
+label: docsite_pr
oolongbrothers pushed a commit to oolongbrothers/ansible that referenced this issue May 14, 2018
<!--- Your description here -->
If you omit the record type on state absent you will get "record_type not yet supported". Although in my experience so far, if you put the record type it still fails to remove the record but it doesn't crash. (ansible#38730)
+label: docsite_pr
oolongbrothers pushed a commit to oolongbrothers/ansible that referenced this issue May 15, 2018
<!--- Your description here -->
If you omit the record type on state absent you will get "record_type not yet supported". Although in my experience so far, if you put the record type it still fails to remove the record but it doesn't crash. (ansible#38730)
+label: docsite_pr
@NickLavrov
Copy link

This bug also applies to record_type NS. I have the same setup as OP. After running my "delete NS record" task, which is below, it just returns ok: [localhost] => {"changed": false} and the NS record is not deleted.

- name: Delete NS record
  dnsmadeeasy:
    state: absent
    account_key: "{{ DNSMADEEASY_ACCOUNT_KEY }}"
    account_secret: "{{ DNSMADEEASY_ACCOUNT_SECRET }}"
    domain: "{{ CLUSTER_DOMAIN_HOST }}"
    record_name: "{{ CLUSTER_DOMAIN_NAME }}"
    record_type: NS

@NickLavrov
Copy link

I was able to delete the record successfully if I include the proper value for record_value: "ns-123.awsdns-00.net." in the task. Looking at the code here: https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/net_tools/dnsmadeeasy.py#L465

it looks like if no value is provided, that if statement will always evaluate False.

@BlackthornYugen
Copy link
Contributor Author

@NickLavrov Thanks! That sort of makes sense. They event comment just above that there can be several MX records for a single record_name. So either it should remove all records if record_value is absent, or, to be more conservative it could throw an error so that I can add the logic to discover the existing records and delete those explicitly.

@NickLavrov
Copy link

@BlackthornYugen The documentation is incorrect or misleading, unfortunately:

# delete a record / ensure it is absent
- dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    record_type: A
    state: absent
    record_name: test

seems to imply that you don't need record_value. I'm not sure then if this is just a documentation bug or what. I am a fan of your suggested solution of throwing an error.

fwiw, I ended up adding some logic that uses route53_facts to get the list of records and I use that to get my record_value.

@BlackthornYugen
Copy link
Contributor Author

@NickLavrov thanks! I did the same thing now. Updated my code to query records and remove them explicitly.

@ansibot ansibot added support:core This issue/PR relates to code supported by the Ansible Engineering Team. and removed support:community This issue/PR relates to code supported by the Ansible community. labels Sep 19, 2018
@alitvak69
Copy link

I don't think it is a proper logic. I believe the old behavior was the correct one. It now creates a round robin if I simply say present with the same name. That forces me to delete before add to update and then I have to also now make sure I am querying some values and making sure I compare them to new ones. Why not the author just have a flag allowing to remove all records based just on name and another flag to update based on the record name (update if the same name, or add new if no record name exist).

@ansibot ansibot added needs_maintainer Ansibot is unable to identify maintainers for this PR. (Check `author` in docs or BOTMETA.yml) support:community This issue/PR relates to code supported by the Ansible community. and removed support:core This issue/PR relates to code supported by the Ansible Engineering Team. labels Oct 6, 2018
ilicmilan pushed a commit to ilicmilan/ansible that referenced this issue Nov 7, 2018
<!--- Your description here -->
If you omit the record type on state absent you will get "record_type not yet supported". Although in my experience so far, if you put the record type it still fails to remove the record but it doesn't crash. (ansible#38730)
+label: docsite_pr
@ansibot ansibot removed the needs_maintainer Ansibot is unable to identify maintainers for this PR. (Check `author` in docs or BOTMETA.yml) label Nov 10, 2018
@ansibot ansibot added the has_pr This issue has an associated PR. label Jul 27, 2019
@ansibot ansibot added collection Related to Ansible Collections work collection:community.general needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md labels Apr 29, 2020
@ansibot
Copy link
Contributor

ansibot commented Aug 16, 2020

Thank you very much for your interest in Ansible. Ansible has migrated much of the content into separate repositories to allow for more rapid, independent development. We are closing this issue/PR because this content has been moved to one or more collection repositories.

For further information, please see:
https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md

@ansibot ansibot closed this as completed Aug 16, 2020
@ansible ansible locked and limited conversation to collaborators Sep 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affects_2.5 This issue/PR affects Ansible v2.5 bot_closed bug This issue/PR relates to a bug. collection:community.general collection Related to Ansible Collections work has_pr This issue has an associated PR. module This issue/PR relates to a module. needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md net_tools Net-tools category support:community This issue/PR relates to code supported by the Ansible community.
Projects
None yet
Development

No branches or pull requests

5 participants