Tenho um nó Linux de destino com o padrão umask=0077
. Quando executo um playbook
- name: Create folder for app
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: app_user
mode: 0755
with_items:
- "/opt/app/folder1/bin"
- "/etc/program/folder2"
o parâmetro "mode" é aplicável somente à última pasta ( bin
e folder2
). Todos os diretórios pais têm direitos estritos, de acordo com umask.
Como posso definir a permissão necessária para os diretórios pais (não para todos /opt
ou /etc
, apenas para cadeias):
/opt
,/opt/app
,/opt/app/folder1
,/opt/app/folder1/bin
/etc
,/etc/program
,/etc/program/folder2
P: "Alterar direitos em todas as pastas pai intermediárias."
Resposta curta: O arquivo do módulo não sabe onde começar a alterar as permissões quando todos os subdiretórios existem.
Detalhes: Por exemplo, dados os caminhos, declare depth onde você quer começar a mudar os direitos. Neste caso, depth=1 é o diretório raiz e depth=2 é /tmp9
Crie um arquivo com o loop que altera incrementalmente os subdiretórios
Incluir esta tarefa em um loop
Dada a árvore abaixo, a tarefa é idempotente
Se você mudar o modo
a tarefa altera as permissões
Exemplo de um manual completo para testes
O arquivo do módulo funciona como esperado. Citando:
Por exemplo, dado o diretório vazio
a peça
cria a árvore
, mas mudando o modo
altera apenas as permissões do último subdiretório