Como você cria um diretório www
no /srv
em um sistema baseado em Debian usando uma cartilha Ansible?
directory
filesystems
ansible
Gaurav Agarwal
fonte
fonte
state=directory
todos os subdiretórios imediatos serão criados se eles não existirem, desde 1.7 eles serão criados com as permissões fornecidas.all immediate subdirectories
é confuso, você poderia definir isso e dar um exemplo?Você pode até estender o módulo de arquivo e até definir o proprietário, grupo e permissão por meio dele. (Ref: documentação do arquivo Ansible )
Mesmo, você pode criar os diretórios recursivamente:
Dessa forma, ele criará os dois diretórios, se eles não existirem.
fonte
recursive
argumento é parecido com o usomkdir -p
(para aqueles que estão pesquisando o ansible mkdir -p ).recurse
parâmetro não gostamkdir -p
. Ele define recursivamente os atributos de arquivo especificados (aplica-se apenas ao estado = diretório). Sestate=directory
todos os subdiretórios imediatos serão criados, se não existirem, pois 1.7 serão criados com as permissões fornecidas.=
caracteres, seria ótimo para atualizá-lo com a:
sintaxe com cada atribute em uma nova linhachmod -R
. Ou seja, sepath
já existe como um dir e há arquivos dentro dele, arecurse
opção (às vezes infelizmente) também aplica essas mesmas permissões aos arquivos. Isso ocorre por design , para melhor ou para pior.você pode criar usando:
Versão mais recente 2 <
Versão mais antiga
Consulte - http://docs.ansible.com/ansible/file_module.html
fonte
O diretório pode ser criado usando apenas o módulo de arquivo, pois o diretório nada mais é do que um arquivo.
fonte
É assim que você também pode definir as permissões, o proprietário e o grupo. Os três últimos parâmetros não são obrigatórios.
fonte
Você pode criar um diretório. usando
Você também pode consultar http://docs.ansible.com/ansible/file_module.html para obter mais detalhes sobre o diretório e sistema de arquivos.
fonte
Além de todas as respostas aqui, existem muitas situações em que você precisa criar mais de um diretório, portanto, é uma boa ideia usar loops em vez de criar tarefas separadas para cada diretório.
fonte
Só precisa colocar condição para executar tarefas para distribuição específica
fonte
Você pode usar a declaração
fonte
Se você deseja criar um diretório no Windows:
fonte
Temos módulos disponíveis para criar diretório, arquivo em ansible
Exemplo
fonte
Você pode executar diretamente o comando e criar diretamente usando ansible
OU
fonte
O manual acima criará o diretório www no caminho / src.
Antes de executar o manual acima. Verifique se a conexão do host ansible deve estar configurada,
"localhost ansible_connection = local"
deve estar presente em / etc / ansible / hosts
para mais informações, por favor me avise.
fonte
criar diretório
fonte
Use o módulo de arquivo para criar um diretório e obter os detalhes sobre o módulo de arquivo usando o comando "arquivo ansible-doc"
Aqui está uma opção "estado" que explica:
fonte
você pode usar o módulo "arquivo" nesse caso, há tantos argumentos que você pode passar para um diretório recém-criado, como proprietário, grupo, local, modo e assim por diante .....
consulte este documento para obter explicações detalhadas sobre o módulo de arquivo ...
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
lembre-se de que este módulo não serve apenas para criar o diretório !!!
fonte
A maneira mais fácil de criar um diretório no Ansible.
OU
Você deseja conceder privilégios de sudo a esse diretório.
fonte
Eu vejo muitos exemplos de Playbooks e gostaria de mencionar o exemplo de comandos Adhoc.
$ ansible -i inventário -m arquivo -a "caminho = / tmp / direcory state = diretório (em vez do diretório, podemos mencionar o toque para criar arquivos)
fonte
Você precisa usar o módulo de arquivo para este caso. Abaixo do manual, você pode usar para sua referência.
fonte
Para verificar se o diretório existe e depois executar alguma tarefa (por exemplo, criar diretório), use o seguinte
fonte
Você quer o
file
módulo. Para criar um diretório, você precisa especificar a opçãostate: directory
:fonte
aqui é o caminho mais fácil.
- name: create dir command: mkdir -p dir dir/a dir/b
fonte