Deployment Orchestration¶
Criando Infraestrutura para deploy com Juju¶
Ansible é um gerenciador de deploy que consegue lidar com a instalação e configuração de um conjunto de nós pré reservados, mas não consegue realizar o provisionamento direto com o MaaS (gerenciador de Bare-metal). Para montar a nossa Cloud Privada, vamos utilizar outro orquestrador de deploy que integra com o MaaS.
- Antes de continuar, verifique se todas máquinas (server1, server2, server3, server4 e server5) estão Ready no MAAS. Faça o release das máquinas Django e Postgres caso necessário.
- Acesse o main via SSH e instale o Juju
- $ sudo snap install juju --channel 3.6
- Verifique se o Juju enxerga o MaaS como um provedor de recursos, caso o MAAS não esteja como provider do JUJU, adicione ele.
- $ juju clouds
Adicione o cluster MAAS para que o Juju possa gerenciá-lo como uma cloud, o JUJU irá utilizar o MAAS como seu provedor de máquinas e Sistema Operacional. Vamos fazer isso através de um arquivo de definição de cloud, como maas-cloud.yaml:
- Caso não possua o MaaS como opção, deve adicioná-lo, confirme se o arquivo corresponde com o seu ambiente !!!!!
-
Criar um arquivo de configuração: maas-cloud.yaml (atenção com a formatação)
-
$ juju add-cloud --client -f maas-cloud.yaml maas-one
Adicione as credenciais MAAS para que o Juju possa interagir com a nova cloud adicionada. Vamos novamente usar um arquivo para importar nossas informações, como maas-creds.yaml:
- $ juju add-credential --client -f maas-creds.yaml maas-one
- Obs: OAuth é o API KEY gerado no MaaS (dentro do menu do usuário)
Crie o controlador (usando a série ‘jammy’) para a cloud ‘maas-one’ e chame-o de ‘maas-controller’: Iremos criar o controlador no server1 para isso faça a tag da maquina com o nome juju através do dashboard MAAS na maquina server1.
- $ juju bootstrap --bootstrap-series=jammy --constraints tags=juju maas-one maas-controller
Este comando acima irá demorar para finalizar, enquanto isso tente entender porque !!!!!
- Para verificar o status do controller utilize:
- $ juju status
O Juju necessita de uma máquina exclusiva para controlar todo o deploy. Essa máquina é alocada automaticamente durante o bootstrap e controlará todo o deploy que faremos no próximo roteiro. Ainda, assim como você usou o maas-cli na primeira implantação, você irá utilizar o juju-cli para interagir com o serviço.
Para dúvidas relacionadas ao deploy com o juju acesse a documentação oficial: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/install-juju.html
Conclusão: SOMENTE PARA ENTENDER !!!¶
O Ansible utilizou indiretamente o MaaS como provedor de recursos físicos. O MaaS por sua vez forneceu o que havia disponível no rack. Você acha que seria necessária uma máquina de 32Gb para rodar um Webserver ou um Load Balancer? Extrapole a resposta para um Datacenter real, onde as máquinas possuem configurações muito superiores. Como resolver esse problema?