Lineinfile Ansible e permissões do diretório pai

1

Estou usando lineinfile para atualizar um arquivo de configuração. O arquivo existe e o ansible_ssh_user é o proprietário e tem permissão de gravação, mas o diretório que o contém pertence a root . Quando minha tarefa executa o erro:

The destination directory (/parent/directory/name) is not writable by the current user.

Eu posso editar o arquivo manualmente usando vim e minha lineinfile task inclui create=no , então não entendo por que o Ansible precisa de permissão de gravação para o diretório pai. Tem algo que estou perdendo? Existe uma maneira de permitir ansible para gravar o arquivo sem conceder permissões para o diretório que está em?

PS - Eu realmente não quero usar become ou sudo com este playbook; destina-se a um playbook simples sem ter que digitar uma senha.

    
por Ben Batschelet 02.09.2015 / 17:20

1 resposta

1

Use a fonte, Luke! :)

Se você olhar para a fonte da lineinfile module, você pode ver que ele grava as alterações em um arquivo temporário e, em seguida, faz uma cópia do arquivo atômico para o nome do arquivo de destino, sobrescrevendo a versão antiga do arquivo.

O usuário que está executando ansible precisará das permissões de gravação no diretório pai.

    
por 02.09.2015 / 17:36