Qual é a maneira mais fácil de criar um arquivo vazio usando o Ansible? Sei que posso salvar um arquivo vazio no files
diretório e depois copiá-lo para o host remoto, mas acho isso um tanto insatisfatório.
Outra maneira é tocar em um arquivo no host remoto:
- name: create fake 'nologin' shell
file: path=/etc/nologin state=touch owner=root group=sys mode=0555
Mas então o arquivo é tocado todas as vezes, aparecendo como uma linha amarela no log, o que também é insatisfatório ...
Existe alguma solução melhor para este problema simples?
force: no
.Algo assim (usar o
stat
módulo primeiro para coletar dados sobre ele e, em seguida, filtrar usando uma condicional) deve funcionar:Você também pode aproveitar a
changed_when
funcionalidade.fonte
Outra opção, usando o módulo de comando:
O argumento 'cria' garante que esta ação não seja executada se o arquivo existir.
fonte
Com base na resposta aceita, se você deseja que as permissões do arquivo sejam verificadas em cada execução, e estas sejam alteradas de acordo se o arquivo existir, ou apenas crie o arquivo se ele não existir, você pode usar o seguinte:
fonte
file: path=/etc/nologin state=touch
Equivalente total do toque (novo no 1.4+) - use estatísticas se não quiser alterar o carimbo de data / hora do arquivo.
fonte
file: path=/etc/nologin state=touch modification_time=preserve access_time=preserve
.O módulo de arquivo fornece uma maneira de tocar no arquivo sem modificar seu tempo.
Referência: https://docs.ansible.com/ansible/latest/modules/file_module.html
fonte
Acontece que não tenho reputação suficiente para colocar isso como um comentário, o que seria um lugar mais apropriado para isso:
Ré. Resposta de AllBlackt, se você preferir o formato multilinha do Ansible, você precisa ajustar as citações
state
(eu gastei alguns minutos trabalhando nisso, então espero que isso acelere alguém),fonte
Para criar um arquivo na máquina remota com o comando ad-hoc
Por favor corrija-me se eu estiver errado
fonte
Alterado se o arquivo não existir. Crie um arquivo vazio.
fonte
Uma combinação de duas respostas, com um toque diferente. O código será detectado como alterado, quando o arquivo for criado ou a permissão atualizada.
e uma versão que também corrige o proprietário e o grupo e detecta como alterado quando corrige estes:
fonte