1.docker鏡像運行jenkins
安裝詳細步驟參考官方文檔https://jenkins.io/zh/doc/book/installing/
docker run \\\\
-u root \\\\
--rm \\\\
-d \\\\
-p 8080:8080 \\\\
-p 50000:50000 \\\\
-v jenkins-data:/var/jenkins_home \\\\
-v /var/run/docker.sock:/var/run/docker.sock \\\\
jenkinsci/blueocean
docker提示沒有開啟轉發解決方法
vim /usr/lib/sysctl.d/00-system.conf
net.ipv4.ip_forward=1 #新添加
重啟network
瀏覽器訪問8080端口
如果界面提示Jenkins正在啟動,請稍后…或者提示
Please wait while Jenkins is getting ready to work…
解決方法:
需要你進入jenkins的工作目錄,打開 hudson.model.UpdateCenter.xml 把 http://updates.jenkins-ci.org/update-center.json 改成 http://mirror.xmission.com/jenkins/updates/update-center.json
Jenkins對離線和插件安裝慢解決方法
cd /var/jenkins_home/updates/
sed -i \\\'s/http:\\\\/\\\\/updates.jenkins-ci.org\\\\/download/https:\\\\/\\\\/mirrors.tuna.tsinghua.edu.cn\\\\/jenkins/g\\\' default.json && \\\\
sed -i \\\'s/http:\\\\/\\\\/www.google.com/https:\\\\/\\\\/www.baidu.com/g\\\' default.json
時間不一致問題解決辦法
Docker 容器時間跟主機時間保持同步
docker cp /usr/share/zoneinfo/Asia/Shanghai jenkins02:/etc/localtime
Jenkins系統上的時間不正確問題
很簡單,點擊系統管理,選擇執行腳本命令:
打開 【系統管理】->【腳本命令行】運行下面的命令
System.setProperty(\\\'org.apache.commons.jelly.tags.fmt.timeZone\\\', \\\'Asia/Shanghai\\\')
2.docker運行gitlab
先創建需要掛載的三個目錄:配置 (etc) 、 日志 (log) 、數據 (data)
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data
運行gitlab
docker container run -it \\\\
-p 8090:80 -p 8443:443 -p 8022:22 \\\\
--restart unless-stopped \\\\
-v /mnt/gitlab/etc:/etc/gitlab \\\\
-v /mnt/gitlab/log:/var/log/gitlab \\\\
-v /mnt/gitlab/data:/var/opt/gitlab \\\\
--name gitlab gitlab/gitlab-ce:latest
進入容器 修改配置
把external_url改成部署機器的域名或者IP地址
vim /etc/gitlab/gitlab.rb
external_url \\\'http://192.168.100.107\\\'
gitlab_rails[\\\'gitlab_ssh_host\\\'] = \\\'192.168.100.107\\\'
gitlab_rails[\\\'gitlab_shell_ssh_port\\\'] = 8022
gitlab_rails[\\\'gitlab_shell_git_timeout\\\'] = 800
重啟容器
docker restart gitlab
修改克隆時的端口,默認是80,但我們映射成了8090,因此需要修改
每次重啟容器 都需要執行者一步
進入容器執行
root@6129313605ed:/# cd /var/opt/gitlab/gitlab-rails/etc/
vim gitlab.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 192.168.100.107
port: 8090 #此處修改為8090
https: false
gitlab-ctl restart #重啟
常用的幾個Gitlab命令
# 重新應用gitlab的配置
gitlab-ctl reconfigure
# 重啟gitlab服務
gitlab-ctl restart
# 查看gitlab運行狀態
gitlab-ctl status
#停止gitlab服務
gitlab-ctl stop
# 查看gitlab運行日志
gitlab-ctl tail
# 停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
二、jenkins應用
1.jenkins權限管理
安裝插件:
啟用插件
此時再點擊系統管理,會多出一項:Manage and Assign Roles
創建一個用戶:deva
點擊
使用Manage and Assign Roles 管理分配用戶
管理用戶
分配用戶
這樣 deva用戶 就只能看到dev- 的job了,并且 只有執行job的權限。
2.jenkins執行腳本
在節點上寫一個測試腳本,并給腳本賦予執行權限
[root@vm2 ~]# cat test.sh
#!/bin/bash
echo lingxd
echo $1
創建自由風格job
參數化構建
點擊構建 選擇參數
3.pipeline 初探
創建job
配置
腳本內容
node {
stage(\\\'Code PUll\\\'){
echo Code PUll
git credentialsId: \\\'ee5eb9ea-39a9-48c3-9b02-0b6985ed092a\\\', url: \\\'http://192.168.100.117:8090/root/bk.git\\\'
}
stage(\\\'Code Build\\\'){
echo code build
sh \\\'/root/mvn/apache-maven-3.6.3/bin/mvn clean compile\\\'
}
stage(\\\'Unit Test\\\'){
echo unit test
}
stage(\\\'是否部署\\\'){
input \\\'部署測試環境\\\'
}
stage(\\\'Deploy Test ENV\\\'){
sh \\\'/root/test.sh 123\\\'
}
}
4.Jenkins和gitlab集成自動觸發
jenkins插件管理安裝GitLab Plugin插件
去gitlab生成token
系統管理–>系統配置 配置gitlab
創建pipeline 類型job
登錄gitlab配置項目集成,添加webhook
先點擊進入你要配置的項目,找到設置,點擊集成
上面要填的url和token,看上一步驟
如果創建webhook失敗,提示不可以本地網絡認證,需要在設置里面設置下。
這樣 就實現了dev分支只要有代碼提交,就會自動觸發jenkins的job
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn