Temas abordados neste modulo:
- Os 4 principais comandos de terraform:
init,plan,applyedestroy. - Estrutura base de um projecto terraform:
main.tf,variables.tf,outputs.tf - Utilização de
variable,data,resourceeoutput. terrafom.tfvarsé usado por defeito se tiver presente na mesma diretória.- Gestão de alterações: simples, disruptivas e dependentes.
- Destruição seletiva de recursos.
Esta secção explica como preparar o IDE para poderem executar os comandos do tutorial.
Abaixo seguem dois guias para configuração em:
- Google Cloud Shell
- Visual Studio Code
Abrir o endereço https://console.cloud.google.com e autenticar.
De seguida, ativar a cloud shell:
Abrir em nova janela:
Abrir editor:
Fechar a janela do terminal no fundo:
Abrir novo terminal (embebido no editor):
Clonar o projeto:
git clone https://github.com/nosportugal/terraforming-the-cloud-part1 && cd terraforming-the-cloud-part1Abrir o editor na pasta do projeto:
E agora que têm o editor pronto, podemos autenticar a consola com o GCP:
gcloud config set project tf-gke-lab-01-np-000001Para iniciar o tutorial, executamos o seguinte comando na consola:
teachme tutorial.mdapenas válido para vscode em WSL (windows-subsystem-linux) - instalações em powershell não são suportadas
Caso decidam usar o vscode, é necessário garantirem que têm os seguintes binários instalados.
As instruções que seguem vão instalar as tools necessárias:
- terraform
- kubectl
- gcloud
# instalar as tools necessárias (podem skipar se já têm instaladas)
sudo ./scripts/install-terraform.sh # terraform
sudo ./scripts/install-kubectl.sh # kubectl
curl https://sdk.cloud.google.com | bash # gcloud
# reinicializar a shell
exec -l $SHELL
# inicializar o cliente gcloud
gcloud init
gcloud auth application-default login
# definir o projeto por defeito (opcional)
gcloud config set project tf-gke-lab-01-np-000001Por fim, podemos clonar o projeto:
git clone https://github.com/nosportugal/terraforming-the-cloud-part1 && cd terraforming-the-cloud-part1# obter a lista de machine-types
gcloud compute machine-types list --zones=europe-west1-b --sort-by CPUS
# listar a lista de regioes disponiveis
gcloud compute regions list
# listar as zonas disponiveis para uma dada regiao
gcloud compute zones list | grep europe-west1
# listar VMs para um dado projecto
gcloud compute instances list --project tf-gke-lab-01-np-000001
# ligar à VM usando o IAP
gcloud compute ssh <vm-name> --project=tf-gke-lab-01-np-000001 --zone europe-west1-b
# obter o self-link de uma vpc a importar do lado do GCP
gcloud compute networks list --uri | grep "$(terraform output -raw my_identifier)"
# obter o self-link de uma subnet a importar do lado do GCP
gcloud compute networks subnets list --uri | grep "$(terraform output -raw my_identifier)"






