Sintaxe apropriada para o symlink ansible

23

Qual é a sintaxe apropriada para criar links simbólicos usando ansible? Estou criando um ambiente virtual Vagrant e executando ansible como meu provedor. Tudo funciona bem até eu tentar linkar o arquivo de configuração nginx do meu site a partir de sites habilitados. Aqui está o que eu tentei.

- 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

Quando faço isso, recebo o seguinte erro.

ERROR: Syntax Error while loading YAML script, /Users/username/project/ansible/roles/nginx/tasks/main.yml

Note: The error may actually appear before this position: line 24, column 1

- name: Symlink to example.dev.conf

file: path=/etc/nginx/sites-enabled/example.dev.conf

state=link

^ Ansible failed to complete successfully. Any error output should be visible above. Please fix these errors and try again.

Eu também tentei usar src=/etc/nginx/sites-enabled em vez de path , mas não consigo encontrar um exemplo definitivo disso na web.

Especificações:

  • OSX Mavericks
  • vagrant 1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ansible 1.6.2
  • ubuntu 14.04
por jeanpier_re 19.06.2014 / 05:12

1 resposta

33

Na documentação :

src, path of the file to link to (applies only to state=link). Will accept absolute, relative and nonexisting paths. Relative paths are not expanded.

Você precisa usar src e dest ao usar state=link , não path . Você também precisa inverter sua origem e destino, que parecem estar errados (supondo que você realmente queira vincular a sites-available de sites-enabled ) - src é o caminho para vincular, dest is onde criar o symlink.

- 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
    
por 19.06.2014 / 05:18