Ansible Deploy driver by broken by Ansible 2.5 release

Bug #1758462 reported by Julia Kreger
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
Critical
Julia Kreger

Bug Description

Ansible 2.5 was released today, and our CI gate is failing on the ansible deploy driver:

Mar 23 09:57:18.496129 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor [-] Asynchronous exception: Node failed to deploy. Exception: Failed to deploy instance: Unexpected error while running command.
Mar 23 09:57:18.496358 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Command: env ANSIBLE_CONFIG=/opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg ansible-playbook /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/deploy.yaml -i /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory -e {"ironic": {"nodes": [{"ip": "10.1.0.11", "extra": {}, "user": "tc", "name": "22408977-4a62-4282-99cf-f126d32b0998"}], "image": {"mem_req": 22, "tags": [], "url": "http://158.69.84.244:8080/v1/AUTH_87281764cb7d471da1d7d76dfaa26ce6/glance/62bf4eab-16f1-42c8-a916-c781854cc5a6?temp_url_sig=5c87f9b9a10f826a2603b0667e2cbfb4ce000bcd&temp_url_expires=1521802537", "container_format": "bare", "disk_format": "qcow2", "source": "62bf4eab-16f1-42c8-a916-c781854cc5a6", "checksum": "md5:f8ab98ff5e73ebab884d80c9dc9c7290", "validate_certs": "no", "type": "whole-disk-image", "properties": {"virtual_size": null}}}} --private-key=/opt/stack/data/ironic/ansible_ssh_key -vvvv
Mar 23 09:57:18.497091 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Exit code: 250
Mar 23 09:57:18.497317 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Stdout: u'ansible-playbook 2.5.0\n config file = /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg\n configured module search path = [u\'/opt/stack/new/.ansible/plugins/modules\', u\'/usr/share/ansible/plugins/modules\']\n ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible\n executable location = /usr/local/bin/ansible-playbook\n python version = 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]\nUsing /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg as config file\nsetting up inventory plugins\nParsed /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory inventory source with ini plugin\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml\nLoading callback plugin default of type stdout, v2.0 from /usr/local/lib/python2.7/dist-packages/ansible/plugins/callback/default.pyc\nthe full traceback was:\n\nTraceback (most recent call last):\n File "/usr/local/bin/ansible-playbook", line 118, in <module>\n exit_code = cli.run()\n File "/usr/local/lib/python2.7/dist-packages/ansible/cli/playbook.py", line 122, in run\n results = pbex.run()\n File "/usr/local/lib/python2.7/dist-packages/ansible/executor/playbook_executor.py", line 89, in run
Mar 23 09:57:18.497878 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: \n self._tqm.load_callbacks()\n File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 210, in load_callbacks\n callback_obj.set_options()\nTypeError: set_options() takes exactly 2 arguments (1 given)\n'
Mar 23 09:57:18.498073 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Stderr: u'ERROR! Unexpected Exception, this is probably a bug: set_options() takes exactly 2 arguments (1 given)\n' for node 22408977-4a62-4282-99cf-f126d32b0998: InstanceDeployFailure: Failed to deploy instance: Unexpected error while running command.
Mar 23 09:57:18.498273 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Command: env ANSIBLE_CONFIG=/opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg ansible-playbook /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/deploy.yaml -i /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory -e {"ironic": {"nodes": [{"ip": "10.1.0.11", "extra": {}, "user": "tc", "name": "22408977-4a62-4282-99cf-f126d32b0998"}], "image": {"mem_req": 22, "tags": [], "url": "http://158.69.84.244:8080/v1/AUTH_87281764cb7d471da1d7d76dfaa26ce6/glance/62bf4eab-16f1-42c8-a916-c781854cc5a6?temp_url_sig=5c87f9b9a10f826a2603b0667e2cbfb4ce000bcd&temp_url_expires=1521802537", "container_format": "bare", "disk_format": "qcow2", "source": "62bf4eab-16f1-42c8-a916-c781854cc5a6", "checksum": "md5:f8ab98ff5e73ebab884d80c9dc9c7290", "validate_certs": "no", "type": "whole-disk-image", "properties": {"virtual_size": null}}}} --private-key=/opt/stack/data/ironic/ansible_ssh_key -vvvv
Mar 23 09:57:18.498602 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Exit code: 250
Mar 23 09:57:18.498813 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Stdout: u'ansible-playbook 2.5.0\n config file = /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg\n configured module search path = [u\'/opt/stack/new/.ansible/plugins/modules\', u\'/usr/share/ansible/plugins/modules\']\n ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible\n executable location = /usr/local/bin/ansible-playbook\n python version = 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]\nUsing /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg as config file\nsetting up inventory plugins\nParsed /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory inventory source with ini plugin\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml\nLoading callback plugin default of type stdout, v2.0 from /usr/local/lib/python2.7/dist-packages/ansible/plugins/callback/default.pyc\nthe full traceback was:\n\nTraceback (most recent call last):\n File "/usr/local/bin/ansible-playbook", line 118, in <module>\n exit_code = cli.run()\n File "/usr/local/lib/python2.7/dist-packages/ansible/cli/playbook.py", line 122, in run\n results = pbex.run()\n File "/usr/local/lib/python2.7/dist-packages/ansible/executor/playbook_executor.py", line 89, in run
Mar 23 09:57:18.499110 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: \n self._tqm.load_callbacks()\n File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 210, in load_callbacks\n callback_obj.set_options()\nTypeError: set_options() takes exactly 2 arguments (1 given)\n'
Mar 23 09:57:18.499285 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: Stderr: u'ERROR! Unexpected Exception, this is probably a bug: set_options() takes exactly 2 arguments (1 given)\n'
Mar 23 09:57:18.499455 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor Traceback (most recent call last):
Mar 23 09:57:18.499637 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor File "/opt/stack/new/ironic/ironic/drivers/modules/agent_base_vendor.py", line 313, in heartbeat
Mar 23 09:57:18.499769 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor self.continue_deploy(task)
Mar 23 09:57:18.499897 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor File "/usr/local/lib/python2.7/dist-packages/ironic_lib/metrics.py", line 61, in wrapped
Mar 23 09:57:18.500041 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor result = f(*args, **kwargs)
Mar 23 09:57:18.500171 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor File "/opt/stack/new/ironic/ironic/drivers/modules/ansible/deploy.py", line 584, in continue_deploy
Mar 23 09:57:18.500304 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor self._ansible_deploy(task, node_address)
Mar 23 09:57:18.500430 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor File "/opt/stack/new/ironic/ironic/drivers/modules/ansible/deploy.py", line 449, in _ansible_deploy
Mar 23 09:57:18.500563 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor _run_playbook(node, playbook, extra_vars, key)
Mar 23 09:57:18.500692 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor File "/opt/stack/new/ironic/ironic/drivers/modules/ansible/deploy.py", line 181, in _run_playbook
Mar 23 09:57:18.500818 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor raise exception.InstanceDeployFailure(reason=e)
Mar 23 09:57:18.500945 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor InstanceDeployFailure: Failed to deploy instance: Unexpected error while running command.
Mar 23 09:57:18.501096 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor Command: env ANSIBLE_CONFIG=/opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg ansible-playbook /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/deploy.yaml -i /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory -e {"ironic": {"nodes": [{"ip": "10.1.0.11", "extra": {}, "user": "tc", "name": "22408977-4a62-4282-99cf-f126d32b0998"}], "image": {"mem_req": 22, "tags": [], "url": "http://158.69.84.244:8080/v1/AUTH_87281764cb7d471da1d7d76dfaa26ce6/glance/62bf4eab-16f1-42c8-a916-c781854cc5a6?temp_url_sig=5c87f9b9a10f826a2603b0667e2cbfb4ce000bcd&temp_url_expires=1521802537", "container_format": "bare", "disk_format": "qcow2", "source": "62bf4eab-16f1-42c8-a916-c781854cc5a6", "checksum": "md5:f8ab98ff5e73ebab884d80c9dc9c7290", "validate_certs": "no", "type": "whole-disk-image", "properties": {"virtual_size": null}}}} --private-key=/opt/stack/data/ironic/ansible_ssh_key -vvvv
Mar 23 09:57:18.501760 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor Exit code: 250
Mar 23 09:57:18.501917 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor Stdout: u'ansible-playbook 2.5.0\n config file = /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg\n configured module search path = [u\'/opt/stack/new/.ansible/plugins/modules\', u\'/usr/share/ansible/plugins/modules\']\n ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible\n executable location = /usr/local/bin/ansible-playbook\n python version = 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]\nUsing /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/ansible.cfg as config file\nsetting up inventory plugins\nParsed /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/inventory inventory source with ini plugin\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml\nstatically imported: /opt/stack/new/ironic/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml\nLoading callback plugin default of type stdout, v2.0 from /usr/local/lib/python2.7/dist-packages/ansible/plugins/callback/default.pyc\nthe full traceback was:\n\nTraceback (most recent call last):\n File "/usr/local/bin/ansible-playbook", line 118, in <module>\n exit_code = cli.run()\n File "/usr/local/lib/python2.7/dist-packages/ansible/cli/playbook.py", line 122, in run\n results = pbex.run()\n File "/usr/local/lib/python2.7/dist-pack
Mar 23 09:57:18.502328 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ages/ansible/executor/playbook_executor.py", line 89, in run\n self._tqm.load_callbacks()\n File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 210, in load_callbacks\n callback_obj.set_options()\nTypeError: set_options() takes exactly 2 arguments (1 given)\n'
Mar 23 09:57:18.502464 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor Stderr: u'ERROR! Unexpected Exception, this is probably a bug: set_options() takes exactly 2 arguments (1 given)\n'
Mar 23 09:57:18.502596 ubuntu-xenial-ovh-bhs1-0003152587 ironic-conductor[32112]: ERROR ironic.drivers.modules.agent_base_vendor

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/555970

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (stable/queens)

Related fix proposed to branch: stable/queens
Review: https://review.openstack.org/555972

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/555974

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (stable/queens)

Related fix proposed to branch: stable/queens
Review: https://review.openstack.org/556025

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic (master)

Reviewed: https://review.openstack.org/555970
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=b8725e5d2bad6ce069d8cfb67afa88137632286e
Submitter: Zuul
Branch: master

commit b8725e5d2bad6ce069d8cfb67afa88137632286e
Author: Julia Kreger <email address hidden>
Date: Fri Mar 23 16:44:27 2018 -0700

    Exclude Ansible 2.5 from driver-reqs

    Ansible 2.5 appears to be incompaible with the current
    ansible driver interface. Until we've sorted it out,
    we should block >=2.5.0 from being installed.

    Related-Bug: #1758462

    Change-Id: I9c3b2528f8da28554e3eb4e03528517a6c6c326f

Dmitry Tantsur (divius)
Changed in ironic:
status: New → Triaged
importance: Undecided → Critical
tags: added: ansible
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic (stable/queens)

Reviewed: https://review.openstack.org/555972
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=ef089271479ea65fc3200cd9e2bbe69a3d004e07
Submitter: Zuul
Branch: stable/queens

commit ef089271479ea65fc3200cd9e2bbe69a3d004e07
Author: Julia Kreger <email address hidden>
Date: Fri Mar 23 16:44:27 2018 -0700

    Exclude Ansible 2.5 from driver-reqs

    Ansible 2.5 appears to be incompaible with the current
    ansible driver interface. Until we've sorted it out,
    we should block >=2.5.0 from being installed.

    Related-Bug: #1758462

    Change-Id: I9c3b2528f8da28554e3eb4e03528517a6c6c326f
    (cherry picked from commit b8725e5d2bad6ce069d8cfb67afa88137632286e)

tags: added: in-stable-queens
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic (master)

Reviewed: https://review.openstack.org/555974
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=83c4ec9393db8caec118fec97b1d522b77d07138
Submitter: Zuul
Branch: master

commit 83c4ec9393db8caec118fec97b1d522b77d07138
Author: Julia Kreger <email address hidden>
Date: Fri Mar 23 18:59:54 2018 -0700

    Fix callback plugin for Ansible 2.5 compatability

    Ansible 2.5 changed an internal callback method around that is
    expected in plugins for options. In order for this to work, we needed
    to make some minor changes.

    Change-Id: I3801f339511155a4b8ecab91bb06b286b11c0a06
    Related-Bug: #1758462

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic (stable/queens)

Reviewed: https://review.openstack.org/556025
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=22efd5de5478676fc643a534ab52360f20eb968a
Submitter: Zuul
Branch: stable/queens

commit 22efd5de5478676fc643a534ab52360f20eb968a
Author: Julia Kreger <email address hidden>
Date: Fri Mar 23 18:59:54 2018 -0700

    Fix callback plugin for Ansible 2.5 compatability

    Ansible 2.5 changed an internal callback method around that is
    expected in plugins for options. In order for this to work, we needed
    to make some minor changes.

    Change-Id: I3801f339511155a4b8ecab91bb06b286b11c0a06
    Related-Bug: #1758462
    (cherry picked from commit 3631fd4791dd13977e446ee8445dbd1225d890bc)

Changed in ironic:
assignee: nobody → Julia Kreger (juliaashleykreger)
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.