playbook modules example documentación linux ansible ansible-playbook

linux - modules - ansible playbook example



Ansible: ¿Es posible buscar reemplazar una sola palabra? (3)

Nuevo módulo de replace disponible desde la versión 1.6 :

- replace: dest=abc.conf regexp=''horse'' replace=''dog'' backup=yes

En el módulo lineinfile , reemplaza la línea completa.

Si la línea es larga tengo que repetir la línea completa otra vez.

Supongamos que quiero reemplazar la única palabra en el archivo:

#abc.conf This is my horse

este es el libro de jugadas:

- lineinfile: dest=abc.conf state=present regexp=''horse'' line=''This is my dog'' backup=yes

¿Hay alguna manera de lograr algo como sed ''s/horse/dog/g'' ?


Puede usar las backreferences para recuperar otras partes (que no deben cambiarse) de la línea:

- lineinfile: dest=abc.conf state=present regexp=''^(.*)horse(.*)$'' line=''/1dog/2'' backup=yes backrefs=yes


Si necesita realizar más operaciones de reemplazo en un bloque y tiene el archivo localmente, es posible que desee considerar el uso de la plantilla, que sustituye las variables en el archivo de plantilla y copia el archivo en el control remoto:

- template: src=/mytemplates/foo.j2 dest=/etc/file.conf

En el archivo local puede escribir una variable con sintaxis ansible como

{{variable}}

y se sustituirá si está en el alcance del script. Here los documentos.