0%

Fixed gitlab CI via ssh executor error

緣起

用 gitlab ci 也是一段時間,如果只是要進行一些簡單 test or deploy 之類的工作,用這個會比其他外部工具平台簡單一點,但是在版本不斷推進的同時會遇到了底下的問題

1
2
3
4
5
Running with gitlab-runner 10.5.0 (xxxxxxxx)
on ssh-xxxxxxxx (xxxxxxxxx)
Using SSH executor...
Running on xxxxxxxxxx via xxxxxxxxxx...
ERROR: Job failed: Process exited with: 1. Reason was: ()

看了很多文章,早期有一部分建議降版本到 gitlab-runner v1.8.6,的確是可以順利運行,但是到了 gitlab v10 之後似乎又炸裂了,於是這次好好想來解決一番。

解決方法

直接進入結論
用以下這行就可以解決

1
chsh username /bin/bash

就是讓這個 gitlab-runner 登入的帳號,預設要改成 bash (zsh 確定不行,其餘沒試過)

到這邊以為事件就這樣結束了,不過節外總會生枝

事件二

pipeline job 畫面又跑出這個東西

1
2
fatal: unable to access 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@git.example.com/group/project.git/': SSL certificate problem: self signed certificate
ERROR: Job failed: exit code 1

SSL certificate failing 似乎是 gitlab-runner 和 gitlab 到了某版之後出現的 bug,大致上建議的做法是先關掉 SSL 的驗證,等版本修復之後再打開了,解決方法是在 config.toml 裡面 runners 裡面加上這行

1
2
3
environment = ["GIT_SSL_NO_VERIFY=true"]
or
environment = ["GIT_SSL_NO_VERIFY=1"]

All set…