Jenkins-gitee的插件说明踩坑

这篇记录主要关于使用Jenkins实现一个代码管理在OSChina中的码云(gitee)上的spring boot项目在阿里云ECS服务器中自动部署和启动

本文涉及

  1. 阿里云的 CodePipeline尝试
  2. Jenkins使用rpm方式安装,初始化完成登录后白屏情况的解决
  3. Jenkins使用OSChina中的码云(gitee)插件,新手会和说明文档一样配置完认证,但无法加载git仓库 《Jenkins-gitee的插件说明踩坑》 配置完APIV5 Token,但无法找到这个凭证的问题

1. 阿里云CodePipeline

阿里云其实有一个开放的CI功能CodePipeline;构建免费,但只能创建五个项目;然后要配合阿里云的oss对象存储服务使用

《Jenkins-gitee的插件说明踩坑》 阿里云CodePipeline控制面板

  • 阿里云CodePipeline是基于Jenkins二次开发的,感觉确实好用些,并且配合天然适合服务器等用的是阿里云的中间件
  • 中间必须要配置一个oss对象存储块,用于存放构建出来的项目文件;这样肯定是管理清晰,但是当时为啥不能选择直接传到ecs上…
  • 最后没有用成,因为服务器是centos7 我看支持没有,然后安装服务器客户端,一直装不上,社区也不活跃,最后就放弃,使用jenkins了

    《Jenkins-gitee的插件说明踩坑》 ECS版本支持不足

2. 使用rpm安装jenkins,初始化后登陆白屏

首先这是一个安全认证的配置的问题
网上说找到config.xml这个文件修改就好,但是使用rpm自动安装查看jenkins安装路径后,知道war包在/usr/lib/jenkins/jenkin.war、配置文件在其他安装路径里面都没有找到

《Jenkins-gitee的插件说明踩坑》 rpm安装路径

之后发现,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]# 

《Jenkins-gitee的插件说明踩坑》 找到配置文件

#把下面标签后面的二个节点修改成下面代码段的配置:大致是第7行
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None" />

《Jenkins-gitee的插件说明踩坑》 修改标签

3. gitee jenkins说明文档

《Jenkins-gitee的插件说明踩坑》 入口

《Jenkins-gitee的插件说明踩坑》 文档

有提供文档确实是不错的,但是里面写的有点不太适合新手
我刚开始思路比较简单,我照着你的配,后面肯定同,
可以我一步一步的跟着做,后面到添加git仓库的时候一直提示异常:

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/'

当时我就在想,配置云链接已经配了啊

《Jenkins-gitee的插件说明踩坑》 配置云链接

用的是token授权,gitee重新实现了git授权么?我记得git使用的一般是账号密码或者是ssh密钥的形式;后来就看论坛也有人提这个问题:

《Jenkins-gitee的插件说明踩坑》 问题

直到看到这个

《Jenkins-gitee的插件说明踩坑》 配的那个token不是用来登录git仓库的

配的那个token不是用来登录git仓库的

源码管理的凭据和 api的凭据不是一样的,apiv5的凭据是插件调用码云接口使用的,而源码管理的凭据是jenkins git插件要求的,这个凭据格式是用户名密码,如果用的是http的协议需要在凭据管理中再配置一个码云用户名密码的凭据,这样才能选上,如果是ssh 的话需要jenkins的机器的ssh key 加入到码云账号中才行

剩下要做的就是在凭证中去把专门用户git仓库代码拉取的信息填了

《Jenkins-gitee的插件说明踩坑》 新建凭证

添加完账号密码就可以在git中使用了

《Jenkins-gitee的插件说明踩坑》 现在就显示了

    原文作者:VincentPeng
    原文地址: https://www.jianshu.com/p/7b79cf812fdc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞