File tree Expand file tree Collapse file tree 5 files changed +126
-0
lines changed
Expand file tree Collapse file tree 5 files changed +126
-0
lines changed Original file line number Diff line number Diff line change 1+ .idea /
2+ terraform.tfstate *
3+ .terraform *
Original file line number Diff line number Diff line change 1+ # gitlab-runner
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments