Aplicações Práticas
O módulo Ansible Stat pode ser utilizado numa variedade de aplicações práticas para automatizar tarefas de gestão de infraestruturas. Aqui ficam alguns exemplos:
Verificação da Existência e Permissões de Ficheiros
Um caso de utilização comum para o módulo Stat é verificar a existência e as permissões de um ficheiro ou diretório. Isto pode ser útil quando precisa de garantir que um ficheiro ou diretório crítico está presente e tem as permissões corretas antes de prosseguir com outras tarefas. Aqui fica um exemplo:
- hosts: all
tasks:
- name: Verificar se um ficheiro existe
ansible.builtin.stat:
path: /etc/hosts
register: hosts_file
- name: Falhar se o ficheiro não existir
fail:
msg: "O ficheiro /etc/hosts não existe"
when: not hosts_file.stat.exists
- name: Garantir as permissões do ficheiro
file:
path: /etc/hosts
owner: root
group: root
mode: "0644"
when: hosts_file.stat.exists
Este exemplo verifica primeiro se o ficheiro /etc/hosts existe utilizando o módulo Stat. Se o ficheiro não existir, o playbook falhará com uma mensagem de erro. Se o ficheiro existir, o playbook garante que o ficheiro tem a propriedade e as permissões corretas.
Tarefas Condicionais Baseadas em Atributos de Ficheiros
O módulo Stat também pode ser utilizado para tomar decisões com base nos atributos de um ficheiro ou diretório. Por exemplo, pode utilizar o módulo Stat para verificar a hora de modificação de um ficheiro e executar ações diferentes com base em se o ficheiro foi atualizado. Aqui fica um exemplo:
- hosts: all
tasks:
- name: Obter informações sobre um ficheiro de configuração
ansible.builtin.stat:
path: /etc/app/config.yml
register: config_file
- name: Atualizar o ficheiro de configuração
template:
src: config.yml.j2
dest: /etc/app/config.yml
when: config_file.stat.mtime < (ansible_date_time.epoch | int - 3600)
Neste exemplo, o módulo Stat é utilizado para recuperar a hora de modificação do ficheiro /etc/app/config.yml. Se o ficheiro não tiver sido modificado na última hora (3600 segundos), o playbook atualiza o ficheiro de configuração utilizando um modelo Jinja2.
Operações de Backup e Restauração
O módulo Stat também pode ser utilizado para realizar operações de backup e restauração. Por exemplo, pode utilizar o módulo Stat para verificar o tamanho de um ficheiro ou diretório antes de o fazer backup, e depois utilizar a mesma informação para verificar a integridade do backup. Aqui fica um exemplo:
- hosts: all
tasks:
- name: Obter informações sobre um diretório
ansible.builtin.stat:
path: /var/www/html
register: web_dir
- name: Fazer backup do diretório web
archive:
path: /var/www/html
dest: /backups/web_dir.tar.gz
- name: Verificar a integridade do backup
ansible.builtin.stat:
path: /backups/web_dir.tar.gz
register: backup_file
assert:
that:
- backup_file.stat.size == web_dir.stat.size
msg: "O tamanho do ficheiro de backup não corresponde ao tamanho do diretório original"
Neste exemplo, o módulo Stat é utilizado para recuperar o tamanho do diretório /var/www/html antes de criar um arquivo de backup. Depois de o backup ser criado, o módulo Stat é utilizado novamente para verificar o tamanho do ficheiro de backup, garantindo que o processo de backup foi bem-sucedido.
Ao utilizar o módulo Ansible Stat nos seus playbooks, pode automatizar uma vasta gama de tarefas de gestão de infraestruturas, melhorar a fiabilidade dos seus sistemas e otimizar o seu fluxo de trabalho geral.