69 lines
No EOL
2.1 KiB
HCL
69 lines
No EOL
2.1 KiB
HCL
resource "aws_instance" "broadcast" {
|
|
count = var.broadcast_enabled ? 1 : 0
|
|
ami = "${data.aws_ami.image.id}"
|
|
instance_type = "t3.medium"
|
|
key_name = "${aws_key_pair.generated_key.key_name}"
|
|
security_groups = [aws_security_group.ssh.name, aws_security_group.broadcast.name, aws_security_group.node-exporter.name] # Add your own IP to this group
|
|
|
|
provisioner "local-exec" {
|
|
command = <<-EOT
|
|
echo '${tls_private_key.jamulus.private_key_openssh}' > ${aws_key_pair.generated_key.key_name} &&
|
|
chmod 600 ${aws_key_pair.generated_key.key_name} &&
|
|
sleep 30
|
|
EOT
|
|
}
|
|
|
|
provisioner "local-exec" {
|
|
command = <<-EOT
|
|
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -u ubuntu \
|
|
-i '${self.public_ip},' \
|
|
--private-key "${path.module}/${aws_key_pair.generated_key.key_name}" \
|
|
broadcast-install.yml --extra-vars 'ec2_id=${self.id}'
|
|
EOT
|
|
}
|
|
|
|
tags = {
|
|
Name = "broadcast.vereto.net"
|
|
}
|
|
}
|
|
|
|
resource "aws_security_group" "broadcast" {
|
|
name = "broadcast-port-access"
|
|
description = "Allow broadcast inbound traffic"
|
|
}
|
|
|
|
resource "aws_security_group_rule" "icecast" {
|
|
type = "ingress"
|
|
to_port = 8000
|
|
from_port = 8000
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
security_group_id = aws_security_group.broadcast.id
|
|
}
|
|
|
|
resource "aws_security_group_rule" "rtmp-1" {
|
|
type = "ingress"
|
|
to_port = 8554
|
|
from_port = 8554
|
|
protocol = "udp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
security_group_id = aws_security_group.broadcast.id
|
|
}
|
|
|
|
resource "aws_security_group_rule" "rtmp-2" {
|
|
type = "ingress"
|
|
to_port = 1935
|
|
from_port = 1935
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
security_group_id = aws_security_group.broadcast.id
|
|
}
|
|
|
|
resource "aws_security_group_rule" "rtmp-3" {
|
|
type = "ingress"
|
|
to_port = 8888
|
|
from_port = 8888
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
security_group_id = aws_security_group.broadcast.id
|
|
} |