Módulos e Funções
Os módulos são unidades de trabalho que abstratem complexidades do código, permitindo ao usuário trabalhar de forma mais eficiente. Eles são escritos em Python (ou PowerShell, no caso do Windows) e são utilizados como ferramentas em uma caixa de ferramentas. Já as funções, como os módulos, promovem a reutilização e colaboração de automação comum e workflows.
Melhores Práticas para o Desenho de Funções
* Utilize a sintaxe YAML nativa
* Controle de versão do conteúdo e das funções do Ansible
* Utilize módulos com parcimônia
* Busque módulos antes de criar novos
* Utilize nomes significativos para plays, blocos e tarefas
* Limpe mensagens de depuração
* Mantenha o propósito e função de uma função autocontido e focado
* Evite encapsular toda uma pilha ou ambiente em uma única função
Além disso, o apresentador destaca a importância de utilizar variáveis e padrões apropriados em funções e fornece exemplos para ilustrar seu uso. Ele também aconselha contra o uso de módulos de comando e incentiva os desenvolvedores a considerar a escrita de seus próprios módulos, quando necessário.
Desenho de Módulos Eficazes
* Módulos devem tornar tarefas mais fáceis e gerenciáveis, abstratando complexidades.
* Evite mapeamentos one-to-one de APIs ou ferramentas de linha de comando.
* Desenhe módulos para realizar tarefas específicas, facilitando o uso para os usuários.
* Evite módulos monolíticos que fazem tudo.
Desenvolvimento de Módulos
* Evite efeitos colaterais que possam causar problemas em várias execuções.
* Construa lógica para entender o estado e agir de acordo.
* Sempre erre do lado da segurança.
* Use funções de utilidade fornecidas pelo Ansible para garantir operações atômicas e arquivos temporários.
Práticas Adicionais
* Determine se há um problema no início e falhe rapidamente se houver um problema.
* Suporte ao modo de verificação em seus módulos.
* Minimize dependências de bibliotecas Python externas.
* Forneça uma interface de usuário previsível, pensando de forma declarativa e evitando parâmetros como “ação” ou “comando”.
* Mantenha parâmetros focalizados e estreitamente definidos.
* Use subjunctivo e underscores para nomes de parâmetros.
Por fim, o apresentador destaca a importância da documentação e do teste, apresentando dicas adicionais para melhorar o design e o desenvolvimento de módulos e funções Ansible.