Como usar módulos Ansible para tarefas de administração do sistema - Parte 6
- 4626
- 1370
- Enrique Crist
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:
- Gerenciando pacotes e repositórios de software em Ansible
- Gerenciando serviços usando Ansible
- Gerenciando o firewall com Ansible
- Arquivando arquivos ou pastas com Ansible
- Agendar tarefas com Ansible
- Gerenciar usuários e grupos com Ansible
- Crie arquivos e diretórios com Ansible
- Gerenciando o armazenamento com Ansible
- 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: InstaladoInstale 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: SimGerenciar 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: parouPare 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: reiniciadoReinicie 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 AnsibleCompressa 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.
- « Como criar modelos em Ansible para criar configurações em nós gerenciados - Parte 7
- Polo - um gerenciador de arquivos leve moderno para Linux »