Sintaxe adequada para o link simbólico ansible

24

Qual é a sintaxe adequada para criar links simbólicos usando o ansible? Estou criando um ambiente virtual Vagrant e executando ansible como meu provedor. Tudo funciona bem até que eu tente ligar o arquivo de configuração nginx do 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.

ERRO: Erro de sintaxe ao carregar o script YAML, /Users/username/project/ansible/roles/nginx/tasks/main.yml

Nota: O erro pode realmente aparecer antes desta posição: linha 24, coluna 1

- nome: link simbólico para example.dev.conf

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

state = link

^ Ansible falhou ao concluir com sucesso. Qualquer saída de erro deve estar visível acima. Corrija esses erros e tente novamente.

Também tentei usar em src=/etc/nginx/sites-enabledvez de, pathmas 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
Jean Pierre
fonte

Respostas:

35

A partir da documentação :

src , caminho do arquivo ao qual vincular (aplica-se apenas ao estado = link). Aceitará caminhos absolutos, relativos e inexistentes. Caminhos relativos não são expandidos.

Você precisa usar srce destquando usar state=link, não path. Você também precisa inverter sua fonte e destino, que parecem estar errados (supondo que você realmente deseja vincular a sites-availablepartir de sites-enabled) - srcé o caminho para o qual vincular, desté onde criar o link 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
fonte