Ubuntu

Ubuntu 金鑰登入

參考連結

建立本機上金鑰

ssh-keygen

將金鑰送到目標遠端

ssh USER@HOST 'mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

設定語系

參考連結 檢查目前語系

locale -a

安裝相對應的語系

 sudo locale-gen zh_TW zh_TW.UTF-8 zh_CN.UTF-8 en_US.UTF-8

修改系統全域設定

$ sudo vim /etc/default/locale
LC_CTYPE="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_TIME="en_US.UTF-8"

登出再登入之後,就能看見更新

更新Ubuntu

sudo apt-get update;sudo apt-get upgrade;

安裝Docker

docker官網教學

  1. 更新ubuntu ATP
    sudo apt-get install apt-transport-https ca-certificates
    
  2. 增加GPG Key

    sudo apt-key adv \
                --keyserver hkp://ha.pool.sks-keyservers.net:80 \
                --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    
  3. 因為選用Ubuntu 16.10 但目前還沒有,所以使用16.04的Link

    echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
    sudo apt-get update
    

3.確認apt裡面有沒有docker image, 有了之後並升級

apt-cache policy docker-engine
apt-get upgrade

4.更新apt-get repository sites

sudo apt-get update

5.安裝推薦的套件

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

6.安裝docker

sudo apt-get install docker-engine

7.啟動docker服務

sudo service docker start

8.測試成功

sudo docker run hello-world

安裝Gitlab

安裝參考連結

export DOCKER_BASE=/home/aha/docker

Postgresql

  1. -name docker name
  2. -env 設定給gitlab使用
  3. -volume: 將本機目錄對應到 docker的 /var/lib/postgresql, 主要用來存放資料庫資料使用
docker stop gitlab-postgresql;docker rm gitlab-postgresql
docker run --name gitlab-postgresql -d \
    --env 'DB_NAME=gitlabhq_production' \
    --env 'DB_USER=gitlab' --env 'DB_PASS=password' \
    --env 'DB_EXTENSION=pg_trgm' \
    --volume $DOCKER_BASE/gitlab/postgresql:/var/lib/postgresql \
    sameersbn/postgresql:9.5-3

Redis

  1. -name docker name
  2. -volume: 將本機目錄對應到 docker的 /var/lib/redis, 主要用來存放資料庫資料使用
    docker stop gitlab-redis;docker rm gitlab-redis
    docker run --name gitlab-redis -d \
     --volume $DOCKER_BASE/gitlab/redis:/var/lib/redis \
     sameersbn/redis:latest
    

Gitlab

  1. -name : gitlab
  2. -link : 連結gitlab-postgresql 與 gitlab-redis
  3. -publish: 外部10022轉到本機22, 外部10080轉到80
  4. -env: 設定Gitlab 對外PORT是10080, 與 SSH 是用10022
  5. -volume: 將本機目錄對應到 docker的 /home/git/data, 主要用來存放使用者資料使用
  6. GITLAB_HOST: Host機器的IP, Gitlab Repository的位置
  7. GITLAB_CI_HOST: 給CI去找Gitlab的位置
sudo docker stop gitlab;sudo docker rm gitlab;
docker run --name gitlab -d \
    --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
    --publish 10022:22 --publish 10080:80 \
    --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
    --env 'GITLAB_HOST=http://192.168.2.47' \
    --env 'GITLAB_CI_HOST=http://172.17.0.4' \
    --env 'GITLAB_SECRETS_DB_KEY_BASE=F7RgcWhCXpVVxgXPLTsvJtL7FmWRbP3dPRg9xbLkxH7fhW7fbPkvxvp47kgTqtCp' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=zVkJfbKLtRPTsRLK3R3gCVcNdNLKFfTxk7zzLcxsdXVLpCWzzchnW3qRt73mJV7g' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=M9kdnj4mrzvbHm4cHFw3dftgPh3mTR4pbWJRRCJpcLgMHrdXKWppHFkKXKCVTFx9' \
    --volume $DOCKER_BASE/gitlab/gitlab:/home/git/data \
    sameersbn/gitlab:8.13.6

安裝GitRunner

  1. -name : gitlab-runner docker的名稱
  2. -restart: 當docker重啟的時候,自己也會啟動
  3. v(-volumn) : 設定與docker.sock互動的程式, 這樣GitRunner才能在docker模式下,把系統的docker給叫出來
  4. v(-volumn) : 將本機目錄對應到 runner上的/etc/gitlab-runner,主要是設定檔
sudo docker stop gitlab-runner;sudo docker rm gitlab-runner;
docker run -d --name gitlab-runner --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $DOCKER_BASE/gitlab-runner/config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest

設定Gitlab CI

確認gitlab的Bridge IP位置, 不是Virtual Box給定的

docker inspect gitlab|grep 'IPAddress'
  1. 註冊

    docker exec -it gitlab-runner gitlab-runner register
    
  2. 移除已經exited docker

    sudo docker rm $(sudo docker ps -q -f status=exited)
    
  3. 建立共用的runner

    1. 切換Root
    2. 不要勾選docker 讓大家勾選的專案被衝突

設定gitlab ci的設定檔

參考文件

CD

參考文件 持續CI的範例 參考範例

results matching ""

    No results matching ""