Skip to content

Commit ff86962

Browse files
committed
Initial commit
0 parents  commit ff86962

File tree

5 files changed

+126
-0
lines changed

5 files changed

+126
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea/
2+
terraform.tfstate*
3+
.terraform*

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# gitlab-runner

main.tf

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
resource "aws_key_pair" "ansible" {
2+
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDMI/oUO7c6QPEUhjQktSRnLDp6VX1IRBzQH9CB4l30C9BBKSS2rhLBkEYopJQkKbFeWbwxEMPL/QWdsOAQnsCTujGAbUMZ8Yepe6kk22nOsvIjsfO+yxptJOUxX3xFmWp2aDr/A/wxAopr80vsI9QpaP86DYSZUimlUxoXS2JjPHbpPC2UICj7FVLqmM4BjxTJUuFoy4664htdtuNNTO5X98DRWfHsZj9mzMeKcxgf7sV1t8el3lC0Yi2qoOs+K7iSlA81YFhc9r7rs+BRZSDrBykiu5ImFdasfjaG7q2eUG0ypO22FT8FPIz7c3CZTTX/I+W2BBWFQu3YlCjUKFuxGpL6ApNQMNsvzvKsSdJMsVFKREgMkRR9JmbTz52qEdc2zuSROOrH0Ov/NVko4Daj+B3seUeCqZTM4Uy7/aP+k/ZsHijOFs4X3u69gdN8CH8/BVUefknfNksc317E40F3WeWfMmyyBv0tKKc8OffFu0tdddG2BKXm/f4mQM7fD5s= ansible"
3+
key_name = "ansible"
4+
5+
tags = {
6+
Name = "ansible"
7+
ManagedBy = "Terraform"
8+
}
9+
}
10+
11+
resource "aws_instance" "terraform-gitlab-docker-runner" {
12+
ami = "ami-074cc9cf7a6bfbd02"
13+
instance_type = "c6g.medium"
14+
key_name = aws_key_pair.ansible.id
15+
vpc_security_group_ids = ["sg-0ecbf0cc9789639b8"]
16+
subnet_id = "subnet-0add22dd44185ea41"
17+
associate_public_ip_address = false
18+
19+
provisioner "local-exec" {
20+
command = "ansible-playbook playbooks/gitlab_runner.yaml -i ${self.private_ip}, -u ubuntu --private-key '/Users/rajattomar/.ssh/ansible/id_rsa' --extra-vars 'ip=${self.private_ip}'"
21+
}
22+
23+
tags = {
24+
Name = "gitlab-docker-runner"
25+
ManagedBy = "Terraform"
26+
}
27+
}

playbooks/gitlab_runner.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
- hosts: all
2+
gather_facts: no
3+
vars:
4+
ansible_host_key_checking: false
5+
tasks:
6+
- local_action: wait_for port=22 host="{{ ip }}" search_regex=OpenSSH delay=10
7+
8+
- name: Update & Upgrade apt packages
9+
become: true
10+
become_method: sudo
11+
apt:
12+
upgrade: yes
13+
update_cache: yes
14+
cache_valid_time: 86400
15+
16+
- name: Install Docker
17+
become: true
18+
become_method: sudo
19+
shell: |
20+
apt-get install -y \
21+
apt-transport-https \
22+
ca-certificates \
23+
curl \
24+
gnupg \
25+
lsb-release
26+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
27+
echo \
28+
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
29+
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
30+
apt-get update
31+
apt-get install -y docker-ce docker-ce-cli containerd.io
32+
tags:
33+
- docker_install
34+
35+
- name: Start Docker
36+
become: true
37+
become_method: sudo
38+
service:
39+
name: docker
40+
state: started
41+
enabled: yes
42+
tags:
43+
- docker_start
44+
45+
- name: Download Gitlab Runner
46+
become: true
47+
become_method: sudo
48+
get_url:
49+
url: https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64
50+
dest: /usr/local/bin/gitlab-runner
51+
mode: '0755'
52+
53+
- name: Create Gitlab Runner User
54+
become: true
55+
become_method: sudo
56+
user:
57+
name: gitlab-runner
58+
shell: /bin/bash
59+
state: present
60+
createhome: yes
61+
62+
- name: Install Gitlab Runner
63+
become: true
64+
become_method: sudo
65+
command: gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
66+
args:
67+
creates: /etc/gitlab-runner
68+
69+
- name: Start Gitlab Runner
70+
become: true
71+
become_method: sudo
72+
service:
73+
name: gitlab-runner
74+
state: started
75+
enabled: yes
76+
77+
- name: Register Gitlab Runner
78+
become: true
79+
become_method: sudo
80+
command: gitlab-runner register --non-interactive --url https://gitlab-2.gaussb.io/ --registration-token GR1348941UxXw-BtKd_j7hCjrrb51 --executor docker --docker-image alpine:latest --description "Docker Runner" --tag-list "docker,aws" --run-untagged --locked="false"
81+
register: register_runner

provider.tf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
terraform {
2+
required_providers {
3+
aws = {
4+
source = "hashicorp/aws"
5+
version = "~> 4.49.0"
6+
}
7+
}
8+
9+
required_version = "~> 1.3.0"
10+
}
11+
12+
provider "aws" {
13+
region = "ap-south-1"
14+
}

0 commit comments

Comments
 (0)