前面gogs的安装被数据库搞得有点难受,不过也算解决了高版本MySQL社区版的安装使用,新版本软件在功能、性能和安全性上肯定要比旧版本的表现更好。之前讲了,最近关于数据库的学习,代码管理平台的学习,都是基于最近的工作,搭建一个持续集成平台jenkins,实现代码的静态扫描,覆盖率报告,本文正式介绍jenkins的安装配置。
一、JDK的配置
在JDK的版本选择方面,不记得是在插件安装还是jenkins环境安装的时候,有因为JDK版本的原因报错。jenkins已经搭建好了,也是怪自己的习惯不是很好,遇到问题,一下就钻进去解决了,搞完就不想做记录了,是的,应该是有点懒得,哈哈,没办法了,写这篇文章的时候只能再重新用测试机走一下全过程了,争取本教程的过程是无错可实现的版本,我这里选择oracle的jdk15,oracle的JDK和社区版OpenJDK有区别的。
tar -zxvf jdk-15.0.1_linux-x64_bin.tar.gz mv /root/jdk-15.0.1 /usr/local/jdk15 echo -e \ > "export JAVA_HOME=/usr/local/jdk15/\n\ > export PATH=\$PATH:/usr/local/jdk15/bin/\n\ > export CLASSPATH=/usr/local/jdk15/lib/"\ > > /etc/profile.d/jdk.sh source /etc/profile.d/jdk.sh jdk -version java version "15.0.1" 2020-10-20 Java(TM) SE Runtime Environment (build 15.0.1+9-18) Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
二、tomcat的安装
tar -zxvf apache-tomcat-9.0.41.tar.gz mv apache-tomcat-9.0.41 /usr/local/tomcat rm /usr/local/tomcat/webapps/* -rf mkdir -p /usr/local/tomcat/webapps/ROOT && mv /root/jenkins.war /usr/local/tomcat/webapps/ROOT cd /usr/local/tomcat/webapps/ROOT jar -xvf jenkins.war /usr/local/tomcat/bin/startup.sh
在连接http://ip:8080的时候,果然遇到了之前忘记记录的错误“AWT is not properly configured on this server.”,百度的时候遇到的有说是openjdk的问题,我这次直接用的oracle的jdk,还是出现这个问题,我查到AWT是与图形界面相关的接口,最后解决的方法直接安装的“GNOME Desktop”解决的问题,因为对这些软件理解比较浅显,只能解决问题,不知道为什么解决了,很是尴尬,这次依旧是用这个方法解决问题的,因为复现了两遍,强力安利大家在遇到这个问题,没有更好方法的时候,用我的这个方法,如果知道原因或者有更优解的好心人,可以留言或者邮件告知一下。接下来就是傻瓜式的安装网页上的提示依次输入密码,插件安装【我这里是离线测试机,选择跳过,下一节我会介绍离线安装插件】,管理员账号创建等等,就可以正式使用jenkins了。
yum groupinstall "GNOME Desktop" -y /usr/local/tomacat/bin/startup.sh
三、插件安装
jenkins的插件非常的丰富,有1800+种,我把jenkins在连线状态下默认安装的插件进行了整理,【Folders】【OWASP Markup Formatter】【Build Timeout】【Credentials Binding】【Timestamper】【Workspace Cleanup】【Ant】【Gradle】【Pipeline】【GitHub Branch Source】【Pipeline:GitHub Groovy Libraries】【Pipeline:Stage View】【Git】【Subversion】【SSH Build Agent】【Matrix Authorization Strategy】【PAM Authentication】【LDAP】【Email Extension】【Mailer】【Localzation:Chinese(Simplified)】。我手上正好有个华为云的机器,50M的带宽,无聊的很,写了一个自动下插件的脚本,把所有脚本所有插件都下到了本地大概70G,脚本分好几步,我就没有整合,简单的贴一下,实用性不强,里面的变量也不解释了。基本就是用wget一些包含插件名的网页文件,从文件中截取出插件名,再wget每个插件对应的版本网页文件,从中获得版本号,然后直接while循环下载就好了。
for plugin in `cat plugins.name` do # cd /root/jenkins-plugins/plugins.dir/$plugin # while read lines # do # tmp=${lines##*href\=\'} # versions=${tmp%%\'*} # echo $versions | grep hpi >> $plugin.hpi # done < $plugin cd /root/jenkins-plugins/plugins.dir/$plugin while read lines do tmp=${lines%\/*} versions=${tmp##*\/} mkdir $versions wget http://updates.jenkins-ci.org${lines} mv *.hpi $versions done < ${plugin}.hpi.total done #cd /root/jenkins-plugins/plugins.dir/$lines #wget http://updates.jenkins-ci.org/download/plugins/$lines
下面我把常用的插件的依赖关系列出来,可以把这些插件的名称复制出来,用上面的方法,批量下载,安装的话,在jenkins界面上插件管理-高级模块上传安装就ok了。
【OWASP Markup Formatter】 antisamy-markup-formatter.hpi 【Build Timeout】 token-macro.hpi build-timeout.hpi 【Credentials Binding】 plain-credentials.hpi credentials-binding.hpi 【Timestamper】 workflow-api.hpi timestamper.hpi 【Workspace Cleanup】 resource-disposer.hpi ws-cleanup.hpi 【Ant】 ant.hpi 【Gradle】 ace-editor.hpi workflow-support.hpi workflow-cps.hpi durable-task.hpi workflow-durable-task-step.hpi workflow-job.hpi workflow-basic-steps.hpi gradle.hpi 【Pipeline】 pipeline-milestone-step.hpi snakeyaml-api.hpi jackson2-api.hpi pipeline-stage-step.hpi pipeline-model-api.hpi pipeline-model-extensions.hpi branch-api.hpi workflow-multibranch.hpi pipeline-stage-tags-metadata.hpi git-server.hpi workflow-cps-global-lib.hpi【Pipeline:GitHub Groovy Libraries】 pipeline-input-step.hpi pipeline-model-definition.hpi jquery3-api.hpi popper-api.hpi plugin-util-api.hpi font-awesome-api.hpi bootstrap4-api.hpi checks-api.hpi echarts-api.hpi junit.hpi matrix-project.hpi lockable-resources.hpi pipeline-build-step.hpi pipeline-graph-analysis.hpi pipeline-rest-api.hpi handlebars.hpi momentjs.hpi pipeline-stage-view.hpi【Pipeline:Stage View】 workflow-aggregator.hpi 【GitHub Branch Source】 okhttp-api.hpi github-api.hpi github.hpi github-branch-source.hpi 【Git】 structs.hpi trilead-api.hpi credentials.hpi ssh-credentials.hpi jsch.hpi apache-httpcomponents-client-4-api.hpi script-security.hpi git-client.hpi scm-api.hpi workflow-step-api.hpi display-url-api.hpi mailer.hpi【Mailer】 workflow-scm-step.hpi git.hpi 【Subversion】 mapdb-api.hpi subversion.hpi 【SSH Build Agent】 ssh-slaves.hpi 【Matrix Authorization Strategy】 matrix-auth.hpi 【PAM Authentication】 pam-auth.hpi 【LDAP】 ldap.hpi 【Email Extension】 email-ext.hpi 【Maven Integration】 javadoc.hpi maven-plugin.hpi 【Localzation:Chinese(Simplified)】 localization-support.hpi localization-zh-cn.hpi 【Gitlab】 gitlab-plugin.hpi ruby-runtime.hpi gitlab-hook.hpi
四、全局工具设置和slave节点设置
在安装了汉化插件之后,jenkins的界面就比较清晰命了了,全局工具和slave的配置安装输入框的要求去填写就好了,详细的使用,因为我主要是提供平台的,会用也是必须的,但是没有太多时间深究,这边安装配置就先到这了,后续的使用心得再做介绍。
下一篇就到和gogs差不多的gitlab的安装介绍,最近要先好好学习一下git的操作,虽然不是coder,但是有计划学习python切入coder的行列,所以git的基本操作还是要熟悉的。