-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathmain.tf
More file actions
91 lines (72 loc) · 2.76 KB
/
main.tf
File metadata and controls
91 lines (72 loc) · 2.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# # Creation of VM in AWS
# - Security group
resource "aws_security_group" "Allow_SSH" {
name = "allow_SSH1"
description = "Allow SSH inbound traffic"
# - INBOUND
ingress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
# - OUTBOUND RULES
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
# - key pair
resource "aws_key_pair" "deployer1" {
key_name = "deployer-key11"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDD8gTEP0wdqJnHkVDc7IMzFygpsibTemZylZvk4gcGiaa+YX8/VpUEyOrqYOg/8OrOAsdQCpPcc8J3AhUBSvgjeKc7sJZ0N8v+AOKnVQDni/y+9mWD6oGOszzH6DVfoHOy1HRZAbF6n+xFkk0DeisSJ3FsGVQK/J5rYgXVCBJii34mL0+DOBogxLva8tDcLgWLz+qxs8QcH4hgrHkdT8whBKfKcypICGS4U/WgXFW5M3pN4OynSzeqJ9gXn0Fbq50J/t6Cpnr6wqlzRzocAMXnlgrchYZWZJgTL3W8zrg1Fx7RBy3fAbEyWoyrkB9cFIPSkmiUZG9xUhirI4MbdgHVNlkp7xU0V6KfCRlTNE+xzWlbPSga7kjlqiizjDoR7xExKNLbNthB6nlNIEwX+FljtgrTqMV2w6k8H3xfrhdG0993EnMMwdPVmltEjJeZ+l3BETUcibKGFFc5iyR99W7NKhriH5d6OvbXev7JmbqsXrwn8rnu3auDGJs7YaIwzmk= varunmanikoutlo@ip-172-31-17-206"
}
resource "aws_instance" "amzn-linux" {
ami = "ami-0c02fb55956c7d316"
instance_type = "t3.micro"
key_name = aws_key_pair.deployer1.key_name
vpc_security_group_ids = ["${aws_security_group.allow_SSH.id}"]
tags = {
"Name" = "Linux-Node"
"ENV" = "Dev"
}
depends_on = [aws_key_pair.deployer1]
}
####### Ubuntu VM #####
resource "aws_instance" "ubuntu" {
ami = "ami-04505e74c0741db8d"
instance_type = "t3.micro"
key_name = aws_key_pair.deployer1.key_name
vpc_security_group_ids = ["${aws_security_group.allow_SSH.id}"]
tags = {
"Name" = "UBUNTU-Node"
"ENV" = "Dev"
}
# Type of connection to be established
connection {
type = "ssh"
user = "ubuntu"
private_key = file("./deployer")
host = self.public_ip
}
# Remotely execute commands to install Java, Python, Jenkins
provisioner "remote-exec" {
inline = [
"sudo apt update && upgrade",
"sudo apt install -y python3.8",
"wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -",
"sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'",
"sudo apt-get update",
"sudo apt-get install -y openjdk-8-jre",
"sudo apt-get install -y jenkins",
"sudo apt-get install -y docker docker.io",
"sudo chmod 777 /var/run/docker.sock",
"sudo cat /var/lib/jenkins/secrets/initialAdminPassword",
]
}
depends_on = [aws_key_pair.deployer1]
}