mirror of
https://github.com/idanoo/fediservices.nz-infra
synced 2025-07-02 06:12:15 +00:00
Initial commit
This commit is contained in:
commit
8734e2952d
7 changed files with 601 additions and 0 deletions
82
main.tf
Normal file
82
main.tf
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Copyright (c) HashiCorp, Inc.
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = "4.52.0"
|
||||
}
|
||||
random = {
|
||||
source = "hashicorp/random"
|
||||
version = "3.4.3"
|
||||
}
|
||||
}
|
||||
required_version = ">= 1.1.0"
|
||||
|
||||
cloud {
|
||||
organization = "REPLACE_ME"
|
||||
|
||||
workspaces {
|
||||
name = "learn-terraform-github-actions"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "aws" {
|
||||
region = "us-west-2"
|
||||
}
|
||||
|
||||
resource "random_pet" "sg" {}
|
||||
|
||||
data "aws_ami" "ubuntu" {
|
||||
most_recent = true
|
||||
|
||||
filter {
|
||||
name = "name"
|
||||
values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
|
||||
}
|
||||
|
||||
filter {
|
||||
name = "virtualization-type"
|
||||
values = ["hvm"]
|
||||
}
|
||||
|
||||
owners = ["099720109477"] # Canonical
|
||||
}
|
||||
|
||||
resource "aws_instance" "web" {
|
||||
ami = data.aws_ami.ubuntu.id
|
||||
instance_type = "t2.micro"
|
||||
vpc_security_group_ids = [aws_security_group.web-sg.id]
|
||||
|
||||
user_data = <<-EOF
|
||||
#!/bin/bash
|
||||
apt-get update
|
||||
apt-get install -y apache2
|
||||
sed -i -e 's/80/8080/' /etc/apache2/ports.conf
|
||||
echo "Hello World" > /var/www/html/index.html
|
||||
systemctl restart apache2
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "aws_security_group" "web-sg" {
|
||||
name = "${random_pet.sg.id}-sg"
|
||||
ingress {
|
||||
from_port = 8080
|
||||
to_port = 8080
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
// connectivity to ubuntu mirrors is required to run `apt-get update` and `apt-get install apache2`
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
output "web-address" {
|
||||
value = "${aws_instance.web.public_dns}:8080"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue