---
# System prepended metadata

title: 配置雲端Linux GitLab Ci/Cd Runner
tags: [Gitlab, CI/CD]

---

---
title: 配置雲端Linux GitLab Ci/Cd Runner
---
###### tags: `CI/CD` `Gitlab`

# 配置雲端Linux GitLab Ci/Cd Runner

1. AWS EC2 啟動一台Linux
2. 連線至Linux
3. sudo su
4. yum install docker
5. systemctl enable docker # 开机自动启动docker
6. systemctl start docker # 启动docker
7. systemctl restart docker # 重启dokcer
8. docker volume create gitlab-runner-config
9. docker run -d --name gitlab-runner --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v gitlab-runner-config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest
10. docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
11. 進入 gitlab/setting/runner
12. 按順序複製貼上左側的 URL,Token,敘述,Runner Tag
13. 完成並測試


# 其他說明

主要參考文章：https://docs.gitlab.com/runner/install/docker.html

#### 文章模糊說明
"第七步：如果您docker以執行者身份輸入，則係統會要求您提供默認圖片，以用於未在中定義一個的項目.gitlab-ci.yml。"
意指 使用 ： "azul/zulu-openjdk-alpine:11" 或者 "docker:18" 這類
預設的docker image

#### 再加入.gitlab-ci.yml
(範例可參考obp-service, holiday-service)

### 心得
相當意外的是，某台主機註冊為Runner以後，即使改變了IP、重新開機，仍然能夠繼續作為Runner運作。

個人猜測背後運作機制，是在註冊成功時，主機的Runner會登記你Gitlab帳號、適用專案的範圍，未來在重新連上網路時會自動向Gitlab登錄新的聯繫Ip，以達到作為Runner被驅動的機制。

