『高階篇』docker之gitlab和jenkins安裝(42)
之前說過各家公司的CICD落地方案不同,五花八門,之前說過java的微服務,k8s的叢集環境,在這位基礎,包括程式碼的編譯,程式碼的提交,單元測試服務的釋出,關鍵的節點自動化起來。原始碼:https://github.com/limingios/msA-docker/vagrant master分支CICD
Jenkins
java編寫的開源的工具,jenkins比較靈活,可以通過外掛的方式,新增所需要的外掛,除了擴充套件性還支援多臺機器的分散式構建,jenkins的使用者群很龐大,可以說是目前最主流的部署工具。
梳理流程git+jenkins+k8s
- 客戶端發起程式碼push到gitlab上
- gitlab配置了webhook的東西,它可以出發jenkins的構建
- jenkins做的事情就比較多
3.1 構建程式碼
3.2 靜態分析
3.3 單元測試
3.4 build映象
3.5 推送push映象倉庫
3.6 呼叫k8s的api - k8s拉取映象倉庫的進行部署。
GitLab安裝(101這臺主機)
原始碼中server01
- 下載映象
$ docker pull gitlab/gitlab-ce:latest
- 執行GitLab容器
使用docker命令執行容器,注意修改hostname為自己喜歡的名字,-v部分掛載目錄要修改為自己的目錄。
埠對映這裡使用的都是安全埠,如果大家的環境沒有埠限制或衝突可以使用與容器同埠,如:-p 443:443 -p 80:80 -p 22:22
* 生成啟動檔案 – start.sh
cat <<EOF > start.sh #!/bin/bash HOST_NAME=gitlab.idig8.com GITLAB_DIR=`pwd` docker stop gitlab docker rm gitlab docker run -d \\ --hostname \${HOST_NAME} \\ -p 8443:443 -p 8080:80 -p 2222:22 \\ --name gitlab \\ -v \${GITLAB_DIR}/config:/etc/gitlab \\ -v \${GITLAB_DIR}/logs:/var/log/gitlab \\ -v \${GITLAB_DIR}/data:/var/opt/gitlab \\ gitlab/gitlab-ce:latest EOF
- 執行start.sh 啟動gitlab
sh start.sh
-
配置環境
> 修改host檔案,使域名可以正常解析
> 192.168.66.101 gitlab.idig8.com
-
修改ssh埠(如果主機埠使用的不是22埠)
> 修改檔案:${GITLAB_DIR}/config/gitlab.rb
> 找到這一行:# gitlab_rails[‘gitlab_shell_ssh_port’] = 22
> 把22修改為你的宿主機埠(這裡是2222)。然後將註釋去掉。
- 重新啟動容器
sh start.sh
GitLab試用
地址:http://gitlab.idig8.com:8080/
-
設定管理員密碼
>首先根據提示輸入管理員密碼,這個密碼是管理員使用者的密碼。對應的使用者名稱是root,用於以管理員身份登入Gitlab。
-
建立賬號
設定好密碼後去註冊一個普通賬號
-
建立專案
註冊成功後會跳到首頁,我們建立一個專案,名字大家隨意
-
新增ssh key
>專案建好了,我們加一個ssh key,以後本地pull/push就簡單啦
首先去到新增ssh key的頁面
然後拿到我們的sshkey 貼到框框裡就行啦
怎麼拿到呢?看下面:
#先看看是不是已經有啦,如果有內容就直接copy貼過去就行啦 cat ~/.ssh/id_rsa.pub #如果上一步沒有這個檔案 我們就建立一個,執行下面命令(郵箱改成自己的哦),一路回車就好了 ssh-keygen -t rsa -C "[email protected]" cat ~/.ssh/id_rsa.pub
PS:目的是本地push的時候沒有許可權問題,方便直接提交程式碼到gitlab上。
-
測試一下
點開我們剛建立的專案,複製ssh的地址
添加個檔案試試(我的專案叫microservice)
#clone程式碼 cd existing_folder git init git remote add origin ssh://[email protected]:2222/liming/microservice.git git add . git commit -m "Initial commit" git push -u origin master
Jenkins安裝(102這臺主機)
原始碼中server02
- 下載映象
docker pull stephenreed/jenkins-java8-maven-git
- 執行Jenkins容器
使用docker命令執行容器,注意修改hostname為自己喜歡的名字,-v部分掛載目錄要修改為自己的目錄。
埠對映這裡使用的都是安全埠,如果大家的環境沒有埠限制或衝突可以使用與容器同埠,如:-p 443:443 -p 80:80 -p 22:22
* 生成啟動檔案 – startJenkins.sh
cat <<EOF > startJenkins.sh #!/bin/bash HOST_NAME=jenkins.idig8.com GITLAB_DIR=/root docker stop jenkins docker rm jenkins docker run -d \ --hostname ${HOST_NAME} \ -p 8888:8080 -p 50000:50000 \ --name jenkins \ -v ${GITLAB_DIR}/jenkins/:/etc/localtime:ro \ -P stephenreed/jenkins-java8-maven-git EOF
- 執行startJenkins.sh 啟動gitlab
sh startJenkins.sh
-
配置環境
> 修改host檔案,使域名可以正常解析
> 192.168.66.102 jenkins.idig8.com
- 檢視初始化祕鑰
docker ps docker exec -it f3111725cd64 /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword
頁面輸入剛才的祕鑰
- 選擇外掛
其他預設,Pipelines全選
涉及到跨域,需要關閉,系統管理-全域性安全
PS:可能有的外掛安裝不了,不要慌老鐵,進入到jenkins的管理頁面會提示你更新jenkins更新下,然後外掛又可以自動下載安裝完畢了。
ofollow,noindex" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename=https://idig8.com/2018/11/20/987/">百度未收錄
>>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>>原文連結地址:上一篇:已是最新文章