¿Cuál es la sintaxis adecuada para crear enlaces simbólicos usando ansible? Estoy creando un entorno virtual Vagrant y ejecutando ansible como mi aprovisionador. Todo funciona bien hasta que intento establecer un enlace simbólico al archivo de configuración nginx de mi sitio desde sitios habilitados. Esto es lo que he probado.
- name: Create symlink to example.com
file:
path: /etc/nginx/sites-enabled/example.com
dest: /etc/nginx/sites-available/example.com
state: link
notify: nginx reload
Cuando hago esto me aparece el siguiente error.
ERROR: Error de sintaxis al cargar el script YAML, /Users/username/project/ansible/roles/nginx/tasks/main.yml
Nota: El error puede aparecer antes de esta posición: línea 24, columna 1
- nombre: enlace simbólico a ejemplo.dev.conf
archivo: ruta=/etc/nginx/sites-enabled/example.dev.conf
estado=enlace
^ Ansible no pudo completarse correctamente. Cualquier resultado de error debería ser visible arriba. Corrija estos errores y vuelva a intentarlo.
También intenté usar src=/etc/nginx/sites-enabled
en lugar de path
pero parece que no puedo encontrar un ejemplo definitivo de esto en la web.
Especificaciones:
- OS X Mavericks
- vagabundo 1.6.3
- VirtualBox 4.3
- nginx 1.6.0
- ansible 1.6.2
- Ubuntu 14.04
Respuesta1
src, ruta del archivo al que se vinculará (se aplica solo a state=link). Aceptará caminos absolutos, relativos e inexistentes. Las rutas relativas no se expanden.
Necesitas usar src
y dest
cuando lo uses state=link
, no path
. También debe invertir su origen y destino, que parecen estar al revés (suponiendo que realmente desea vincular sites-available
desde sites-enabled
): src
es la ruta para vincular, dest
es donde crear el enlace simbólico.
- name: Create symlink to example.com
file: src=/etc/nginx/sites-available/example.com dest=/etc/nginx/sites-enabled/example.com state=link
notify: nginx reload