一、简介:
本文主要记录如何通过docker安装jenkins,并且通过jenkins部署项目,最终效果是只要在jenkins对某个项目点击构建,jenkins就会去gitLab上拉取最新项目的最新代码,然后根据你自己项目的pom.xml文件,把项目打包成jar,并且自动把这个最新的jar运行起来,达到一键式构建的目标。
二、操作
1. 第一得先在服务器上装好这三个东西: jdk,git,maven, docker。
jdk
第一得现有linux版本的jdk1.8安装包,下方有链接拿走不谢:
链接:
https://pan.baidu.com/s/1k6TWxUt64_Qwu1bVEpgifQpan.baidu.com/s/1k6TWxUt64_Qwu1bVEpgifQ
提取码:hans
1.第一将上面的jdk安装包上传到自己的服务的这个路径中: /usr/local/src/jdk 先进入到 /usr/local/然后新建文件夹src,在src里面再建jdk,然后把安装包放到jdk文件夹里面。如下图所示,当然您可以选择自己喜爱的目录安装,这里我演示的是自己的安装目录。
2.执行如下命令解压jdk安装包:
<span>tar</span> <span>-zxvf</span> <span>jdk-8u281-linux-x64</span><span>.tar</span><span>.gz</span><span>tar</span> <span>-zxvf</span> <span>jdk-8u281-linux-x64</span><span>.tar</span><span>.gz</span>tar -zxvf jdk-8u281-linux-x64.tar.gz
需要注意的是,如果您的安装包的名字和我的不同,那么-zxvf 后面的名字就是您自己的安装包名。
会多出一个jdk1.8.0_281的解压后的文件,我们可以把它重命名为:jdk1.8。 这就是jdk里面最终的样子:
3.此时,jdk实则就可以使用了,只需要再配置一下环境变量,执行如下命令
<span>vim</span> /etc/profile<span>vim</span> /etc/profilevim /etc/profile
然后在profile文件的最下面填入这四行配置:
JAVA_HOME=/usr/<span>local</span>/src/jdk/jdk1.8PATH=<span>$JAVA_HOME</span>/bin:<span>$PATH</span>CLASSPATH=.:<span>$JAVA_HOME</span>/jre/lib/ext:<span>$JAVA_HOME</span>/lib/tools.jar<span>export</span> PATH JAVA_HOME CLASSPATHJAVA_HOME=/usr/<span>local</span>/src/jdk/jdk1.8 PATH=<span>$JAVA_HOME</span>/bin:<span>$PATH</span> CLASSPATH=.:<span>$JAVA_HOME</span>/jre/lib/ext:<span>$JAVA_HOME</span>/lib/tools.jar <span>export</span> PATH JAVA_HOME CLASSPATHJAVA_HOME=/usr/local/src/jdk/jdk1.8 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH
需要注意的是JAVA_HOME中的地址就是刚刚我们第一步解压jdk安装包的地址,这个要根据您自己的实际情况设置哦。
4.最后执行source /etc/profile 命令让刚刚的配置立即生效。
执行命令 java -version 出现如下图所示,即可说明安装成功。
git
链接:
https://pan.baidu.com/s/1LeZpDcdIwq7bpdlMvd0Agg
提取码:hans
(1)解压gz包:
<span>cd</span> /usr/<span>local</span> <span>#进入到/usr/lcoal的目录下</span>mkdir git <span>#新建git目录</span>将上面获取到的gz包放入git目录中tar -zxvf git-2.33.1.tar.gz <span>#解压gz包</span><span>cd</span> /usr/<span>local</span> <span>#进入到/usr/lcoal的目录下</span> mkdir git <span>#新建git目录</span> 将上面获取到的gz包放入git目录中 tar -zxvf git-2.33.1.tar.gz <span>#解压gz包</span>cd /usr/local #进入到/usr/lcoal的目录下 mkdir git #新建git目录 将上面获取到的gz包放入git目录中 tar -zxvf git-2.33.1.tar.gz #解压gz包
(2)配置git的环境变量
先准备环境:
<span>yum</span> <span>install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel</span><span>yum</span> <span>install -y gcc perl-ExtUtils-MakeMaker</span><span>yum</span> <span>install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel</span> <span>yum</span> <span>install -y gcc perl-ExtUtils-MakeMaker</span>yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gcc perl-ExtUtils-MakeMaker
然后进入解压后的git文件夹,执行这两个命令进行编译
make prefix=/usr/<span>local</span>/git allmake prefix=/usr/<span>local</span>/git installmake prefix=/usr/<span>local</span>/git all make prefix=/usr/<span>local</span>/git installmake prefix=/usr/local/git all make prefix=/usr/local/git install
vi /etc/profile <span>#编辑环境变量</span><span>#在上一步的profile中加入下面三个配置信息:</span><span>export</span> PATH=/usr/<span>local</span>/git/bin:<span>$PATH</span><span>source</span> /etc/profile <span>#使环境变量生效</span>vi /etc/profile <span>#编辑环境变量</span> <span>#在上一步的profile中加入下面三个配置信息:</span> <span>export</span> PATH=/usr/<span>local</span>/git/bin:<span>$PATH</span> <span>source</span> /etc/profile <span>#使环境变量生效</span>vi /etc/profile #编辑环境变量 #在上一步的profile中加入下面三个配置信息: export PATH=/usr/local/git/bin:$PATH source /etc/profile #使环境变量生效
(3)校验git是否安装成功:
git <span>--version</span>git <span>--version</span>git --version
maven
链接:
https://pan.baidu.com/s/1nbGR1EZ1bmRmaHGl9x1gng
提取码:hans
(1)解压gz包
<span>cd</span> /usr/<span>local</span>mkdir maven <span>#然后将gz包放到maven目录里面</span><span>cd</span> ./maventar -zxvf apache-maven-3.8.5-bin.tar <span>#解压gz包</span><span>cd</span> /usr/<span>local</span> mkdir maven <span>#然后将gz包放到maven目录里面</span> <span>cd</span> ./maven tar -zxvf apache-maven-3.8.5-bin.tar <span>#解压gz包</span>cd /usr/local mkdir maven #然后将gz包放到maven目录里面 cd ./maven tar -zxvf apache-maven-3.8.5-bin.tar #解压gz包
(2)配置maven的环境变量:
vi /etc/profile<span>#在profile中添加如下配置:</span><span>export</span> M2_HOME=/usr/<span>local</span>/maven/apache-maven-3.8.5<span>export</span> PATH=<span>${PATH}</span>:<span>$JAVA_HOME</span>/bin:<span>$M2_HOME</span>/bin<span>source</span> /etc/profile <span>#重新加载配置文件</span>vi /etc/profile <span>#在profile中添加如下配置:</span> <span>export</span> M2_HOME=/usr/<span>local</span>/maven/apache-maven-3.8.5 <span>export</span> PATH=<span>${PATH}</span>:<span>$JAVA_HOME</span>/bin:<span>$M2_HOME</span>/bin <span>source</span> /etc/profile <span>#重新加载配置文件</span>vi /etc/profile #在profile中添加如下配置: export M2_HOME=/usr/local/maven/apache-maven-3.8.5 export PATH=${PATH}:$JAVA_HOME/bin:$M2_HOME/bin source /etc/profile #重新加载配置文件
(3)校验是否安装成功:
mvn -v
docker
(1)卸载本机中旧的docker(如果之前有安装的话)
yum <span>remove</span> docker docker-common docker-selinux docker-engineyum <span>remove</span> docker docker-common docker-selinux docker-engineyum remove docker docker-common docker-selinux docker-engine
(2)安装yum运行需要的软件包
yum <span>install</span> -y yum-utils device-mapper-persistent-<span>data</span> lvm2yum <span>install</span> -y yum-utils device-mapper-persistent-<span>data</span> lvm2yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum拉取镜像的时候所请求的服务器
yum-config-manager --<span>add</span>-repo https:<span>//download.docker.com/linux/centos/docker-ce.repo</span>yum-config-manager --<span>add</span>-repo https:<span>//download.docker.com/linux/centos/docker-ce.repo</span>yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(4)安装
<span>yum</span> install docker-ce<span>yum</span> install docker-ceyum install docker-ce
(5)紧接着我们将docker设置为开机自启动。
<span>systemctl</span> <span>start docker</span><span>systemctl</span> <span>enable docker</span><span>systemctl</span> <span>start docker</span> <span>systemctl</span> <span>enable docker</span>systemctl start docker systemctl enable docker
(6)验证docker是否安装成功。
<span>docker</span> version<span>docker</span> versiondocker version
2. 好,完成上面三个软件的安装后来,接下来是正题开始
docker pull jenkins/<span>jenkins:</span><span>2.344</span> <span>#拉取jenkins镜像</span>docker run -d -p <span>10240</span><span>:</span><span>8080</span> -p <span>10241</span><span>:</span><span>50000</span> -v /var/<span>jenkins_mount:</span>/var/jenkins_home -u <span>0</span> -v /usr/local/maven/apache-maven-<span>3.8</span>.<span>5</span><span>:/usr/local/maven</span> -v /usr/local/git/bin/<span>git:</span>/usr/local/git -v /etc/<span>localtime:</span>/etc/localtime --name myjenkin 镜像id <span>#启动jenkins镜像</span>docker pull jenkins/<span>jenkins:</span><span>2.344</span> <span>#拉取jenkins镜像</span> docker run -d -p <span>10240</span><span>:</span><span>8080</span> -p <span>10241</span><span>:</span><span>50000</span> -v /var/<span>jenkins_mount:</span>/var/jenkins_home -u <span>0</span> -v /usr/local/maven/apache-maven-<span>3.8</span>.<span>5</span><span>:/usr/local/maven</span> -v /usr/local/git/bin/<span>git:</span>/usr/local/git -v /etc/<span>localtime:</span>/etc/localtime --name myjenkin 镜像id <span>#启动jenkins镜像</span>docker pull jenkins/jenkins:2.344 #拉取jenkins镜像 docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home -u 0 -v /usr/local/maven/apache-maven-3.8.5:/usr/local/maven -v /usr/local/git/bin/git:/usr/local/git -v /etc/localtime:/etc/localtime --name myjenkin 镜像id #启动jenkins镜像
上面的启动jenkins镜像是最重大的,这个指令里面包含了git和maven的文件映射:
-v /usr/local/maven/apache-maven-<span>3.8</span>.<span>5</span><span>:/usr/local/maven</span>-v /usr/local/maven/apache-maven-<span>3.8</span>.<span>5</span><span>:/usr/local/maven</span>-v /usr/local/maven/apache-maven-3.8.5:/usr/local/maven
解释:这里是将本地项目中的apache-maven-3.8.5映射到/usr/local/maven;注意了,这里的服务器的maven地址你们要根据自己自身的安装地址来灵活选择,我这里的maven安装地址是:
/usr/local/maven/apache-maven-3.8.5。
-v /usr/<span>local</span>/git/bin/git:/usr/<span>local</span>/git-v /usr/<span>local</span>/git/bin/git:/usr/<span>local</span>/git-v /usr/local/git/bin/git:/usr/local/git
解释:将服务器中的git映射到jenkins容器中,我这里的服务器上的git的安装地址是/usr/local/git/bin/git,同样的,童鞋们也要根据自身的git安装地址来选择。
jenkins容器启动后来,咱们就需要到阿里云或者是腾讯云中,将端口为10240打开
(3) 接下来就可以见证奇迹了:浏览器访问:你的服务器ip:10240。不出意外,你就能访问到jenkins了。
第一映入眼帘的是这个,jenkins需要你输入初始密码,你就到上面图片的提示的路径下把初始密码拷贝过来:
/var/jenkins_home/secrets/initialAdminPassword,这个就是路径啦,去拷贝吧。
接下来,这里咱们选择:“安装推荐的插件”;这个安装推荐插件的时间可能会比较久,请耐心等待。
(4) 好,目前咱们还需要再安装两个插件: publish over ssh和Maven Integration plugin 同学可以点击: 系统管理->插件管理 -> 可选插件中进行输入安装。如下图所示:
处安装插件完成之后,需要【重启Jenkins】来【生效插件】。
重启方式:在URL后加上【/restart】,点击【回车】,点击【是】即可。
设置中文
(5) 安装好上一步中的几个插件之后,接下来需要在jenkins中配置一下git和mavn: 同学可以依次点击:系统管理 -> 全局工具配置 -> 找到Git和Maven
下图是Git,如果没有那些什么Name,Path to Git什么的额输入框,那么可以点击一下Add Git按钮,然后依照图中内容输入,没有报红字提示即表明配置成功了。
(6) 配置好Git和Maven后来,接下来是比较复杂的一个环节,配置全局凭据,这个全局凭据看起来高大上,实则挺好理解,就是一个配置项,然后你配置好后来,你就可以通过jenkins登录到你想进入的那台服务器里面,你还可以在那台服务器上执行你设计的指令。而咱们第二步中安装的publish over ssh插件,就是用来干这事的!在这之前,为了文章的篇幅不要太长,我把一部分内容写在这篇文章中:
飓哥:centos7.6生成ssh私钥与公钥0 赞同 · 0 评论文章
,大家必定要先依照此文章做完,再来继续阅读本文。
想必大家已经看完我我刚刚说的那篇文章,那么请童鞋们把在那边文章的生成的私钥找到,我们待会有用哦。
童鞋们依次点击: “系统管理” -> “系统配置” -> Publish over SSH
完成以上配置后来,可以点击Test configuration按钮,如果显示:success就代表服务器配置成功了,你的jenkins可以远程登录服务器了。
(7) 做足了前面准备工作,童鞋们,你们还得再看一篇文章,我不是故意的,但是的确 得这样,我如果写在一起真的篇幅太长了,我自己写的文章在这里:
飓哥:使用docker安装gitlab0 赞同 · 0 评论文章
。终于可以来新建一个任务了:
依次点击: Git – > Add Repository -> 添加(jenkins凭据)
下图是添加凭据:
UserName是你的gitLab用户名,然后点击Enter directy,点击Add,然后把我刚刚叫大家搜索的“gitLab仓库怎么生成ssh keys”这里面生成的私钥找出来,也就是”id_rsa”文件,把这个私钥放到里面。
最后点击“添加按钮”即可。
好,最复杂的凭据之后,接下来咱们需要选择要拉取的代码分支,童鞋们根据自身情况灵活配置。
(8) 配置好上一步的Git之后,咱们还需要配置一下如何打包:
选择: Pre Steps -> 填入如下图的指令
pom.xmlclean <span>install</span> -Dmaven.test.skip=<span>true</span>pom.xml clean <span>install</span> -Dmaven.test.skip=<span>true</span>pom.xml clean install -Dmaven.test.skip=true
(9) hellohello,有没有同学跟着做到这一步了,这真的是最后最后一步了,请信任我。接下来还需要做最后一个配置:
选择:构建后操作-> 选择添加构建后的步骤
然后选择Send Build artifacts over SSH
选择添加之后,会出现如下的配置卡,这里的SSH Server咱选择第六步中配置好的SSH Server。
由于咱们做了docker的文件映射了,所以jenkins容器上生成的jar包,实则也会映射到咱们本机上,所以咱们就无需将Jar包通过publish over ssh插件再发送了,所以这里我只需要执行代码即可
<span>#第一步是进入到服务器中生成好的jar包的目录下</span>cd /var/jenkins_mount/workspace/pay-wx-learn/target<span>#第二步是根据jar包的名字获取运行的pid,并且将该进程杀死</span>ps -ef | <span>grep</span> pay-wx-learn-<span>0</span>.<span>0</span>.<span>1</span>-SNAPSHOT.jar | <span>grep</span> -v <span>grep</span> | awk <span>'{printf $2}'</span> | xargs <span>kill</span> -<span>9</span><span>#最后一步就是将这个jar后台启动了,并且将日志输出到warpper.log中。</span>nohup java -jar pay-wx-learn-<span>0</span>.<span>0</span>.<span>1</span>-SNAPSHOT.jar >warpper.log &<span>2</span>><span>1</span> &<span>#第一步是进入到服务器中生成好的jar包的目录下</span> cd /var/jenkins_mount/workspace/pay-wx-learn/target <span>#第二步是根据jar包的名字获取运行的pid,并且将该进程杀死</span> ps -ef | <span>grep</span> pay-wx-learn-<span>0</span>.<span>0</span>.<span>1</span>-SNAPSHOT.jar | <span>grep</span> -v <span>grep</span> | awk <span>'{printf $2}'</span> | xargs <span>kill</span> -<span>9</span> <span>#最后一步就是将这个jar后台启动了,并且将日志输出到warpper.log中。</span> nohup java -jar pay-wx-learn-<span>0</span>.<span>0</span>.<span>1</span>-SNAPSHOT.jar >warpper.log &<span>2</span>><span>1</span> &#第一步是进入到服务器中生成好的jar包的目录下 cd /var/jenkins_mount/workspace/pay-wx-learn/target #第二步是根据jar包的名字获取运行的pid,并且将该进程杀死 ps -ef | grep pay-wx-learn-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{printf $2}' | xargs kill -9 #最后一步就是将这个jar后台启动了,并且将日志输出到warpper.log中。 nohup java -jar pay-wx-learn-0.0.1-SNAPSHOT.jar >warpper.log &2>1 &
三、校验
终于啊,神功告成了,咱们可以到enkins的首页这边来构建了
- 最新
- 最热
只看作者