Criar os seus próprios módulos possíveis

Vince Sesto

Seguir

Mar 20, 2019 – 4 min leia-se

>

Personalizar Ansible For Your Needs Is So Easy

Cada dia o número de módulos possíveis continua a crescer com suporte extra adicionado à medida que o uso da aplicação continua. Então por que você precisaria criar seus próprios módulos Ansible. Bem, há uma série de razões, mas eu acho que a mais válida é, para que você possa entender como os módulos funcionam. Mesmo que, esta nova habilidade encontrada pode não aparecer com muita frequência, há mais probabilidade de você precisar solucionar erros ou problemas com os módulos Ansible existentes, então saber como tudo funciona pode ser uma habilidade valiosa.

Você também precisa lembrar que há muitas aplicações antigas ou aplicações internas que sua organização pode estar usando e que não têm seus próprios módulos. Existem outras opções para implantar estas aplicações através do Ansible e fornecer templates para configurá-las, mas pode ser mais fácil criar o seu próprio módulo para estas aplicações. De qualquer forma, o documento a seguir fornecerá os detalhes para que você possa começar e, esperamos, permitir que você o amplie ainda mais.

Se você está procurando uma ótima maneira de aprender mais sobre o Ansible, siga o link para o nosso último livro, Ansible Answers

Este é um exemplo bastante básico, mas espero que você veja que tudo que você precisa é de um pouco de conhecimento de Python, combine com suas habilidades Ansible e você será capaz de começar a criar seus próprios Módulos Ansíveis…Não se preocupe se o seu conhecimento for um pouco deficiente em ambos, tudo será explicado à medida que passamos por isso juntos.

Vamos apenas cobrir um módulo básico do “Hello World”, para mostrar-lhe como isto é fácil. Este post não vai cobrir a instalação e o básico do Ansible, então fique à vontade para conferir nossos posts anteriores para mais detalhes.

1.Comece acessando seu ambiente de trabalho, que já tem o Ansible instalado nele. Dentro do diretório, você está trabalhando em criar um diretório de biblioteca:

mkdir library

2.Dentro do diretório da biblioteca, crie seu novo nome de arquivo de módulo hello_module.py:

touch library/hello_module.py

3. Com o seu editor de texto favorito, abra o novo ficheiro e adicione o seguinte código(Os números à esquerda estão apenas lá para referência e não devem ser adicionados ao ficheiro):

Não há nada muito complicado aqui, mas se não estiver familiarizado com Python, aqui está uma quebra de cada uma das linhas. A linha 1 especifica que ela precisa usar a versão instalada localmente do Python. A linha 3 importa os módulos específicos que serão executados com o Ansible. As linhas 5 a 8 são a função que irá rodar como parte do seu módulo, especificamente a linha 6 fornece a classe AnsibleModule que nos permite lidar com parâmetros de entrada e nos permite sair do programa, sendo a resposta “olá” e depois “mundo!” na linha 7. As linhas 10 e 11 executam a função quando o módulo é chamado.

4.Agora podemos criar um playbook para executar o módulo. Em seu diretório de trabalho, crie o arquivo newmodule_test.yml:

touch newmodule_test.yml

5.Agora você pode ligar seu editor de texto e adicionar os seguintes detalhes para que seu playbook seja executado

 1 ---
2 - hosts: 127.0.0.1
3 tasks:
4 - name: testing our new module
5 hello_module:
6 register: result
7
8 - debug: var=result

Se você não trabalhou com o Ansible antes, o código acima é capaz de atribuir o host na linha 2 para ser aquele em que você está trabalhando. As linhas 3 a 6 executam o novo módulo, com a linha 4 nomeando a tarefa, a linha 5 chamando o módulo e a linha 6 registrando o resultado como uma variável nomeada como resultado. Então finalmente a linha 8 usa a função de depuração (debug) para mostrar os resultados e mostrar tudo que foi trabalhado.

6.Agora podemos executar o novo playbook com o seguinte comando:

ansible-playbook newmodule_test.yml

Que lhe dá a seguinte saída:

Se tudo correu bem, você deve ver a saída acima mencionada dando-lhe um bom “olá”: “world!” como o output.

Ok, temos sido bastante rápidos e sujos aqui e esse era o objetivo do post, mas tudo o que você precisa é ampliar seu conhecimento de Python e você também poderá ampliar o que seus módulos podem fazer.

Fundar este post útil? Por favor, toque no botão de palmas abaixo! .

Sobre o Autor

Deixe um comentário