使用jenkins构建自动化发布系统之构建jenkins
16lz
2021-03-13
使用jenkins构建自动化发布系统之构建jenkins
牛恒博 DevOps视角
jenkins安装
安装
设置jenkins目录 在catalina.sh 中定义jenkins
$ export CATALINA_OPTS="-DJENKINS_HOME=/path/to/jenkins_home/ -Xmx512m"$ catalina.sh start
在linux环境变量中定义jenkins
$ export JENKINS_HOME=/path/to/jenkins_home/$ catalina.sh start
在 context中定义jenkins-home
<Context ...> <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/></Context>
安装及初始化
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.warjava -jar jenkins.warhttp://localhost:8080
安装常用插件
选择安装
开始安装
插件安装完成后,开始配置admin的用户名密码。 开始使用jenkins
更改jenkins的家目录
jenkins的家目录默认路径在/root/.jenkins/路径。根据启动方式的不同,修改方式略有不同。
1.直接命令行启动java -jar jenkins.war
cat >>/etc/profile<<EOFexport JENKINS_HOME=/data/db/jenkins/EOFsource /etc/profile
2.使用tomcat容器启动
vim /data/app/tomcat/bin/catalina.shexport JENKINS_HOME=/data/db/jenkins/# OS specific support. $var _must_ be set to either true or false.
3.修改jenkins.war包(不推荐)
vim jenkins /web.xml <!-- if specified, this value is used as the Hudson home directory --> <env-entry> <env-entry-name>HUDSON_HOME</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>/data/db/jenkins/</env-entry-value> #填入路径 </env-entry>
开始安装插件
jenkins最常用的就是插件,所以我们从安装插件开始。
方法一
路径:系统管理-->管理插件,开始安装插件。
- Build Pipeline Plugin:build 流程配置插件。
- Gitlab Plugin :gitlab pull 插件。
- Gitlab Hook Plugin:gitlab 钩子插件。
- Build Authorization Token Root Plugin :用户权限验证插件。
- SonarQube Scanner for Jenkins :代码质量管理插件。
- Parameterized Remote Trigger Plugin :远程触发插件。
- AnsiColor(可选):这个插件可以让Jenkins的控制台输出的log带有颜色(就和linux控制台那样)
- Maven Integration plugin
- Extended Choice Parameter Plug-In: 图像界面配置多选参数
方法二
上传插件 Jenkins-插件管理-高级-上传插件
方法三
直接上传到文件目录(根据上文中密码文件的路径,可以知道jenkins的目录在/root/.jenkins/中)/root/.jenkins/plugins重启Jenkins
创建一个构建过程
输入项目名称--选择构建一个自由风格的软件项目
配置源码下载地址
添加gitlab的认证key,这里配置ssh的私钥
gitlab中添加ssh-key的公钥
配置构建过程
这里有个需要注意的地方,比如我们想要在远端的机器上执行相关的脚本怎么办?
一个原理: jenkins 在执行过程中,使用的是jenkins的用户在执行。
两种方法:
- 所有服务器跟jenkins做无密钥登录。
- 所有服务器的root做无密钥登录。
推荐使用第二种,因为发布的脚本,可能涉及权限的问题,如果使用jenkins可能会出现权限不足的情况。
最佳方案
sudo ssh -p 52113 root@192.168.56.13 "/data/scripts/web-deploy.sh"
执行立即构建-查看控制台输出
解释说明:
jenkins会git clone到jenkins的/workspace上。
[root@linux-node1 web-build16:29:46]#pwd /root/.jenkins/workspace/web-build[root@linux-node1 web-build16:29:56]#ls -a . .. .git index.html README.md[root@linux-node1 web-build16:29:58]#[root@linux-node1 web-build16:31:49]#cat /tmp/1.txt 2017-03-01
敬请等待下篇:Sonar代码质量管理
©著作权归作者所有:来自51CTO博客作者mob604756e75222的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- JDK安装及注意事项
- 最丝滑的k8s部署工具Sealos,你说香不香?
- 使用jenkins构建自动化发布系统之Sonar 代码质量管理
- Jenkinsfile入门:Pipeline使用Maven构建java项目
- httpd-2.4.46 (apache) 基于网络源码包安装
- 完整的二进制安装Kubernetes高可用集群
- 二进制安装Kubernetes高可用集群(上)
- Xtrabackup备份
- Kafka 集群部署