Skip to content

Commit

Permalink
lib rot3 24-2
Browse files Browse the repository at this point in the history
  • Loading branch information
TiagoDemay committed Aug 29, 2024
1 parent 22ba0e9 commit 6e2a19d
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 71 deletions.
Binary file added docs/assets/images/tags.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
113 changes: 44 additions & 69 deletions docs/roteiros/3.Private_Cloud_Stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Pré-requisitos:
**DIVISÃO DO ROTEIRO**
O Roteiro é dividido em 2 partes principais.

* Criando a Infraestrutura (Nuvem VM) - Servidor Virtual Privado (VPS)
* Criando a Infraestrutura (Nuvem privada Openstack) siga este Link:
* Uso da Infraestrutura: Aplicacoes nas VMs da Nuvem Openstack


Expand All @@ -30,8 +30,8 @@ Pré-requisitos:

Nesse roteiro vamos instalar um conjunto de aplicações denominado **Openstack** que vai permitir distribuirmos *virtual machines* usando os nós disponíveis no kit.

Até o momento usamos o *mass* para orquestrar o *bare metal* e o *juju* para cuidar do *deployment* de aplicacoes (exemplo Wordpress). E agora vamos utilizar o Openstack para criar VMs e distribuir os serviços em todas as máquinas kit com maior eficiencia.

Até o momento usamos o *mass* para orquestrar o *bare metal* e o *juju* para cuidar do *deployment* de aplicacoes (exemplo grafana e prometheus). E agora vamos utilizar o Openstack para criar VMs e distribuir os serviços em todas as máquinas kit com maior eficiencia.
<!--
### Instalando - Openstack Canonical Distro
* Faça o *download* do charm **Openstack Base** no maas:
Expand Down Expand Up @@ -59,12 +59,30 @@ variables:
gui-y: '1030'
charm: ch:ntp
num_units: 0
```

``` -->
<!--
* Reservar (Allocate) a máquina "server2" no maas.
* Instale o bundle customizado:
* ```$ juju deploy ./bundle.yaml```
* Hora da leitura na documentacao [LINK][https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/] :book: :book: :book:
* Hora da leitura na documentacao [LINK][https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/] :book: :book: :book: -->

### Confira se os seus recursos fisicos seguem a tabela abaixo, volte ao dashboard do MAAS e crie as Tags conforme descrito

| Node name | Tag(s) | CPUs | NICs | RAM_minima | Disks | Storage |
|-----------------|----------|------|------|----- |-------|---------|
| node1.maas | controller| 2 | 1 | 12.0 | 1 | 80.0 |
| node2.maas | reserva | 2 | 1 | 24.0 | 1 | 80.0 |
| node3.maas | compute | 2 | 1 | 32.0 | 1 | 80.0 |
| node4.maas | compute | 2 | 1 | 32.0 | 1 | 80.0 |
| node4.maas | compute | 2 | 1 | 32.0 | 1 | 80.0 |

### Implantação do OpenStack:

* Siga o passo a passo do Link abaixo, porém não não instale nada no server2 que deve estar reservado(alocado), altere o que for necessário para utilizar o Node server 1 como **controller**, o node server 2 como **Reserva** e os nodes server 3,4 e 5 como **compute** (onde o Openstack será instalado).
* **Rode 1 comando por vez e siga o status para ver se a implantação está correndo como o esperado**
* ```$ watch -n 2 -c "juju status --color"```

(Implantação do OpenStack) [https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/install-openstack.html#openstack-release]


!!! warning
Expand All @@ -73,57 +91,34 @@ variables:
Ao contrário do Ansible, 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.
Logo você precisa fazer o bootstrap de um novo controlador no server1.



<!-- * Importante, execute comando para usar o LXD 4.24 (existe um BUG em andamento no LXD 5 - https://bugs.launchpad.net/juju-core/+bug/1565872)
* ```$ juju model-config lxd-snap-channel=4.24/stable``` -->
* Vocês já sabem o que fazer agora: utilizar o comando abaixo para ficar de olho no status do Juju:
* ```$ watch -n 2 -c "juju status --color"```

:clock: :timer:
Enquanto aguarda a instação até a indicação **'certificates' awaiting server certificate data** e até que o serviço **Vault** esteja bloqueado. Responda abaixo:

### AGUARDE O STATUS ACIMA

<!-- !!! exercise
QUESTOES-1
1. Conforme visto no arquivo de instalação, os serviços são instalados usando LXD nos nodes. O que é LXD?
1. O que é o bundle.yaml?
1. *Vault* é um servidor de *secrets*. Como ele funciona e para o que ele é usado? -->
## Resultados finais e próximos passos

Depois que todos os aplicativos foram implantados e as relações entre eles foram adicionadas, precisamos esperar a saída do status juju se estabilizar. Os resultados finais devem ser desprovidos de quaisquer mensagens de erro. Um exemplo de saída (incluindo relações) para uma implantação de nuvem bem-sucedida é fornecido aqui .

Você implantou o OpenStack com sucesso usando Juju e MAAS. O próximo passo é tornar a nuvem funcional para os usuários. Isso envolverá a configuração de redes, imagens e um ambiente de usuário.

### Abrindo o cofre
??? info
Dica para abrir o cofre
(Git do Vault) [https://opendev.org/openstack/charm-vault/src/branch/stable/1.8/src/README.md#post-deployment-tasks]
* Instalando o cli do Vault e configurando-o:
* ```$ sudo snap install vault```
* ```$ export VAULT_ADDR="http://<IP of vault unit>:8200"```
* Gerando :
* ```$ vault operator init -key-shares=5 -key-threshold=3```
* Vocês receberão 5 *Unseal Keys* e 1 *Initial Root Token*. Copie e reserve.
* Removendo o selo, repita a operação com 3 keys diferentes:
* ```$ vault operator unseal <Unseal Key>```
* Autorizando o charm (esse passo precisa ser feito em 50 minutos):
* ```$ export VAULT_TOKEN=<Initial Root Token>```
* ```$ vault token create -ttl=50m```
* anote o *token* gerado pelo comando,
* juju run vault/leader authorize-charm token=**token**
* Agora você tem 50 minutos para descobrir na documentacao como fazer para gerar o TLS do vault (2 comandos)

Para dar prosseguimento, precisamos instalar um certificado válido dentro do Vault, para isso precisamos fazer uma operação de *unseal*:

* Instalando o cli do Vault e configurando-o:
* ```$ sudo snap install vault```
* ```$ export VAULT_ADDR="http://<IP of vault unit>:8200"```
* Gerando :
* ```$ vault operator init -key-shares=5 -key-threshold=3```
* Vocês receberão 5 *Unseal Keys* e 1 *Initial Root Token*. Copie e reserve.
* Removendo o selo, repita a operação com 3 keys diferentes:
* ```$ vault operator unseal <Unseal Key>```
* Autorizando o charm (esse passo precisa ser feito em 50 minutos):
* ```$ export VAULT_TOKEN=<Initial Root Token>```
* ```$ vault token create -ttl=10m```
* anote o *token* gerado pelo comando,
* Agora você tem 50 minutos para descobrir na documentacao como fazer os 2 comandos atuaalizados para o novo juju v3.

### Aqui estão os comando antigos:
```
juju run-action --wait vault/leader authorize-charm token=<token>
juju run-action --wait vault/leader generate-root-ca
```

Depois de rodar os 2 comandos de forma correta(atualizado)
* ```$ watch -n 2 -c "juju status --color"```
Espere até **TODOS** os servicos ficarem com o Status "active".
<!--exceto o serviço `ceph-radosgw`, que deve estar bloqueado. Para seguir em frente o seu juju status deveria ter a seguinte aparência:
![Topologia](../assets/images/jujuStatusAposAbrirVault.png){width=600}-->

### Configurando o Openstack

Expand Down Expand Up @@ -203,15 +198,6 @@ Ainda, montaremos o nosso servidor de imagens (Glance), que utiliza o *Object St



<!-- ### Configurando imagens do Ubuntu para uso (Metadata)
* Na máquina main, vamos adicionar o serviço Glance Simplestreams.
* ```juju deploy glance-simplestreams-sync --to 0```
* ```juju add-relation glance-simplestreams-sync:identity-service keystone:identity-service```
* Execute o comando ```juju run-action glance-simplestreams-sync/0 sync-images --wait``` e aguarde a conclusão acompanhando via *juju status*. -->



### Escalando os nós


Expand Down Expand Up @@ -250,14 +236,3 @@ TOPOLOGIA:
1. Print do Dashboard do Wordpress conectado via máquina Nginx/LB.
1. 4 Prints, cada um demonstrando em qual server(maquina fisica) cada instancia foi alocado pelo OpenStack.



<!-- !!! exercise
QUESTOES-3
1. Dado que vocês trabalharam com Nuvem Pública e com Nuvem Privada, descreva com detalhes como você montaria uma Nuvem Híbrida. Como seria a troca de dados?
1. É possível somar todo o hardware disponível e disparar uma instância gigante (ex: mais memória do que disponível na melhor máquina)? Discorra sobre as possibilidades.
1. Cite e explique **pelo menos** 2 circunstâncias em que a *Private Cloud* é mais vantajosa que a *Public Cloud*.
1. Openstack é um Sistema Operacional? Descreva seu propósito e cite as principais distribuições?
1. Quais são os principais componentes dentro do Openstack? Descreva brevemente suas funcionalidades. -->

4 changes: 2 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ nav:
- MAAS: roteiros/1.Bare_metal.md
- Roteiro 2:
- JUJU: roteiros/2.Deployment.md
#- Roteiro 3:
# - OpenStack: roteiros/3.Private_Cloud_Stack.md
- Roteiro 3:
- OpenStack: roteiros/3.Private_Cloud_Stack.md
# - Documentacao oficial: roteiros/README-openstackBase.md
#- Roteiro 4:
# - SLA, DR e IaC: roteiros/4.IaC.md
Expand Down

0 comments on commit 6e2a19d

Please sign in to comment.