📰 IT Security NachrichtenSony FE 8-14 mm F3.5: Fisheye mit Zirkular-Diagonal-Zoom im Test(10.09.2026 um 16:26 Uhr)
📰 IT Security NachrichtenKI-Modell für den Mond: Open-Source-Projekt soll Wasser-Eis finden(10.09.2026 um 16:46 Uhr)
📰 IT Security NachrichtenKirby and the World Beyond: Neues 3D-Abenteuer startet Anfang 2027(10.09.2026 um 17:07 Uhr)
📰 IT Security NachrichtenSchluss mit dem Gestank: Diese Saugroboter bringen eine echte Lösung(10.09.2026 um 17:50 Uhr)
📰 IT Security NachrichteniPhone Duo & MacBook Neo: Apple kopiert Microsoft(10.09.2026 um 18:10 Uhr)
📰 IT Security NachrichtenEuropäische Starlink-Alternative soll um hunderte Satelliten wachsen(10.09.2026 um 18:30 Uhr)
📰 IT Security NachrichtenApple-Schock: iPhone 17 Pro eingestellt, andere Preise stark erhöht(10.09.2026 um 19:07 Uhr)
📰 IT Security NachrichtenVibe Key & Pixbar: Ulanzi zeigt die Zukunft eures Schreibtischs(10.09.2026 um 19:30 Uhr)
📰 IT Security NachrichtenLuna: Diese 11 neuen Spiele verschenkt Amazon im September 2026(10.09.2026 um 20:30 Uhr)
📰 IT Security NachrichtenSony FE 8-14 mm F3.5: Fisheye mit Zirkular-Diagonal-Zoom im Test(10.09.2026 um 16:26 Uhr)
📰 IT Security NachrichtenKI-Modell für den Mond: Open-Source-Projekt soll Wasser-Eis finden(10.09.2026 um 16:46 Uhr)
📰 IT Security NachrichtenKirby and the World Beyond: Neues 3D-Abenteuer startet Anfang 2027(10.09.2026 um 17:07 Uhr)
📰 IT Security NachrichtenSchluss mit dem Gestank: Diese Saugroboter bringen eine echte Lösung(10.09.2026 um 17:50 Uhr)
📰 IT Security NachrichteniPhone Duo & MacBook Neo: Apple kopiert Microsoft(10.09.2026 um 18:10 Uhr)
📰 IT Security NachrichtenEuropäische Starlink-Alternative soll um hunderte Satelliten wachsen(10.09.2026 um 18:30 Uhr)
📰 IT Security NachrichtenApple-Schock: iPhone 17 Pro eingestellt, andere Preise stark erhöht(10.09.2026 um 19:07 Uhr)
📰 IT Security NachrichtenVibe Key & Pixbar: Ulanzi zeigt die Zukunft eures Schreibtischs(10.09.2026 um 19:30 Uhr)
📰 IT Security NachrichtenLuna: Diese 11 neuen Spiele verschenkt Amazon im September 2026(10.09.2026 um 20:30 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 11 Min Lesezeit SECURITY-FEED
0

Terraform e Deploy: Virtual Machine e Security Group na Magalu Cloud

↗ Quelle (dev.to)
🔬 IoC Intelligence (1 Indikatoren erkannt)
0[.]0[.]0[.]0
🗣️ Stimme:
📑 Inhaltsübersicht

A idéia desse projeto é executar o docker compose que tem a aplicação backend (feito em Python e Flask) e o banco de dados na Máquina Virtual da Magalu Cloud.



O repositório no github para ver o código do






Provider



Primeiro definimos o provider.




CODE
terraform {
required_providers {
mgc = {
source = "MagaluCloud/mgc"
version = "0.30.0"
}
random = {
source = "hashicorp/random"
version = "3.6.2"
}
}
}

provider "mgc" {
alias = "sudeste"
region = "br-se1"
}






No provider, as regiões disponíveis são sudeste br-se1 e nordeste br-ne1.






Virtual Machine



A máquina virtual é equivalente ao AWS EC2, onde você tem controle do que quiser instalar para rodar sua solução, seja scripts, servidores web, qualquer linguagem e etc.




Dica: faça testes localmente com o que tem um Vagrantfile para ser usado.





CODE
resource "mgc_virtual_machine_instances" "this" {
depends_on = [mgc_ssh_keys.this, mgc_network_security_groups.this]
name = "mgc-vm-instance"

machine_type = {
name = "BV1-1-10"
}

image = {
name = "cloud-ubuntu-24.04 LTS"
}

network = {
associate_public_ip = true
delete_public_ip = true

interface = {
security_groups = [{
id = mgc_network_security_groups.this.id
}]
}
}

ssh_key_name = mgc_ssh_keys.this.name
}






O depends_on cria dependência com o recurso mgc_ssh_keys e mgc_network_security_groups. A máquina virtual atual só será criado após a criação de quem ele depende.



No atributo machine_type, o valor usado é o BV1-1-10, que possui 1 vCPU e 1GB de RAM. Essas informações são encontradas ao criar a instância no site.



A image usada é o cloud-ubuntu-24.04 LTS. Os valores desse atributo pode ser visto listando os detalhes da instância pelo cli.



No atributo network, temos o campo associate_public_ip que indica que ao criar a instância, deverá ser cria um IP público e o campo delete_public_ip indica que ao destruir a instância, o IP gerado também deverá ser deletado. Importante saber que o IP público tem custo.



O atributo interface possui o atributo security_groups onde deverá ser atribuido o id do security group criado, que será explicado mais adiante.



Por fim temos o campo ssh_key_name que seu valor deve ser atribuido ao campo name recurso mgc_ssh_keys, não o seu id.




CODE
resource "random_string" "this" {
length = 5
special = false
lower = true
min_numeric = 2
min_lower = 3
}

resource "mgc_ssh_keys" "this" {
provider = mgc.sudeste
name = "mgc_ssh_key_${random_string.this.id}"
key = file("../mgc_ssh_key.pub")
}






No recurso mgc_ssh_keys indicamos o provider que ele pertence, o name que será referenciado no recurso mgc_virtual_machine_instances e que foi concatenado com uma string aleatória gerado pelo recurso random_string. O conteúdo da chave pública deverá ser colocada no campo key, a função file pega o conteúdo de um arquivo e atribui no campo.




A geração da chave SSH está nessa seção.







Security Group



O security group são regras de tráfego, por padrão na Magalu Cloud, todo o , contém o código do backend.



O atributo restart com o valor always irá reiniciar o container sempre que ele der erro e finalizar a aplicação.



O docker compose vai injetar variáveis de ambiente no container usando o env_file, essa abordagem é mais dinâmica e mais segura que por as variáveis na imagem ou declará-las no atributo environment.



O depends_on diz que irá criar o container backend depois que a condição (condition) do serviço database estiver saudável (service_healthy). Essa verificação de saúde do serviço será feito pelo atributo healthcheck no serviço do banco de dados.



O healthcheck irá testar (test) a saúde do container criado com o comando curl -f http://localhost:3000/healthz. Esse comando irá fazer uma requisição para a rota /healthz e vai esperar status code 2XX como resposta. A implementação dessa rota faz acesso ao banco de dados e caso ocorra tudo certo, irá retornar status code 200. Se a aplicação não responder em um espaço de tempo de 5s (timeout), será considerado uma falha e todo o processo irá se repetir 5 vezes (retries) em um espaço de tempo entre cada tentativa de 5s (interval). Caso os testes não passem, o container será considerado como unhealthy.



O funcionamento do interval, retry e timeout está melhor explicada na imagem abaixo.





Na documentação do docker, você vai encontrar explicação mais detalhada sobre o , ).






Criação da infra e Deploy




  1. Baixe o código git clone https://github.com/deirofelippe/magalucloud-terraform.git


  2. cd ./magalucloud-terraform



  3. Para gerar essa chave, use o comando ssh-keygen -t rsa -b 2048 -f ./mgc_ssh_key -N "".




    • Irá criar um par de chave pública e privada do tipo rsa -t rsa, com 2048 bits -b 2048, o nome do arquivo será mgc_ssh_key e será criado na pasta atual -f ./mgc_ssh_key, por ultimo será gerado uma nova passphrase com valor vazio -N "".

    • O comando irá gerar a chave privada mgc_ssh_key e a chave pública mgc_ssh_key.pub. A chave privada sempre ficará com você e a chave pública ficará no servidor desejado. O terraform vai fazer o upload e a configuração da chave pública no servidor automaticamente, não necessitando do uso do comando ssh-copy-id para fazer o ssh remoto conceder o acesso sem o uso de senha.



  4. Gere os arquivos de configuração: terraform -chdir=./terraform init


  5. Veja o plano de execução: terraform -chdir=./terraform plan


  6. Criar a infra no provedor: terraform -chdir=./terraform apply -auto-approve



  7. Copie o IP público gerado e cole nos comandos abaixo, trocando o <IP-PÚBLICO> e execute-os.



    do repositório, possui as requests que podem ser feitas.





  8. Ao final destrua os recursos criados terraform -chdir=./terraform destroy -auto-approve.







Conclusão



Obrigado pela leitura :)



Repositório do projeto: https://github.com/deirofelippe/magalucloud-terraform

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:
Community Threat-Level Barometer
Live Votum

Wie stufst du das Risiko dieser Schwachstelle / Bedrohung für dein Unternehmen ein?

Noch keine Stimmen — schätze das Risiko als Erster ein.

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
2 Quellen
T-Mobile will give you the iPhone 18 Pro for free – here’s how to preorder
1 Quelle
Asus: Erster Mini-Desktop mit Snapdragon X2 Elite - zu Mondpreisen
1 Quelle
Luna: Diese 11 neuen Spiele verschenkt Amazon im September 2026
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Terraform e Deploy: Virtual Machine e Security Group na Magalu Cloud

Thematisch verwandte Begriffe: Terraform, Deploy, Virtual, Machine · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...