Skip to content
Snippets Groups Projects
Commit ff84dc77 authored by Natália Granato's avatar Natália Granato
Browse files

feat: starting opentofu and gitlab ci project

parent 3d3bf483
No related branches found
No related tags found
No related merge requests found
provider "aws" {
region = "us-east-2"
}
terraform {
backend "s3" {
bucket = "tofu-tfstates" # Nome do bucket S3 onde o estado será armazenado
key = "terraform.tfstate" # Nome do arquivo de estado no bucket
region = "us-east-2" # Região da AWS onde o bucket está localizado
}
}
ec2.tf 0 → 100644
# Data source para buscar a AMI mais recente do Ubuntu
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server*"]
}
owners = ["099720109477"] # Este é o ID do proprietário da Canonical, a empresa por trás do Ubuntu
}
# Configura o provedor AWS
provider "aws" {
region = "us-east-2" # Substitua pela região desejada
}
# Cria uma instância EC2
resource "aws_instance" "devops" {
ami = data.aws_ami.ubuntu.id
instance_type = "t2.micro"
subnet_id = var.vpc_id
root_block_device {
encrypted = true
}
tags = {
Name = "dev"
}
}
# Exemplo de recurso para criar uma instância EC2
# Você pode especificar a AMI (Amazon Machine Image) que deseja usar substituindo o AMI ID.
# Certifique-se de substituir a região no provedor AWS de acordo com a sua preferência.
# Após definir este arquivo, você pode executar "terraform init" e "terraform apply" para criar a instância.
# Output para a ID da instância EC2
output "instance_id" {
description = "ID da instância EC2 criada"
value = aws_instance.dev.id
}
# Output para o ip público da instância EC2
output "public_ip" {
description = "Endereço IP público da instância EC2 criada"
value = aws_instance.dev.public_ip
}
# Output para o nome da instância EC2
output "instance_name" {
description = "Nome da instância EC2"
value = aws_instance.dev.tags.Name
}
# Output para o bloco EBS da instância EC2
output "ebs_info" {
description = "Informações do bloco EBS da instância EC2"
value = aws_instance.dev.root_block_device
}
# Output para a ID da VPC da instância EC2
output "vpc_id" {
description = "ID da VPC da instância EC2"
value = aws_instance.dev.subnet_id
}
variable "aws_region" {
description = "A região onde a instância EC2 será criada."
type = string
default = "us-east-2" # Pode ser substituído pela região desejada
}
variable "instance_type" {
description = "O tipo de instância EC2 a ser criado."
type = string
default = "t2.micro" # Pode ser substituído pelo tipo desejado
}
variable "instance_name" {
description = "O nome da instância EC2."
type = string
default = "dev" # Pode ser substituído pelo nome desejado
}
variable "ebs_volume_size" {
description = "Tamanho do disco EBS em gigabytes (GB)."
type = number
default = 8
validation {
condition = var.ebs_volume_size >= 8 && var.ebs_volume_size <= 2000
error_message = "O tamanho do disco EBS deve estar entre 8 GB e 2000 GB."
}
}
variable "vpc_id" {
description = "ID da VPC onde a instância EC2 será criada."
type = string
default = "vpc-0123456789abcdef0" # Substitua pelo ID da VPC desejada ou remova o valor padrão
}
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0" # Use o operador "~>" para buscar a versão mais recente a partir da 3.0
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment