這篇記錄主要關(guān)于使用Jenkins實(shí)現(xiàn)一個(gè)代碼管理在OSChina中的碼云(gitee)上的spring boot項(xiàng)目在阿里云ECS服務(wù)器中自動(dòng)部署和啟動(dòng)
本文涉及
- 阿里云的 CodePipeline嘗試
- Jenkins使用rpm方式安裝,初始化完成登錄后白屏情況的解決
-
Jenkins使用OSChina中的碼云(gitee)插件虽惭,新手會(huì)和說(shuō)明文檔一樣配置完認(rèn)證,但無(wú)法加載git倉(cāng)庫(kù)配置完APIV5 Token愁憔,但無(wú)法找到這個(gè)憑證的問(wèn)題
1. 阿里云CodePipeline
阿里云其實(shí)有一個(gè)開(kāi)放的CI功能CodePipeline;構(gòu)建免費(fèi),但只能創(chuàng)建五個(gè)項(xiàng)目;然后要配合阿里云的oss對(duì)象存儲(chǔ)服務(wù)使用
- 阿里云CodePipeline是基于Jenkins二次開(kāi)發(fā)的,感覺(jué)確實(shí)好用些场钉,并且配合天然適合服務(wù)器等用的是阿里云的中間件
- 中間必須要配置一個(gè)oss對(duì)象存儲(chǔ)塊,用于存放構(gòu)建出來(lái)的項(xiàng)目文件懈涛;這樣肯定是管理清晰逛万,但是當(dāng)時(shí)為啥不能選擇直接傳到ecs上…
-
最后沒(méi)有用成,因?yàn)榉?wù)器是centos7 我看支持沒(méi)有批钠,然后安裝服務(wù)器客戶端宇植,一直裝不上,社區(qū)也不活躍价匠,最后就放棄当纱,使用jenkins了
ECS版本支持不足
2. 使用rpm安裝jenkins呛每,初始化后登陸白屏
首先這是一個(gè)安全認(rèn)證的配置的問(wèn)題
網(wǎng)上說(shuō)找到config.xml這個(gè)文件修改就好踩窖,但是使用rpm自動(dòng)安裝查看jenkins安裝路徑后,知道war包在/usr/lib/jenkins/jenkin.war晨横、配置文件在其他安裝路徑里面都沒(méi)有找到
之后發(fā)現(xiàn)洋腮,jenkins工作目錄文件在~/.jenkins下
#查看jenkins安裝路徑
[[root@show]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[[root@show ]# cd ~/.jenkins
[[root@show .jenkins]# ll
total 164
-rw-r--r-- 1 root root 945 Mar 4 21:28 com.gitee.jenkins.connection.GiteeConnectionConfig.xml
-rw-r--r-- 1 root root 347 Mar 4 20:07 com.gitee.jenkins.trigger.GiteePushTrigger.xml
-rw-r--r-- 1 root root 1467 Mar 4 21:28 config.xml
-rw-r--r-- 1 root root 916 Mar 4 20:14 credentials.xml
-rw-r--r-- 1 root root 214 Mar 4 21:28 github-plugin-configuration.xml
-rw-r--r-- 1 root root 156 Mar 4 21:25 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 root root 250 Mar 4 21:28 hudson.plugins.build_timeout.operations.BuildStepOperation.xml
-rw-r--r-- 1 root root 1316 Mar 4 21:28 hudson.plugins.emailext.ExtendedEmailPublisher.xml
-rw-r--r-- 1 root root 352 Mar 4 21:28 hudson.plugins.git.GitSCM.xml
-rw-r--r-- 1 root root 370 Mar 4 18:01 hudson.plugins.git.GitTool.xml
-rw-r--r-- 1 root root 381 Mar 4 21:28 hudson.plugins.timestamper.TimestamperConfig.xml
-rw-r--r-- 1 root root 391 Mar 4 21:28 hudson.scm.SubversionSCM.xml
-rw-r--r-- 1 root root 188 Mar 4 21:28 hudson.tasks.Mailer.xml
-rw-r--r-- 1 root root 76 Mar 4 21:28 hudson.tasks.Shell.xml
-rw-r--r-- 1 root root 216 Mar 4 21:28 hudson.triggers.SCMTrigger.xml
-rw------- 1 root root 1712 Mar 4 17:43 identity.key.enc
-rw-r--r-- 1 root root 5 Mar 4 18:04 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r-- 1 root root 5 Mar 4 18:04 jenkins.install.UpgradeWizard.state
-rw-r--r-- 1 root root 159 Mar 4 21:28 jenkins.model.ArtifactManagerConfiguration.xml
-rw-r--r-- 1 root root 238 Mar 4 21:28 jenkins.model.JenkinsLocationConfiguration.xml
-rw-r--r-- 1 root root 171 Mar 4 17:43 jenkins.telemetry.Correlator.xml
drwxr-xr-x 3 root root 4096 Mar 4 21:29 jobs
drwxr-xr-x 3 root root 4096 Mar 4 17:43 logs
-rw-r--r-- 1 root root 907 Mar 4 21:25 nodeMonitors.xml
drwxr-xr-x 2 root root 4096 Mar 4 17:43 nodes
-rw-r--r-- 1 root root 291 Mar 4 21:28 org.jenkinsci.plugins.pipeline.modeldefinition.config.GlobalConfig.xml
-rw-r--r-- 1 root root 153 Mar 4 21:28 org.jenkinsci.plugins.workflow.flow.GlobalDefaultFlowDurabilityLevel.xml
-rw-r--r-- 1 root root 219 Mar 4 21:28 org.jenkinsci.plugins.workflow.libs.GlobalLibraries.xml
-rw-r--r-- 1 root root 236 Mar 4 21:28 org.jenkins.plugins.lockableresources.LockableResourcesManager.xml
drwxr-xr-x 77 root root 12288 Mar 4 20:07 plugins
-rw-r--r-- 1 root root 129 Mar 4 21:25 queue.xml.bak
-rw-r--r-- 1 root root 369 Mar 4 18:08 scriptApproval.xml
-rw-r--r-- 1 root root 64 Mar 4 17:43 secret.key
-rw-r--r-- 1 root root 0 Mar 4 17:43 secret.key.not-so-secret
drwx------ 4 root root 4096 Mar 4 20:19 secrets
drwxr-xr-x 2 root root 4096 Mar 4 18:01 updates
drwxr-xr-x 2 root root 4096 Mar 4 17:43 userContent
drwxr-xr-x 3 root root 4096 Mar 4 18:03 users
drwxr-xr-x 11 root root 4096 Mar 4 17:43 war
drwxr-xr-x 2 root root 4096 Mar 4 18:01 workflow-libs
[root@show .jenkins]#
#把下面標(biāo)簽后面的二個(gè)節(jié)點(diǎn)修改成下面代碼段的配置:大致是第7行
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None" />
3. gitee jenkins說(shuō)明文檔
有提供文檔確實(shí)是不錯(cuò)的,但是里面寫(xiě)的有點(diǎn)不太適合新手
我剛開(kāi)始思路比較簡(jiǎn)單手形,我照著你的配啥供,后面肯定同,
可以我一步一步的跟著做库糠,后面到添加git倉(cāng)庫(kù)的時(shí)候一直提示異常:
Failed to connect to repository : Command "git ls-remote -h https://gitee.com/shixinpeng/xxxx.git HEAD" returned status code 128:
stdout:
stderr: remote: ?[31mIncorrect username or password ( access token )?[0m
fatal: Authentication failed for 'https://gitee.com/shixinpeng/xxxx.git/'
Failed to connect to repository : Command "git ls-remote -h https://gitee.com/shixinpeng/xxxxgit HEAD" returned status code 128:
stdout:
stderr: remote: ?[31mIncorrect username or password ( access token )?[0m
fatal: Authentication failed for 'https://gitee.com/shixinpeng/xxxx.git/'
當(dāng)時(shí)我就在想伙狐,配置云鏈接已經(jīng)配了啊
用的是token授權(quán),gitee重新實(shí)現(xiàn)了git授權(quán)么瞬欧?我記得git使用的一般是賬號(hào)密碼或者是ssh密鑰的形式贷屎;后來(lái)就看論壇也有人提這個(gè)問(wèn)題:
直到看到這個(gè)
配的那個(gè)token不是用來(lái)登錄git倉(cāng)庫(kù)的
源碼管理的憑據(jù)和 api的憑據(jù)不是一樣的,apiv5的憑據(jù)是插件調(diào)用碼云接口使用的艘虎,而源碼管理的憑據(jù)是jenkins git插件要求的唉侄,這個(gè)憑據(jù)格式是用戶名密碼,如果用的是http的協(xié)議需要在憑據(jù)管理中再配置一個(gè)碼云用戶名密碼的憑據(jù)野建,這樣才能選上属划,如果是ssh 的話需要jenkins的機(jī)器的ssh key 加入到碼云賬號(hào)中才行
剩下要做的就是在憑證中去把專門(mén)用戶git倉(cāng)庫(kù)代碼拉取的信息填了
添加完賬號(hào)密碼就可以在git中使用了