Skip to content

Commit a6ca4e2

Browse files
Merge pull request StubbornJava#66 from StubbornJava/f/jenkins
F/jenkins
2 parents acd0f68 + 8303396 commit a6ca4e2

File tree

7 files changed

+95
-0
lines changed

7 files changed

+95
-0
lines changed

terraform/global.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
region = "us-east-1"
2+
13
amis = {
24
amazon-linux-2017-09 = "ami-8c1be5f6"
35
}

terraform/iam/iam.tf

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
variable "region" {}
2+
3+
provider "aws" {
4+
region = "${var.region}"
5+
}
6+
7+
resource "aws_iam_policy" "jenkins-s3" {
8+
name = "jenkins-s3"
9+
policy = <<EOF
10+
{
11+
"Version": "2012-10-17",
12+
"Statement": [
13+
{
14+
"Effect": "Allow",
15+
"Action": [
16+
"s3:PutObject"
17+
],
18+
"Resource": [
19+
"arn:aws:s3:::stubbornjava-jenkins/*"
20+
]
21+
}
22+
]
23+
}
24+
EOF
25+
}
26+
27+
resource "aws_iam_role" "jenkins" {
28+
name = "jenkins"
29+
30+
assume_role_policy = <<EOF
31+
{
32+
"Version": "2012-10-17",
33+
"Statement": [
34+
{
35+
"Action": "sts:AssumeRole",
36+
"Principal": {
37+
"Service": "ec2.amazonaws.com"
38+
},
39+
"Effect": "Allow",
40+
"Sid": ""
41+
}
42+
]
43+
}
44+
EOF
45+
}
46+
47+
resource "aws_iam_instance_profile" "jenkins" {
48+
name = "jenkins"
49+
role = "${aws_iam_role.jenkins.name}"
50+
}
51+
52+
resource "aws_iam_role_policy_attachment" "jenkins-s3" {
53+
role = "${aws_iam_role.jenkins.name}"
54+
policy_arn = "${aws_iam_policy.jenkins-s3.arn}"
55+
}

terraform/iam/remote_state.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
terraform {
2+
backend "s3" {
3+
bucket = "stubbornjava-terraform"
4+
key = "iam/terraform.tfstate"
5+
region = "us-east-1"
6+
}
7+
}

terraform/s3/remote_state.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
terraform {
2+
backend "s3" {
3+
bucket = "stubbornjava-terraform"
4+
key = "s3/terraform.tfstate"
5+
region = "us-east-1"
6+
}
7+
}

terraform/s3/s3.tf

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
variable "region" {}
2+
3+
provider "aws" {
4+
region = "${var.region}"
5+
}
6+
7+
resource "aws_s3_bucket" "stubbornjava-terraform" {
8+
bucket = "stubbornjava-terraform"
9+
acl = "private"
10+
11+
versioning {
12+
enabled = true
13+
}
14+
}
15+
16+
resource "aws_s3_bucket" "stubbornjava-jenkins" {
17+
bucket = "stubbornjava-jenkins"
18+
acl = "private"
19+
20+
versioning {
21+
enabled = true
22+
}
23+
}

terraform/stubbornjava.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ resource "aws_instance" "ci" {
1313
count = 1
1414
ami = "${var.amis["amazon-linux-2017-09"]}"
1515
disable_api_termination = true
16+
iam_instance_profile = "jenkins"
1617
instance_type = "t2.micro"
1718
monitoring = false
1819
subnet_id = "${element(data.aws_subnet_ids.public.ids, count.index)}"

0 commit comments

Comments
 (0)