Sintaxis adecuada para el enlace simbólico ansible

24

¿Cuál es la sintaxis adecuada para crear enlaces simbólicos usando ansible? Estoy creando un entorno virtual Vagrant y ejecuto ansible como mi aprovisionador. Todo funciona bien hasta que trato de hacer un enlace simbólico al archivo de configuración nginx de mi sitio desde sitios habilitados. Esto es lo que he intentado.

- 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 encuentro con 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 example.dev.conf

archivo: ruta = / etc / nginx / sites-enabled / example.dev.conf

estado = enlace

^ Ansible no se pudo completar con éxito. Cualquier salida de error debe ser visible arriba. Por favor corrija estos errores e intente nuevamente.

También he intentado usar en src=/etc/nginx/sites-enabledlugar de, pathpero 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
Jean Pierre
fuente

Respuestas:

35

De la documentación :

src , ruta del archivo a vincular (se aplica solo a state = link). Aceptará rutas absolutas, relativas y no existentes. Las rutas relativas no se expanden.

Necesita usar srcy destcuando lo usa state=link, no path. También debe invertir su origen y destino, que parecen estar al revés (suponiendo que realmente desea vincular sites-availabledesde sites-enabled): srces la ruta para vincular, destes 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
Chris Down
fuente