Questão nº 24
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 24)
O analista Micael está trabalhando em um projeto de automação de infraestrutura para uma grande empresa de tecnologia. Ele decidiu utilizar o Ansible para automatizar a implantação e configuração de servidores na nuvem, visando a melhorar a eficiência e a consistência dos ambientes de computação. Ao configurar seus playbooks no Ansible, ele se deparou com um desafio relacionado à melhor prática para garantir que os scripts sejam idempotentes e reutilizáveis em diferentes ambientes de nuvem.
A melhor prática a ser adotada pelo analista Micael é:
- Autilizar comandos shell e scripts personalizados dentro dos playbooks para instalação de pacotes e serviços;
- Butilizar hardcoding de senhas e chaves de API diretamente nos playbooks do Ansible;
- Cevitar o uso de variáveis e templates para configurar os serviços, optando por valores fixos nos playbooks;
- Dutilizar módulos específicos de provedores de nuvem para criar e gerenciar recursos, evitando a abstração;
- Eempregar roles e variáveis para modularizar os playbooks, facilitando a reutilização e a customização em diferentes ambientes. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Ansible é uma ferramenta de automação que permite descrever o estado desejado da sua infraestrutura (servidores, redes) em arquivos de texto simples, chamados playbooks, e então aplicá-los para configurar e gerenciar esses recursos de forma consistente e repetível. A idempotência significa que executar o mesmo playbook várias vezes terá o mesmo resultado final, sem causar efeitos colaterais indesejados.
- (A) Incorreta: Utilizar comandos shell e scripts personalizados diretamente nos playbooks é menos ideal porque exige que o analista garanta manualmente a idempotência e a compatibilidade com diferentes sistemas operacionais, perdendo os benefícios dos módulos Ansible que já são idempotentes e abstraem essas diferenças. A armadilha é que comandos shell são familiares e "funcionam", mas não são a melhor prática para a robustez e manutenibilidade que o Ansible oferece.
- (B) Incorreta: Hardcoding (escrever diretamente) senhas e chaves de API nos playbooks é uma falha grave de segurança e impede a reutilização, pois esses dados sensíveis variam por ambiente e devem ser gerenciados de forma segura (ex: Ansible Vault).
- (C) Incorreta: Evitar variáveis e templates e usar valores fixos torna os playbooks inflexíveis e não reutilizáveis. Cada mudança de ambiente ou configuração exigiria a modificação direta do playbook, o que é ineficiente e propenso a erros.
- (D) Incorreta: Embora usar módulos específicos de provedores de nuvem seja correto para interagir com a nuvem, evitar a abstração é o problema. Para reutilizar a lógica em diferentes nuvens, é preciso uma camada de abstração (como variáveis e roles) que permita adaptar o playbook sem reescrevê-lo completamente para cada provedor.
- (E) Correta: Empregar roles (funções) e variáveis é a melhor prática. As roles organizam tarefas, arquivos e templates de forma modular e reutilizável (ex: uma role para "servidor web"). As variáveis permitem customizar o comportamento das roles e playbooks para diferentes ambientes (desenvolvimento, produção) ou provedores de nuvem, tornando o código flexível, legível e fácil de manter e reutilizar.
Fonte: FGV CVM 2024 Analista CVM - TI Infraestrutura e Segurança (Perfil 9) (Caderno Tipo 1). Reproduzida para fins de estudo.