Introdução
A automação de montagens deve ser repetível e segura. Para uma máquina virtual de laboratório, o tmpfs fornece um sistema de arquivos inofensivo que ainda permite exercitar o gerenciamento de pontos de montagem e do fstab.
Neste laboratório, você criará um ponto de montagem, montará um tmpfs com o ansible.posix.mount, verificará o findmnt e o /etc/fstab, e comprovará que o playbook é idempotente.
Criar um Projeto de Automação de Montagem
Nesta etapa, você criará um projeto para automatizar uma montagem tmpfs segura.
cd /home/labex/project
mkdir -p rhce-ansible/{inventory,playbooks,reports}
cd rhce-ansible
cat > ansible.cfg <<'EOF'
[defaults]
inventory = ./inventory/hosts
host_key_checking = False
retry_files_enabled = False
EOF
cat > inventory/hosts <<'EOF'
[managed]
host ansible_connection=local
EOF
O destino da montagem é um ponto de montagem real do sistema, mas ele utiliza tmpfs, portanto, não é necessário particionar o disco. Isso mantém o laboratório seguro enquanto ainda exercita o comportamento de montagem e do /etc/fstab.
Definir Variáveis de Montagem
Nesta etapa, você definirá o ponto de montagem, o tipo de sistema de arquivos e as opções. A opção size=16m mantém o tmpfs pequeno.
Antes de executar os comandos nesta etapa, retorne ao diretório do projeto Ansible. Isso mantém os comandos estáveis, mesmo quando o LabEx executa cada etapa separadamente.
cd /home/labex/project/rhce-ansible
mkdir -p inventory/group_vars
cat > inventory/group_vars/managed.yml <<'EOF'
mount_point: /mnt/rhce-ansible-data
mount_src: tmpfs
mount_fstype: tmpfs
mount_opts: size=16m,mode=0755
EOF
As variáveis descrevem tanto a montagem ativa quanto a entrada persistente. tmpfs é a origem e o tipo de sistema de arquivos, enquanto size=16m,mode=0755 controla o tamanho do sistema de arquivos em memória e as permissões do ponto de montagem.
cat inventory/group_vars/managed.yml
Escrever o Playbook de Montagem
Nesta etapa, você usará o ansible.posix.mount. A configuração state: mounted monta o sistema de arquivos imediatamente e garante que uma entrada no /etc/fstab exista.
Antes de executar os comandos nesta etapa, retorne ao diretório do projeto Ansible.
cd /home/labex/project/rhce-ansible
cat > playbooks/manage-mount.yml <<'EOF'
---
- name: Configure a safe tmpfs mount
hosts: managed
become: true
gather_facts: false
tasks:
- name: Ensure mount point exists
ansible.builtin.file:
path: "{{ mount_point }}"
state: directory
mode: '0755'
- name: Mount and persist tmpfs
ansible.posix.mount:
path: "{{ mount_point }}"
src: "{{ mount_src }}"
fstype: "{{ mount_fstype }}"
opts: "{{ mount_opts }}"
state: mounted
- name: Write evidence inside mounted filesystem
ansible.builtin.copy:
dest: "{{ mount_point }}/mounted-by-ansible.txt"
content: |
mounted=true
mode: '0644'
EOF
O state: mounted realiza duas ações: monta o sistema de arquivos agora e garante que uma entrada no /etc/fstab exista para futuras inicializações. A tarefa final de cópia escreve um pequeno marcador dentro do sistema de arquivos montado para que você possa provar que a montagem está utilizável.
ansible-playbook playbooks/manage-mount.yml --syntax-check
Executar e Inspecionar a Montagem
Nesta etapa, você executará o playbook e inspecionará a montagem ativa e a entrada persistente no fstab.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-first.txt
A primeira execução deve criar o ponto de montagem, montar o tmpfs, atualizar o /etc/fstab e gravar o arquivo de marcador. Você verificará cada um desses resultados diretamente.
findmnt /mnt/rhce-ansible-data
O findmnt confirma que a tabela de montagem ativa do kernel contém o ponto de montagem.
grep -F /mnt/rhce-ansible-data /etc/fstab
A linha no /etc/fstab confirma que a configuração persistente existe.
cat /mnt/rhce-ansible-data/mounted-by-ansible.txt
A leitura do arquivo de marcador prova que o sistema de arquivos montado é gravável e está conectado no caminho esperado.
Confirmar a Idempotência da Automação de Montagem
Nesta etapa, você executará o playbook novamente. O ponto de montagem, a entrada no fstab e o arquivo de evidência já devem corresponder ao estado desejado.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-second.txt
A segunda execução verifica se o Ansible consegue reconhecer a montagem existente, a entrada no fstab e o arquivo de marcador sem alterá-los.
grep -E 'host.*changed=0' reports/mount-second.txt
Resumo
Você configurou uma montagem tmpfs segura com o ansible.posix.mount, verificou o estado da montagem ativa e persistente, e confirmou que o playbook converge corretamente.


