Como usar módulos Ansible para tarefas de administração do sistema - Parte 6

Como usar módulos Ansible para tarefas de administração do sistema - Parte 6

Nisso Parte 6 De séries Ansible, cobrimos alguns módulos Ansible nos tópicos anteriores, agora iremos mais profundamente e descobriremos módulos adicionais que são úteis para executar várias tarefas de administração do sistema.

Você terá uma idéia básica de cada módulo e analisará as opções disponíveis para realizar determinadas tarefas.

Nesta página:
  1. Gerenciando pacotes e repositórios de software em Ansible
  2. Gerenciando serviços usando Ansible
  3. Gerenciando o firewall com Ansible
  4. Arquivando arquivos ou pastas com Ansible
  5. Agendar tarefas com Ansible
  6. Gerenciar usuários e grupos com Ansible
  7. Crie arquivos e diretórios com Ansible
  8. Gerenciando o armazenamento com Ansible
  9. Gerenciando sistemas de arquivos com Ansible

1. Gerenciando pacotes e repositórios de software em Ansible

Ao instalar pacotes em sistemas Linux, diferentes distribuições vêm com diferentes gerentes de pacotes. Para Chapéu vermelho distribuições, temos yum & dnf enquanto Debian sabores, há adequados.

Ansible vem com um módulo chamado pacote, que elimina a necessidade de usar diferentes gerentes de pacotes para diferentes sistemas. Ele usa automaticamente o gerenciador de pacotes correspondente do sistema host, facilitando o trabalho.

Instale pacotes de software

Por exemplo, para instalar o HTOP em um grupo de anfitriões compreendendo ambos Debian & Chapéu vermelho distros usam o pacote módulo como mostrado no install_htop.yml Manual abaixo.

--- - Nome: Instale HTOP nos hosts Ubuntu e Centos: Todas as tarefas: - Pacote: Nome: HTOP State: Instalado 
Instale o software usando o módulo de pacote Ansible

OBSERVAÇÃO: Nomes de pacotes podem diferir de um sistema operacional para outro. Por exemplo, nós temos httpd em Chapéu vermelho distribuições e Apache2 para Debian/Ubuntu sistemas todos os que denotam o servidor da web do Apache. Portanto, deve -se tomar cuidado extra ao passar por esses pacotes. Geralmente, é melhor usar variáveis ​​ou declarações condicionais.

2. Gerenciando serviços usando Ansible

Em seguida, temos um serviço Módulo, que é usado para gerenciar serviços em sistemas Linux. É usado para começar, parar ou reiniciar um serviço. Você também pode usá -lo para ativar um serviço para que, quando um sistema inicializa, ele inicie automaticamente o serviço.

Inicie e habilite um serviço

Por exemplo, para iniciar e ativar o Apache WebServer RHEL 8, Use o serviço como mostrado.

--- - Nome: Iniciar e ativar o serviço HTTPD Hosts: WebServers Tarefas: - Serviço: Nome: HTTPD Estado: Iniciado Ativado: Sim 
Gerenciar serviços com Ansible

Pare um serviço

Parar httpd serviço, passe o parou atributo.

--- - Nome: Stop Httpd Service Hosts: WebServers Tarefas: - Serviço: Nome: Httpd Estado: parou 
Pare o serviço com Ansible

Reinicie um serviço

Reiniciar httpd serviço, passe o reiniciado atributo.

--- - Nome: reinicie o serviço httpd hosts: web servers tarefas: - Serviço: Nome: HTTPD Estado: reiniciado 
Reinicie o serviço com Ansible

3. Gerenciando o firewall com Ansible

Outro importante sistema de tarefas que os administradores se reúne é o gerenciamento do firewall. Nos manuais de Ansible, isso foi muito mais fácil com Firewalld e ufw módulos. Você pode configurar o firewall para permitir ou bloquear uma porta ou serviço ou mesmo um endereço de origem.

Vamos entrar e dar uma olhada em alguns exemplos:

Porta de abertura/bloco 80 no firewalld

--- - Nome: Permitir a porta 80 Hosts: Web Servers Tarefas: -Firewalld: Port: 80/TCP Permanente: Sim estado: ativado 

No manual acima, Port 80 é permitido em todo o firewall.

A opção Permanente: Sim aplica a regra do firewall e a torna persistente nas reinicializações. No entanto, esta regra não se aplica imediatamente. Só entra em vigor após uma reinicialização. Para fazer cumprir a regra imediatamente, use a opção Imediato: Sim.

Para especificar os endereços permitidos, use o Fonte: 0.0.0.0/0 declaração.

- Firewalld: Fonte: 192.168.0.0/24 Zona: Estado Público: Ativado 

Para especificar uma variedade de portas a poder usar a opção de porta da seguinte forma:

- Firewalld: Porta: 213-567/UDP Permanente: Sim Estado: Ativado 

Para bloquear a porta alterar a opção de estado para desabilitado como mostrado:

-Firewalld: Porta: 80/TCP Permanente: Sim Estado: Desativado 

Adicionar/bloquear um serviço no firewalld

Além de adicionar/bloquear uma porta, você também pode aplicar as mesmas regras a um serviço. E é bastante simples. Basta usar o serviço módulo e anexa o serviço a ser adicionado e verifique se a opção de estado está definida como habilitado.

- Firewalld: Serviço: HTTPS Permanente: True estado: ativado 

Para bloquear o serviço de serviço estado opção para desabilitado.

- Firewalld: Serviço: HTTPS Permanente: True Estado: desativado 

4. Arquivando arquivos ou pastas com Ansible

Arquivamento refere -se à compressão de um arquivo ou pasta para um formato que é facilmente portátil e menor em tamanho. Navios Ansible com um módulo chamado arquivo. Compressar um arquivo é o mais fácil possível. Tudo o que é necessário é especificar o caminho de origem do arquivo e o destino do arquivo compactado.

Compressa um diretório

Considere um manual comprimir.yml abaixo.

--- - Hosts: WebServers Tasks: • Nome: Compress a uma pasta Arquivo: Caminho:/Opt/Data/Web dest:/tmp/web.gz 

O manual acima comprime o /opt/dados/web diretório e salva para /tmp/web.gz.

Criar arquivo com Ansible

Compressa um diretório com formato

O formato de compressão padrão é .gz, No entanto, isso pode ser especificado usando o atributo de formato. Exiba o próximo manual.

--- - Hosts: WebServers Tasks: - Nome: Crie um arquivo zip: Path:/Opt/Data/Web dest:/TMP/Formato da Web: ZIP 

O manual acima de comprimes /opt/dados/web diretório para /tmp/web.fecho eclair.

Descompactar um arquivo

Você também pode descompactar um arquivo compactado usando o UNARCIVO atributo. Considere o manual abaixo.

--- - Hosts: WebServers Tasks: - Nome: Uncompress /TMP /Web.GZ TO/OPT Diretório no Ansible Controller UNARCIVE: SRC:/TMP/Web.BZ2 dest: /opt / 

O manual acima descreve o arquivo /opt/dados/web.gz para /optar no controlador Ansible.

Descompactar um arquivo no nó remoto

Para especificar o sistema de origem remoto, use o remote_src = sim opção.

--- - Hosts: WebServers Tasks: - Nome: Uncompress /TMP /Web.bz2 para/opt no host remoto desarquivo: src:/tmp/web.BZ2 dest: /opt / remote_src = sim 

O manual acima descreve o arquivo /tmp/web.BZ2 no nó remoto para o /optar/ diretório.

5. Agendar tarefas com Ansible

O cron módulo Ajuda no agendamento de trabalhos em manuais Ansible.

Crie uma tarefa programada

Considere o manual abaixo.

--- - Hosts: WebServers Tarefas: - Nome: Crie uma tarefa agendada Cron: Nome: Execute o trabalho de atendimento dos funcionários: SH/OPT/Scripts/Aprendizagem.SH Mês: 4 DIA: 5 horas: 17 minutos: 00 

O manual executa o script de participação em 5 de abril às 17:00.

Programe um script em data específica

Se você deseja agendar este script apenas se o 5º dia de abril for uma segunda -feira, use o dia da semana: 1 atributo. 0 denota domingo e 6 indica no sábado de acordo com a notação de Cron.

Mês: 4 DIA: 5 HORAS: 17 Minuto: 00 DIA DA SEMANA: 1 

Um Asterisk (*) Em qualquer um desses campos indica qualquer valor.

Execute um emprego em um encontro

Para executar o trabalho em 5 de abril às 17:00, não importa o que seja o dia da semana, use os parâmetros de tempo como mostrado.

Mês: 4 DIA: 5 HORAS: 17 Minuto: 00 DIA DA SEMANA: * 

Executar um emprego em um dia específico em todos os meses

Para executar o trabalho de Cron no 5º dia de cada mês às 17:00, use as configurações abaixo.

Mês: * Dia: 5 horas: 17 minutos: 00 DIA DA SEMANA: * 

Executar um emprego diariamente

Para executar o trabalho Cron diariamente às 17:00, defina as configurações de horário como mostrado:

Mês: * Dia: * Hora: 17 minutos: 00 DIA DA SEMANA: * 

Executar um emprego a cada 5 horas

Para executar o trabalho de Cron a cada 5 horas, use o valor da etapa */5 como mostrado.

Mês: * Dia: * Hora: */5 minuto: * Dia da semana: * 

6. Gerenciar usuários e grupos com Ansible

Você também pode gerenciar usuários e grupos dentro de manuais Ansible sem esforço.

Crie um novo usuário

Para criar um novo usuário, use o do utilizador módulo como mostrado.

--- - Hosts: WebServers Tasks: - Nome: Crie um novo usuário do usuário: Nome: Jack 

Você também pode adicionar opções adicionais, como UID, grupos.

- Nome: Crie um novo usuário Usuário: Nome: Jack Comentário: Jack Peters UID: 1002 Grupo: Administradores Shell: /Bin /Bash 

Remova um usuário

Para remover o usuário, use o Remova: Sim declaração.

- Nome: Remova o usuário 'Jack' Usuário: Nome: Jack State: Ausente Remova: Sim 

Crie um novo grupo

Para criar um novo grupo, use o grupo módulo.

- Nome: Crie um grupo Grupo: Nome: Desenvolvedores 

7. Crie arquivos e diretórios com Ansible

Para criar arquivos de diretórios, use o arquivo módulo.

Crie um novo diretório

Por exemplo, para criar um novo diretório.

--- - Hosts: WebServers Tasks: - Nome: Crie um novo arquivo de diretório: Path: /Opt /App State: Diretório 

Você pode adicionar outros atributos, como permissões de proprietário, grupo e arquivo.

- Hosts: WebServers Tasks:-Nome: Crie um novo arquivo de diretório: Path: /Opt /Web State: Directory Proprietário: WWW-Data Grupo: WWW-Data Modo: 0644 

Além disso, você pode criar diretórios recursivamente usando o Recurse: Sim declaração.

--- - Hosts: WebServers Tarefas:-Nome: Crie diretórios Recursiva Arquivo: Path:/Opt/Web/App State: Directory Proprietário: WWW-Data Grupo: WWW-Data Modo: 0644 Recurse: Sim 

Criar um arquivo

Para criar um arquivo, use o Estado: toque opção.

--- - Hosts: WebServers Tasks: - Nome: Crie um novo arquivo de arquivo: Path:/Opt/Web/Index.html Estado: toque Proprietário: Grupo WWW-Data: WWW-Data Modo: 0644 

8. Gerenciando o armazenamento com Ansible

O lvg O módulo é usado para configurar volumes e grupos LVM.

Crie um grupo de volume LVM

Considere o manual abaixo:

--- - Hosts: WebServers Tarefas: • Nome: Crie Grupo de Volume LVM LVG: VG: VG1 PVS: /dev /sda1 PESize: 32 

Isso cria um grupo de volume em cima de /dev/sda1 partição com um tamanho de extensão física de 32 MB.

Uma vez criado, use o LVOL módulo para criar um volume lógico como mostrado

Crie um volume lógico

--- - Hosts: WebServers Tasks: - Nome: Crie LVM Volume LVOL: VG: VG1 LV: Lvol1 pvs: /dev /sda1 

9. Gerenciando sistemas de arquivos com Ansible

Para criar um sistema de arquivos em um dispositivo de bloco, use o sistema de arquivo módulo.

Crie um sistema de arquivos

O manual abaixo cria o tipo de sistema de arquivos de XFS no volume do bloco.

--- - Hosts: WebServers Tasks: - Nome: Crie um sistema de arquivos de arquivos: Fstype: XFS dev:/dev/vg1/lvol1 

Montar um sistema de arquivos

Você pode seguir em seguida para montar o volume do bloco usando o montar Módulo como mostrado no manual abaixo:

--- - Hosts: WebServers Tasks: - Nome: Monte um sistema de arquivos Montagem: Fstype: XFS SRC:/dev/vg1/lvol1 caminho:/opt/web state: montado 
Conclusão

Isso conclui o tópico. Cobrimos várias tarefas de administração do sistema que podem ser realizadas por módulos internos específicos em manuais de Ansible.