Upgrading from 1.9.5 to 2.0.1.0 without changing the playbook, a task fails
that used to work.
The error:
[DEPRECATION WARNING]: Skipping task due to undefined Error, in the future
this will be a fatal error.. This feature will be removed in a
future release. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
File
"/usr/local/lib/python2.7/site-packages/ansible/executor/task_executor.py",
line 89, in run
items = self._get_loop_items()
File
"/usr/local/lib/python2.7/site-packages/ansible/executor/task_executor.py",
line 189, in _get_loop_items
items = self._shared_loader_obj.lookup_loader.get(self._task.loop,
loader=self._loader, templar=templar).run(terms=loop_terms,
variables=self._job_vars)
File
"/usr/local/lib/python2.7/site-packages/ansible/plugins/lookup/subelements.py",
line 37, in run
terms[0] = listify_lookup_plugin_terms(terms[0], templar=self._templar,
loader=self._loader)
IndexError: list index out of range
fatal: [somehostname]: FAILED! => {"failed": true, "msg": "Unexpected
failure during module execution.", "stdout": ""}
to retry, use: --limit @deploy.retry
PLAY RECAP
*********************************************************************
somehostname : ok=4 changed=1 unreachable=0
failed=1
The task:
- name: copy apt key files from all roles to /tmp
become: no
copy: src="{{ item.1.path }}/{{ item.1.filename }}" dest="/tmp/{{
item.1.filename }}"
when: "'{{ item.0.role }}' in {{ role_names }} and '{{ item.1.pub }}' not
in ansible_local.installed_apt_keys.key_list"
with_subelements:
- '{{ apt_keys_by_role }}'
- '{{ keyfiles }}'
The relevant variables:
apt_keys_by_role:
- role: common
keyfiles:
- path: "{{ inventory_dir }}/roles/common/files/apt_keys"
filename: linode.gpg
pub: 325A043E
- role: dev
keyfiles:
- path: "{{ inventory_dir }}/roles/dev/files/apt_keys"
filename: nodesource.gpg.key
pub: 68576280
Ideas about what I need to do to fix this for 2.0?
Bonus points: how do you use pdb with Ansible's Python modules? I tried
sticking import pdb; pdb.set_trace() before the line that produces the
IndexError in
/usr/local/lib/python2.7/site-packages/ansible/plugins/lookup/subelements.py,
but that turns the error into a BdbQuit; the (pdb) prompt is printed but it
insta-quits and keeps on going with the task.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/6e93c2fc-65ae-4916-bd73-2dc705130316%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.