【图文教程】jenkins

编程入门 行业动态 更新时间:2024-10-20 07:45:01

【<a href=https://www.elefans.com/category/jswz/34/1769345.html style=图文教程】jenkins"/>

【图文教程】jenkins

jenkins

  • 1. jenkins介绍
  • 2. jenkins安装
  • 3. jenkins相关文件解析
  • 4. 通过jenkins发布php代码
  • 5. jenkins邮件配置
  • 6. 插件email-ext
  • 7. 破解管理员密码
  • 8. 部署java项目-创建私有仓库
  • 9. 部署java项目-下载zrlog源码
  • 10. 安装tomcat

1. jenkins介绍

  • 持续集成是什么
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。

  • 持续集成指的是,频繁地(一天多次)将代码集成到主干

它的好处主要有两个

1. 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。2. 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正。"与持续集成相关的,还有两个概念,分别是持续交付和持续部署。
  • 持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
  • 持续部署
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。持续部署的前提是能自动化完成测试、构建、部署等步骤。它与持续交付的区别,可以参考下图。

参考链接:.html

2. jenkins安装

  • jenkins的官方文档地址

/

  • 安装jenkins的最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8,如果只需要java的运行环境的话,用yum安装个openjdk就可以了,安装命令如下
yum install -y java-1.8.0-openjdk          #系统自带安装
  • 官网下载安装jdk1.8
1. tar zxvf jdk-8u101-linux-x64.tar.gz     #解压包2. mv jdk1.8.0_101/ /usr/local/jdk1.8      #移动并改名
  • 下载jenkins的yum源
wget -O /etc/yum.repos.d/jenkins.repo .repo
  • 安装jenkins.io.key
rpm --import .io.key
  • yum安装jenkins
yum install -y jenkins
  • 修改jenkins配置文件
1. which java                              #查看java安装路径2. vi /etc/init.d/jenkins                  #编辑jenkins配置文件3.candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/local/jdk1.8/bin/java                #这一行修改为java安装路径,保存退出就可以了
  • 安装完之后启动jenkins服务
1. [root@test01 ~]# service jenkins start
Starting jenkins (via systemctl):  Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.[  OK  ]2. [root@test01 ~]# ps aux |grep jenkins
jenkins   13366 14.6 16.7 2353816 166508 ?      Ssl  11:02   0:05 /usr/local/jdk1.8/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root      13428  0.0  0.0 112816   976 pts/1    R+   11:03   0:00 grep --color=auto jenkins3. [root@test01 ~]# netstat -lntp |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13366/java          
  • 查看 jenkins 的日志,找到初始化安装需要用到的密码
[root@test01 ~]# less /var/log/jenkins/jenkins.log Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:294ee38a8c974a2a85620db2e8c7877a                   #找到初始化安装需要用到的密码
  • 接着就可以在windows上的浏览器里,访问你Linux的8080端口,进行 Jenkins 的安装

记住把防火墙关闭

3. jenkins相关文件解析

参数含义
/etc/sysconfig/jenkins配置文件所在路径
/var/lib/jenkins/程序文件主目录
jobs项目的配置保存目录
logs日志目录
nodes是一些节点管理的信息,Jenkins配置主从之后会在这里记录
plugins插件所在目录
secrets密码密钥相关的目录
updates升级相关的文件
userContent游客测试目录
users所有用户信息都在这里保存
workflow-libs库相关信息

4. 通过jenkins发布php代码

  • 通过jenkins发布php代码
我们都知道Jenkins是一个用于持续集成的工具,所以本文简单介绍一下如何通过Jenkins来发布php代码到远程的机器上,实验环境如下:两台机器,一台安装了Jenkins作为Jenkins服务器,一台作为远程的服务器:test02   192.168.72.135   Jenkins服务器
test03   192.168.72.136   远程服务器一个远程的公开的git仓库(php代码在这个仓库里)如果没有安装过Jenkins的话,可以参考安装Jenkins的方法“系统管理” → “管理插件” → “已安装”在通过Jenkins发布php代码之前,我们首先需要在Jenkins服务的web页面上检查一下 “Git plugin” 和 “Publish Over SSH” 两个插件是否已安装:
  • 显示 “Git plugin” 已经安装了

  • 安装 “Publish Over SSH”,显示安装成功

  • 确保两个插件都安装好后,点击“系统管理” → “系统设置”,下拉页面,大概在网页的最下面可以找到 “Publish Over SSH”

  • 在 test02 jenkins服务器上,生成密钥对
1. [root@test02 jenkins]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Qb4M14Vm67xzz0YDwqZFYYlVSQYNcbSUfKJ3yGqiT8U root@test02
The key's randomart image is:
+---[RSA 2048]----+
|        .oB&Oo   |
|       o.o*=*..  |
|      . +=.+.+   |
|       + +B = .  |
|        S*E+ o   |
|        o.=   o  |
|       ..o . . . |
|      ..  o ...  |
|       ..  o oo  |
+----[SHA256]-----+
  • 生成密钥对后,把 test02 公钥拷贝到 test03 .ssh/authorized_keys 文件里上去
1. [root@test03 ~]# vim .ssh/authorized_keys##############
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmv3lI9tM3N+xCCoNTi/GUgZgP9aofUXUy9rHk9k0i0n5LpxR0qXywBlXXXxuOISzg0mW+7AsxmL97vdM3ThbBprXSjDtQK7pT5wOil/q785SnNqGzBA2XKtR3fBbWPdM6hYL2Ex7ZNrzJtHOx45Uz7FEwP42B6j742Y7Vrkb5P870aeJdY/pwabhKlz0KcTCaDs0tJtxQH2KhrlAAIFtmqVlTJjH/p6xpFqa8w1W2mjj2lTspaagKcnpU3Ku39dVkKp1WZjD0jvEUMUsBkog7ICoxQep9yFWMUuTenuKNm9lkBetuHF/80974gDxFqxEmxpmJJECQ2lvCibFztKmz root@test022. [root@test02 ~]# ssh 192.168.72.136
Last login: Thu Nov 26 16:56:19 2020 from 192.168.72.1
[root@test03 ~]##能正常登录则代表没有问题,如果出现让你出入用户密码的情况则是密钥没有配置成功,配置成功的情况下登录是不需要密码的。
  • 完成测试确保能够正常通过ssh登录远程机器后,接着就是把test02de 私钥粘贴到 “Key” 这一栏里

  • 以上我们配置完了插件以及远程机器,现在就可以开始新建任务了

配置项目名称与描述

  • 构建触发器,以及构建环境都不需要配置,因为我们发布的是php代码

  • 最后就是 “构建” ,最核心的一步,选择 “Send files or execute commands over SSH”

简单说明:
SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件
Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作

  • 完成以上操作后,就可以使用这个刚刚创建的任务去工作了,点击左面的 “立即构建” ,就能把git上的代码发布到指定的服务器上

5. jenkins邮件配置

6. 插件email-ext

7. 破解管理员密码

cd /var/lib/jenkins/users/adminvim config.xml//定位到<passwordHash>那一行删除改行,改为
<passwordHash>#jbcrypt:$2a$10$pre7I4liZFdF6ZE05QntTOoKoKa5pCUumaFO/mMzMoH09bNBzyj6O</passwordHash>重启一下jenkins新密码为aminglinux

8. 部署java项目-创建私有仓库

项目的线上服务器,具有JDK1.8+Tomcat8.5环境 192.168.72.134这台服务器

Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。本次实验,我们采用git私有仓库的形式,涉及到配置密钥,以zrlog来作为本次实验需要部署的java项目。实验环境:192.168.72.134 作为项目的线上服务器,具有JDK1.8+Tomcat8.5环境
192.168.72.135 Jenkins服务器准备工作:自行在免费的代码托管平台申请一个私有的git仓库,我这里使用的是国内的一个免费托管平台:github
生成密钥对,把公钥放到git服务端,也就是配置仓库的密钥认证,请查看github博客

1. makdir /tmp/tew2. cd /tmp/tew3. echo "# The-experimental-warehouse" >> README.md4. git add README.md5. git commit -m "ch README.md"6. git branch -M main7. git remote add origin .git8. [root@test01 tew]# git push -u origin main
Username for '': 2584765560    #输入用户名
Password for 'https://2584765560@github':    #输入用户密码
Counting objects: 3, done.
Writing objects: 100% (3/3), 227 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To .git* [new branch]      main -> main

9. 部署java项目-下载zrlog源码

项目的线上服务器,具有JDK1.8+Tomcat8.5环境 192.168.72.134这台服务器

1. wget   #下载zrlog压缩包,zip格式的2. du -sh master 
2.8M	master3. unzip master    #安装 unzip 并解压master4. mv zrlog-master/* -t /tmp/tew/   #把zrlog-master目录下移动到新建的仓库目录下5. cd !$6. ls
admin-frontend  common  doc               LICENSE  mvnw.cmd  README.en-us.md  service
bin             data    install-frontend  mvnw     pom.xml   README.md        web7. git add .   8. git commit -m "add zrlog"9. git push

10. 安装tomcat

项目的线上服务器,具有JDK1.8+Tomcat8.5环境 192.168.72.134这台服务器

在线上服务器上需要安装好jdk + tomcat,其中jdk最好不要使用openjdk,使用openjdk容易出问题,我这里使用的jdk版本为1.8,tomcat版本则为8.23

  • 准备好JDK+Tomcat环境并且Tomcat能够正常服务后,还需要配置Tomcat的用户文件
1. vim /usr/local/tomcat/conf/tomcat-users.xmlshift+g 切换到最下面,在</tomcat-users>前插入以下内容:<role rolename="admin"/>     #role配置角色
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>    
<user name="admin" password="your_password" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />    
#需要 name="admin"  password="123"

更多推荐

【图文教程】jenkins

本文发布于:2024-02-12 16:09:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1688491.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图文   教程   jenkins

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!