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

Top comments (0)