Em ansible, eu posso fazer isso:
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
E define recursivamente o proprietário, o grupo e as permissões para 0775 em todos os diretórios e arquivos nesse caminho. Mas eu quero definir diretórios para 0775 e arquivos para 0664. Existe alguma maneira de tornar isso possível?
file-permissions
ansible
Edward Ned Harvey
fonte
fonte
Respostas:
irá definir diretórios para 755 e arquivos para 644.
fonte
X
éx
para diretórios e nada para arquivos. E é assim quechmod
, nãoansible
trata a string de modo. Eu gostariaS
que fosse tratado da mesma forma.Fonte: https://stackoverflow.com/a/28782805/1306186
fonte
recurse
opção, mas não a outra.Se você deseja usar o arquivo de módulo em ansible, você pode:
Com esse método, você primeiro define todo o arquivo (recurs = yes) como '644' e depois define / foo / bar / somedir como '775'.
Isso não é perfeito, pois altera a permissão do diretório toda vez que você toca seu playbook. Mas pelo menos é idempotente, não como o comando do módulo.
Se você não deseja ter o status 'alterado', pode usar o stat do módulo. Ele listará todos os arquivos e diretórios em / foo / bar / somedir para que você registre a resposta e faça um loop apenas nesses arquivos.
fonte
Não tenho certeza de quanto sentido definir diretórios para 0775 (
rwxrwxr-x
) e arquivos para 0644 (rw-r--r--
): diretórios graváveis em grupo, mas não arquivos?Se você pretendia definir arquivos como 0664 (
rw-rw-r--
) para garantir que os arquivos não sejam executáveis enquanto os diretórios podem ser percorridos, existe uma solução elegante envolvendo apenas umchmod
comando:Aqui está como ele pode ser usado no Ansible :
chmod -c
imprime todas as alterações que podemos usar convenientemente para preencher o status "alterado" no Ansible . Espero que faça sentido.fonte
Para alterar apenas mods quando necessário:
fonte