DEV Community

Jane
Jane

Posted on

A simple script to set up GitLab runner on AWS EC2 instance

Pre-requisite:

  • AWS EC2 instance - in this case, I have RHEL9 as the base OS (could so work for CentOS)
  • GitLab's runner token: export RUNNER_TOKEN="your-runner-token" - you can get it from your GitLab's project

Steps to set up the runner:

  • Create a file: touch set-up-runner.sh (copy code below to set-up-runner.sh)
  • Then in the same path of your set-up-runner.sh, on your terminal, run set +x set-up-runner.sh: this is to set execution permission for your script
  • Finally, run ./set-up-runner.sh
#!/bin/bash

set -euxo pipefail

#Download and install gitlab-runner
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
sudo yum install -y gitlab-runner

#Add docker repository to RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache

#Check for existing docker, podman before installing docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

#Install and enable docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

#Register gitlab runner
sudo gitlab-runner register \
    --non-interactive \
    --url "https://gitlab.com/" \
    --registration-token $RUNNER_TOKEN \
    --description "gitlab-runner-ec2" \
    --executor "docker" \
    --docker-image alpine:latest \
     --tag-list "container-builds"

#Start service
sudo gitlab-runner start
sudo gitlab-runner verify
Enter fullscreen mode Exit fullscreen mode

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more