Amazon Lightsail に GitLab Runner をワンライナーで構築する
はじめに
gitlab.com で CI/CD の検証をしているとき、SharedRunner が混雑していて待たされるときがあります。
Amazon Lightsail に GitLab Runner のインスタンスを立てて、自分のプロジェクトで使えるようにしてみました。
手順
以下のコマンドを実行します。
aws lightsail create-instances \ --instance-names runner \ --blueprint-id ubuntu_18_04 \ --bundle-id nano_2_0 \ --region ap-northeast-1 \ --availability-zone ap-northeast-1a \ --user-data 'curl -L https://get.docker.com | bash && \ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | bash && \ apt-get install -y -qq gitlab-runner && \ gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ --registration-token "XXXXXXXXXX" \ --name "lightsail" \ --executor "docker" \ --docker-image "alpine:latest" \ --tag-list "lightsail" \ --run-untagged \ --locked="false" '
--user-data
には、インスタンス作成時に実行するコマンドを指定できます。ここでは次の内容を指定しています。
- docker のインストール
- gitlab-runner のインストール
- gitlan-runner を gitlab.com に登録
作成する Lightsail インスタンスのスペックや、gitlab-runner の登録内容は適宜変えてよいでしょう。
5分ほど待つと、自分のプロジェクトで使えるようになります。
起動しない場合は、作成した Lightsail インスタンスにSSH接続し、次の場所のログを確認します。
/var/log/cloud-init-output.log
なお、 --user-data
に指定したスクリプトはすべてroot権限で実行されます。そのため sudo
をつける必要はありません。