deprecated - with_file - Ansible 1.6 incluye with_items en desuso
with_file ansible (2)
Así que parece que esta función ha quedado obsoleta, realmente no entiendo por qué, el CTO de Ansible dice que deberíamos usar en su lugar con_nested pero honestamente no tengo idea de cómo hacerlo
Aquí está mi playboook:
- hosts: all
user: root
vars:
- sites:
- site: site1.com
repo: ssh://[email protected]/orgname/reponame
nginx_ssl: true;
copy_init:
- path1/file1.txt
- path2/file2.php
- path2/file3.php
- site: site2.net
repo: ssh://[email protected]/orgname/reposite2
- site: site4.com
repo: ssh://[email protected]/orgname/reposite3
copy_init:
- path2/file2.php
tasks:
- name: Bootstrap Sites
include: bootstrap_site.yml site={{item}}
Y el mensaje de error al intentar ejecutar esto en Ansible 1.6.6:
ERROR: [DEPRECATED]: include + with_items es una función en desuso eliminada. Por favor, actualice sus libros de jugadas.
¿Cómo puedo convertir este libro de jugadas a algo que funcione con esta versión ansible?
Encontré una respuesta para eludir el mensaje desaprobado por blahblah ... como se pidió en la publicación original.
Agregué un archivo vars / filenames.yml:
filenames:
- file1
- file2
- file3
A continuación leo estos nombres al principio del libro de jugadas:
- name: read filenames
include_vars: vars/filenames.yml
Entonces, puedo usarlos más tarde:
- name: Copy files 1
copy: src=/filesrc1/{{ item }} dest=/filedest1/{{ item }} owner=me group=we
with_items: filenames
y así....
Saludos, Tom
No hay reemplazo directo, desafortunadamente. Algunas cosas que puedes hacer:
Pase la lista a su archivo incluido y repita allí. En tu libro de jugadas:
vars: sites: - site1 - site2 tasks: - include: bootstrap_site.yml sites={{sites}}
Y en bootstrap_site.yml:
- some_Task: ... with_items: sites - another_task: ... with_items: sites ...
Reescriba bootstrap_site como un module (en python, bash, lo que sea), póngalo en un directorio de
library
lado de su libro de jugadas. Entonces podrías hacer:- bootstrap_site: site={{item}} with_items: sites
Actualización: Ansible V2 está fuera y trae de vuelta el combo include + with_items.