Ansible

Como criar um diretório no Ansible

Como criar um diretório no Ansible

Ansible é uma das melhores ferramentas de automação disponíveis, oferecendo ferramentas simples, intuitivas e poderosas para realizar tarefas de automação no mundo moderno.

Para a maioria das tarefas de automação, você precisará criar diretórios, especialmente ao instalar várias ferramentas e aplicativos, backups e restaurações. Embora você possa executar essas tarefas usando um script automatizado, o Ansible oferece uma funcionalidade melhor, permitindo que você crie diretórios em hosts específicos.

Este tutorial mostra como usar o módulo de arquivo Ansible para criar, remover e modificar permissões de diretório para hosts especificados.

Como criar um diretório no Ansible

Qualquer um dos métodos a seguir pode ser usado para criar um diretório no Ansible:

Para criar um diretório no Ansible usando o módulo de comando, digite o comando mostrado abaixo:

$ ansible all -m command -a "mkdir ~ / backups"

Depois de inserir o comando acima, você deve obter a saída mostrada abaixo:

Digite a senha para a chave '/ home / user /.ssh / id_rsa ':
[AVISO]: Considere usar o módulo de arquivo com state = directory em vez de executar 'mkdir'.  Se você precisa usar o comando porque o arquivo é insuficiente, você pode adicionar 'warn: false' a esta tarefa de comando ou definir 'command_warnings = False' no ansible.cfg para se livrar desta mensagem.
35.222.210.12 ALTERADO | rc = 0 >>

Verifique se o seu inventário de hosts Ansible em / etc / ansible / hosts contém as informações corretas sobre seus hosts remotos.

Embora o módulo de comando seja simples de usar em um único host Ansible, ele se torna muito ineficiente ao lidar com vários hosts com diferentes diretórios e tarefas.

Para evitar esta desvantagem, usaremos o módulo de arquivo Ansible e construiremos um manual contendo os hosts que desejamos usar e os diretórios que desejamos criar.

NOTA: O módulo de arquivo também pode ser usado como um único comando no Ansible, mas funciona de forma muito semelhante ao módulo de comando.

Para usar um manual do Ansible, crie um arquivo YAML e insira as seguintes entradas para criar um diretório:

- hosts: todas as tarefas:
- nome: diretório de criação de módulo de arquivo compatível
Arquivo:
caminho: ~ / backups
estado: diretório

Salve o arquivo e use o ansible-playbook para criar os diretórios:

ansible-playbook mkdir.yml

Isso deve produzir uma saída como a abaixo, indicando que as ações foram realizadas com sucesso usando o arquivo de manual especificado.

PLAY [all] ********************************************** *************************************************** *************
TAREFA [Coleta de fatos] ********************************************** *************************************************** **
Digite a senha para a chave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREFA [diretório de criação de módulo de arquivo Ansible] ****************************************** **********************************
ok: [35.222.210.12]
PLAY RECAP ************************************************ *************************************************** ***********
35.222.210.12: ok = 2 alterado = 0 inacessível = 0 falhou = 0 ignorado = 0 resgatado = 0 ignorado = 0

Como criar vários diretórios com itens

Os manuais do Ansible também permitem que você crie vários diretórios usando a instrução with_items no arquivo YAML.

Por exemplo, para criar backups para os três serviços, MySQL, repositório e configuração, você pode construir a tarefa mostrada no arquivo YAML abaixo:

- hosts: todas as tarefas:
- nome: Ansible criar vários diretórios with_items
Arquivo:
caminho: ~ / backups / item
estado: diretório
with_items:
- 'mysql'
- 'repositório'
- 'config'

Salve o arquivo acima e execute-o com ansible-playbook.

$ ansible-playbook mkdir_multi.yml PLAY [all] ********************************************* *************************************************** ************************************************** *************************************************** ***
TAREFA [Coleta de fatos] ********************************************** *************************************************** ************************************************** *******************************************
Digite a senha para a chave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREFA [Ansible criar vários diretórios with_items] ****************************************** *************************************************** *************************************************** *************
mudou: [35.222.210.12] => (item = mysql)
mudou: [35.222.210.12] => (item = repositório)
mudou: [35.222.210.12] => (item = config)
REPRODUZIR ************************************************ *************************************************** *************************************************** ***************************************************
35.222.210.12: ok = 2 alterado = 1 inacessível = 0 falhou = 0 ignorado = 0 resgatado = 0 ignorado = 0

O manual acima deve criar vários diretórios, como ~ / backups / mysql, ~ / backups / repository e ~ / backups / config.

$ ls -la

A saída da lista de diretórios é mostrada abaixo:

total 0
drwxrwxr-x. 5 debian debian 51 6 de março, 17:26 .
drwx------. 6 debian debian 117 6 de março 17: 26 ..
drwxrwxr-x. 2 debian debian 6 mar 6 17:26 config
drwxrwxr-x. 2 debian debian 6 mar 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 mar 6 17:26 repositório

Como definir permissões para um diretório

Ansible permite que você especifique permissões para um diretório usando a diretiva de modo. Considere o seguinte manual, que cria um diretório e define permissões:

- hosts: todos
tarefas:
- nome: Ansible criar diretório e definir permissões
Arquivo:
caminho: / backups
estado: diretório
modo: "u = rw, g = wx, o = rwx"
tornar-se: sim

Na entrada acima, criamos um diretório em /. Também precisávamos nos tornar root, daí a entrada tornar-se: sim.

permissão $ ansible-playbook.yml PLAY [all] ********************************************* ************************************************** ************************************************** ************************************************** ***
TAREFA [Coleta de fatos] ********************************************** *************************************************** ************************************************** *******************************************
Digite a senha para a chave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREFA [Ansible criar diretório e definir permissões] ****************************************** *************************************************** *************************************************** ****************
mudou: [35.222.210.12]
PLAY RECAP ************************************************ ************************************************** *************************************************** ***************************************************
35.222.210.12: ok = 2 alterado = 1 inacessível = 0 falhou = 0 ignorado = 0 resgatado = 0 ignorado = 0

Se você visualizar as permissões do diretório que criamos, verá o seguinte:

$ ls -lrt / | grep backups

O resultado é mostrado abaixo:

drw - wxrwx.   2 root root 6 de março 17:36 backups

Como alterar permissões recursivamente em um diretório

Para alterar as permissões de um diretório e seus arquivos recursivamente, basta especificar a entrada recursiva, conforme mostrado abaixo:

- hosts: todos
tarefas:
- nome: Ansible criar diretório e definir permissões
Arquivo:
caminho: / backups
estado: diretório
modo: "u = rw, g = wx, o = rwx"
recursivo: sim
tornar-se: sim

Como definir permissões em vários diretórios

Configurar permissões para vários diretórios no Ansible também é tão simples quanto algumas linhas de entradas. Considere o seguinte manual.

- hosts: todos
tarefas:
- nome: Ansible criar um diretório múltiplo com permissões
Arquivo:
caminho: "item.caminho "
modo: "item.modo"
estado: diretório
with_items:
- caminho: '~ / backups / mysql', modo: '0777'
- caminho: '~ / backups / repositório', modo: '0755'
- caminho: '~ / backups / config', modo: '0707'

Como excluir um diretório no Ansible

Para remover um diretório e todo o seu conteúdo usando um manual do Ansible, especifique o estado como ausente, conforme mostrado abaixo:

- hosts: todos
tarefas:
- nome: Ansible delete diretório
Arquivo:
caminho: / backups
estado: ausente
tornar-se: sim

Este comando irá remover o diretório e todos os arquivos filhos e diretórios.

NOTA: Certifique-se de ter permissões para o diretório em que está trabalhando.

Como criar um diretório com carimbo de data / hora

Em alguns casos, pode ser necessário criar um diretório com um carimbo de data / hora anexado, o que pode ser muito útil, especialmente ao criar backups. Para criar um diretório com carimbo de data / hora, podemos usar a variável ansible_date_time.

Considere o seguinte manual:

- hosts: todos
tarefas:
- nome: Ansible adicionar carimbo de data / hora ao diretório
Arquivo:
caminho: "/ backups / mysql ansible_date_time.data"
estado: diretório
modo: "0777"
tornar-se: sim

Depois de executar o manual, você terá um diretório com o carimbo de data / hora.

$ ls -l

A listagem do diretório deve ser conforme mostrado abaixo:

total 0 drwxrwxrwx. 2 root 6 de março 18:03 mysql2021-03-06

NOTA: Para evitar erros, sempre verifique a sintaxe do arquivo YAML que você pretende usar no Ansible.

Conclusão

Este tutorial mostrou que trabalhar com módulos Ansible é muito fácil e intuitivo, tornando a automatização de tarefas complexas mais simples. Usando o módulo de arquivo Ansible, você pode criar um ou mais diretórios e adicionar permissões para cada um. Você também pode usar o mesmo módulo para remover um diretório. Para obter mais informações sobre como usar o módulo de arquivo Ansible, verifique a documentação oficial na página de recursos.

O cursor pula ou se move aleatoriamente enquanto digita no Windows 10
Se você descobrir que o cursor do mouse pula ou se move por conta própria, de forma automática e aleatória ao digitar em um laptop ou computador com W...
Como reverter a direção de rolagem do Mouse e Touchpads no Windows 10
Mouse e Touchpads não apenas torna a computação mais fácil, mas mais eficiente e menos demorada. Não podemos imaginar uma vida sem esses dispositivos,...
Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...