首页 > 其他分享 >搭建jenkins实现自动化部署

搭建jenkins实现自动化部署

时间:2023-10-27 14:32:24浏览次数:40  
标签:git java lib token ssh 自动化 jenkins 搭建

一、安装jenkins

1、添加yum repos,然后安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

 注:如果上边的执行成功就不用再执行这两行了

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

 注:如果网络不好需要重试几次

sudo yum install jenkins

2、如果未安装java还需安装java

sudo yum install java

3、启动和停止

sudo service jenkins start
sudo service jenkins stop
sudo service jenkins restart<br><br>
sudo chkconfig jenkins on

如果启动失败,可以运行如下命令查看错误信息

systemctl status jenkins.service

搭建jenkins实现自动化部署_Jenkins

如上错误是java配置错误,需要修改jenkins配置文件

vi /etc/rc.d/init.d/jenkins

类似如下修改:

candidates="
************
************
/usr/local/jdk1.8/bin/java
"

4、jenkins的默认设置

  Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins
  Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
  如果遇到问题,查看日志/var/log/jenkins/jenkins.log
  配置文件/etc/sysconfig/jenkins
  默认启用8080

 5、打开和关闭防火墙

  开启非80端口需要打开防火墙,参考:

6、关于centos上的java
  Jenkins不支持在centos的默认的jdk上工作。如果如下所示,则需要remove:

  java -version
  java version "1.5.0"
  gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
  为了正确使用Jenkins:

  yum remove java
  然后可以安装openjdk

  yum install java-1.7.0-openjdk
  正确如下:

  java -version
  java version "1.7.0_79"
  OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
  OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

7、配置java路径
直接启动:

sudo service jenkins start
但是发现启动失败,于是需要配置java位置:

vi /etc/init.d/jenkins
在启动加入本机的java:[root@iZ94xvn71eeZ ~]# vim /etc/init.d/jenkins
# Set up environment accordingly to the configuration settings
[ -n "$JENKINS_HOME" ] || { echo "JENKINS_HOME not configured in $JENKINS_CONFIG";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
[ -d "$JENKINS_HOME" ] || { echo "JENKINS_HOME directory does not exist: $JENKINS_HOME";
if [ "$1" = "stop" ]; then exit 0;
else exit 1; fi; }# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
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-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.7.0_80/bin/java


 8、配置端口

  修改

vi /etc/sysconfig/jenkins

  内容改为需要的端口

JENKINS_PORT="8080"

9、yum安装Jenkins默认路径为

  /var/lib/jenkins

二、进入jenkins

1、打开

http://192.168.3.231:8080

搭建jenkins实现自动化部署_Jenkins_02

2、查看密码,将内容填写到密码处点击继续

cat /var/lib/jenkins/secrets/initialAdminPassword

3、选择默认插件即可  

搭建jenkins实现自动化部署_git_03

4、设置管理员

搭建jenkins实现自动化部署_git_04

 三、安装和Git,GitLab插件

1、安装git客户端

  Linux安装配置git参见,只需要安装客户端不需要产生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key

  

2、安装git插件

搭建jenkins实现自动化部署_git_05

3、在这里将安装和Git,GitLab插件,注意使用ctrl+f查找

搭建jenkins实现自动化部署_java_06

4、配置gitLab连接

搭建jenkins实现自动化部署_java_07

5、找到Gitlab配置,如下图

  name:可以随便写一个

  host URL:host地址注意只填写host不要库地址写http地址即可

  credentials:选择一个证书

搭建jenkins实现自动化部署_Jenkins_08

   新建一个证书,选择add->Jenkins添加一个证书

搭建jenkins实现自动化部署_java_09

  kind:选择GitLab API token

  API token:输入token,如何找到token参见下面 

搭建jenkins实现自动化部署_java_10

  查找token,token需要在gitLab中查找,不同版本的gitLab方式不同

    a)在Access Tokens中就显示了api token直接copy即可

    b)在如下页面填入名字和过期时间后自动生成token,生成后一定要使用记事本记下来,之后无法查看该token

搭建jenkins实现自动化部署_git_11

   回到Jenkins设置token后Test Connection,如果测试成功

四、新建item

1、生成ssh key 

由于jenkins执行脚本的使用使用的是jenkins这个账号,所以公钥私钥需要放在此用户的目录里。

a)由于此账号是一个不允许登录且修改了home目录的账号,所以需要先执行 vi /etc/passwd 查看一下jenkins账号的home目录,在里边找到jenkins这个账号其中红框部分为他的home目录

搭建jenkins实现自动化部署_java_12

b)生成root(不是root其它账号也可)账号的sshkey

ssh-keygen -t rsa -C "[email protected]" -b 4096 # 生成公钥私钥,注意双引号内是个助记符根据需要修改
cd /root/.ssh # 进入ssh目录
git ls-remote -h ssh://[email protected]:1022/html/tamH5.git HEAD # 连一下git服务器,生成known_hosts文件
ll # 查看文件

搭建jenkins实现自动化部署_Jenkins_13

如果没有 known_hosts 文件之后Jenkins发布时会有如下错误 “Host key verification failed.”

c)进入jenkins目录将刚才创建的sshkey复制过来并将所有者指到jenkins账号

cd /var/lib/jenkins # 进入jenkins的home目录
mkdir .ssh # 创建ssh目录存放sshkey文件,如果存在会报错
cd .ssh
cp /root/.ssh/* . # 将root账号下的sshkey文件复制过来,此时如果执行ll看一下这两个文件所有这应该是root
chgrp jenkins * # 将key文件的组改为jenkins
chown jenkins * # 将key文件的所有者改为jenkins

d)此时pwd再ll应该看到如下内容  

搭建jenkins实现自动化部署_Jenkins_14

2、打开 id_rsa.pub 将其中内容复制到记事本中,然后再copy到git服务器上

3、访问gitlab将刚才生成的公钥添加到ssh keys中

 

搭建jenkins实现自动化部署_git_15

4、创建证书

  a)Jenkins -> Credentials

 

搭建jenkins实现自动化部署_Jenkins_16

  b)global -> Add credentials新建一个证书

搭建jenkins实现自动化部署_git_17

  c)填写证书信息

    kind:选择 SSH Username with private key

    Username:随便输入,之后在创建item是记得住选择那个即可

    Priveate key:选择“Enter directly”后输入私钥,记住一定是私钥 (按照上步骤在linux上生成密钥后,会是一对其中带pub后缀的是公钥。id_rsa私钥、id_rsa.pub公钥)。在linux执行cat id_rsa将所有内容copy填入key中

    Passphrase:不填,如果填了每次都需要输入密码

    填好后点击“ok”保存

搭建jenkins实现自动化部署_Jenkins_18

2、新建item

  a)新建Item

搭建jenkins实现自动化部署_Jenkins_19

  b)输入任务名称,选择“构建一个自由风格软件项目”后单击“确定”

 

搭建jenkins实现自动化部署_Jenkins_20

 

   c)在GitLab connection处选择刚才创建的连接(输入git host时创建的连接)

    选择git并Credentials处选择刚才输入私钥的证书

    Repository URL输入git项目地址(注意输入时需添加ssh注意如果修改端口应填写ssh://git@host:port/xxxxxx/xxxxx.git)

    之后单击“保存”即可。

 

搭建jenkins实现自动化部署_git_21

3、构建job 

  a)进入demo job

 

搭建jenkins实现自动化部署_java_22

  b)点击“立即构建”

    由于item只配置了git所以只会clone git,clone后在如下目录中,以job名称为目录保存

     /var/lib/jenkins/workspace

搭建jenkins实现自动化部署_git_23

 

 

 

构建后目录

./var/lib/jenkins/workspace/

根据job名字放到相应目录

  

安装插件 

搭建jenkins实现自动化部署_git_24

 

 

 

 

 

 

 

 

 

参考文档:

  

  




1、添加yum repos,然后安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

 注:如果上边的执行成功就不用再执行这两行了

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

 注:如果网络不好需要重试几次

sudo yum install jenkins



2、如果未安装java还需安装java

sudo yum install java

3、启动和停止

sudo service jenkins start
sudo service jenkins stop
sudo service jenkins restart<br><br>
sudo chkconfig jenkins on

如果启动失败,可以运行如下命令查看错误信息

systemctl status jenkins.service

搭建jenkins实现自动化部署_Jenkins

如上错误是java配置错误,需要修改jenkins配置文件

vi /etc/rc.d/init.d/jenkins

类似如下修改:

candidates="
************
************
/usr/local/jdk1.8/bin/java
"



4、jenkins的默认设置

  Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins
  Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
  如果遇到问题,查看日志/var/log/jenkins/jenkins.log
  配置文件/etc/sysconfig/jenkins
  默认启用8080

 5、打开和关闭防火墙

  开启非80端口需要打开防火墙,参考:

6、关于centos上的java
  Jenkins不支持在centos的默认的jdk上工作。如果如下所示,则需要remove:

  java -version
  java version "1.5.0"
  gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
  为了正确使用Jenkins:

  yum remove java
  然后可以安装openjdk

  yum install java-1.7.0-openjdk
  正确如下:

  java -version
  java version "1.7.0_79"
  OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
  OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

7、配置java路径
直接启动:

sudo service jenkins start
但是发现启动失败,于是需要配置java位置:

vi /etc/init.d/jenkins
在启动加入本机的java:[root@iZ94xvn71eeZ ~]# vim /etc/init.d/jenkins
# Set up environment accordingly to the configuration settings
[ -n "$JENKINS_HOME" ] || { echo "JENKINS_HOME not configured in $JENKINS_CONFIG";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
[ -d "$JENKINS_HOME" ] || { echo "JENKINS_HOME directory does not exist: $JENKINS_HOME";
if [ "$1" = "stop" ]; then exit 0;
else exit 1; fi; }# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
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-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.7.0_80/bin/java
"

 8、配置端口

  修改

vi /etc/sysconfig/jenkins

  内容改为需要的端口

JENKINS_PORT="8080"

9、yum安装Jenkins默认路径为

  /var/lib/jenkins

二、进入jenkins

1、打开

http://192.168.3.231:8080

搭建jenkins实现自动化部署_Jenkins_02

2、查看密码,将内容填写到密码处点击继续

cat /var/lib/jenkins/secrets/initialAdminPassword

3、选择默认插件即可  

搭建jenkins实现自动化部署_git_03

4、设置管理员

搭建jenkins实现自动化部署_git_04

 三、安装和Git,GitLab插件

1、安装git客户端

  Linux安装配置git参见,只需要安装客户端不需要产生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key

  

2、安装git插件

搭建jenkins实现自动化部署_git_05

3、在这里将安装和Git,GitLab插件,注意使用ctrl+f查找

搭建jenkins实现自动化部署_java_06

4、配置gitLab连接

搭建jenkins实现自动化部署_java_07

5、找到Gitlab配置,如下图

  name:可以随便写一个

  host URL:host地址注意只填写host不要库地址写http地址即可

  credentials:选择一个证书

搭建jenkins实现自动化部署_Jenkins_08

   新建一个证书,选择add->Jenkins添加一个证书

搭建jenkins实现自动化部署_java_09

  kind:选择GitLab API token

  API token:输入token,如何找到token参见下面 

搭建jenkins实现自动化部署_java_10

  查找token,token需要在gitLab中查找,不同版本的gitLab方式不同

    a)在Access Tokens中就显示了api token直接copy即可

    b)在如下页面填入名字和过期时间后自动生成token,生成后一定要使用记事本记下来,之后无法查看该token

搭建jenkins实现自动化部署_git_11

   回到Jenkins设置token后Test Connection,如果测试成功

四、新建item

1、生成ssh key 

由于jenkins执行脚本的使用使用的是jenkins这个账号,所以公钥私钥需要放在此用户的目录里。

a)由于此账号是一个不允许登录且修改了home目录的账号,所以需要先执行 vi /etc/passwd 查看一下jenkins账号的home目录,在里边找到jenkins这个账号其中红框部分为他的home目录

搭建jenkins实现自动化部署_java_12

b)生成root(不是root其它账号也可)账号的sshkey

ssh-keygen -t rsa -C "[email protected]" -b 4096 # 生成公钥私钥,注意双引号内是个助记符根据需要修改
cd /root/.ssh # 进入ssh目录
git ls-remote -h ssh://[email protected]:1022/html/tamH5.git HEAD # 连一下git服务器,生成known_hosts文件
ll # 查看文件



搭建jenkins实现自动化部署_Jenkins_13

如果没有 known_hosts 文件之后Jenkins发布时会有如下错误 “Host key verification failed.”

c)进入jenkins目录将刚才创建的sshkey复制过来并将所有者指到jenkins账号

cd /var/lib/jenkins # 进入jenkins的home目录
mkdir .ssh # 创建ssh目录存放sshkey文件,如果存在会报错
cd .ssh
cp /root/.ssh/* . # 将root账号下的sshkey文件复制过来,此时如果执行ll看一下这两个文件所有这应该是root
chgrp jenkins * # 将key文件的组改为jenkins
chown jenkins * # 将key文件的所有者改为jenkins

d)此时pwd再ll应该看到如下内容  

搭建jenkins实现自动化部署_Jenkins_14

2、打开 id_rsa.pub 将其中内容复制到记事本中,然后再copy到git服务器上

3、访问gitlab将刚才生成的公钥添加到ssh keys中

 

搭建jenkins实现自动化部署_git_15

4、创建证书

  a)Jenkins -> Credentials

 

搭建jenkins实现自动化部署_Jenkins_16

  b)global -> Add credentials新建一个证书

搭建jenkins实现自动化部署_git_17

  c)填写证书信息

    kind:选择 SSH Username with private key

    Username:随便输入,之后在创建item是记得住选择那个即可

    Priveate key:选择“Enter directly”后输入私钥,记住一定是私钥 (按照上步骤在linux上生成密钥后,会是一对其中带pub后缀的是公钥。id_rsa私钥、id_rsa.pub公钥)。在linux执行cat id_rsa将所有内容copy填入key中

    Passphrase:不填,如果填了每次都需要输入密码

    填好后点击“ok”保存

搭建jenkins实现自动化部署_Jenkins_18

2、新建item

  a)新建Item

搭建jenkins实现自动化部署_Jenkins_19

  b)输入任务名称,选择“构建一个自由风格软件项目”后单击“确定”

 

搭建jenkins实现自动化部署_Jenkins_20

 

   c)在GitLab connection处选择刚才创建的连接(输入git host时创建的连接)

    选择git并Credentials处选择刚才输入私钥的证书

    Repository URL输入git项目地址(注意输入时需添加ssh注意如果修改端口应填写ssh://git@host:port/xxxxxx/xxxxx.git)

    之后单击“保存”即可。

 

搭建jenkins实现自动化部署_git_21

3、构建job 

  a)进入demo job

 

搭建jenkins实现自动化部署_java_22

  b)点击“立即构建”

    由于item只配置了git所以只会clone git,clone后在如下目录中,以job名称为目录保存

     /var/lib/jenkins/workspace

搭建jenkins实现自动化部署_git_23

 

 

 

构建后目录

./var/lib/jenkins/workspace/

根据job名字放到相应目录

 

 

 

 

安装插件 

搭建jenkins实现自动化部署_git_24

 

 

 

 

 

 

 

 


  

标签:git,java,lib,token,ssh,自动化,jenkins,搭建
From: https://blog.51cto.com/lhxsoft/8056344

相关文章

  • jenkins 使用api生成api-token
    一,背景在使用jenkins-API的情况下,不方便存储用户API时可以在用户首次登陆的时候生成token-api二,获取JSESSIONID和Jenkins-Crumbcurl-verbose -s'http://127.0.0.1:8080/crumbIssuer/api/json'--userchengc9:xxxxxxxxx三,生成api-tokencurl-s-XPOST--cookie"JSESSION......
  • 自动化测试-友好的第三方库
    自动化测试脚本开发中,总是会遇到各种数据处理,例如MOCK、URL处理、JSON数据处理、结果断言等,也会遇到所采用的测试框架不能满足当前需求,这些问题都需要我们自己动手解决。在强大的IT世界,我们遇到的百分之九十八问题,前辈们都遇到过并且给出了解决方案,有的无私前辈将其整理并开源,这些......
  • 【速看】如何通过合理的封装,让你的自动化脚本更上一层楼!
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言 上一篇推文利用一个在图片范围内实现随机坐标点击的例子,去教会大家如何将自己想要的效果实现出来,受到大家的热情反响,在我们官方讨论群中,还有大佬对我......
  • 应用案例|基于三维机器视觉的曲轴自动化上下料应用方案
    Part.1 项目背景此案例服务对象为国内某知名大型汽车零部件制造工厂,该工厂有针对曲轴工件的自动化上下料需求。由于之前来料码放不规范,工件无序散乱摆放,上料节拍要求高,该工厂上下料效率极低。Part.2 传统曲轴上下料存在的缺陷传统此工位的曲轴工件上下料由人工完成,这种上下料方式......
  • SpringCloud微服务多应用脚手架的搭建与部署
    最近几年SpringBoot大热,很多IT公司都开始采用SpringBoot来替换传统的SpringMVC项目。那么如何搭建一个适合开发的项目架构呢?这里我主要介绍Java程序员使用最多的两种工具进行搭建:1、MyEclipse;2、ideaMyEclipse第一步:打开MyEclipse,选择File—>New—>Other,搜索maven,点击next 第二步:......
  • 彩虹云商城搭建 自动发卡搭建
     彩虹云商城源码自动发卡搭建  演示 http://www.yundingxt.com:7003/ 彩红易支付自动发卡程序 联系WX:app1008610010   ......
  • CentOS搭建内网KMS服务器
    1.yum换源[root@cwc~]#cd/etc/yum.repos.d/[[email protected]]#mkdirback[[email protected]]#mvCentOS-Linux-*back/[[email protected]]#wget-O/etc/yum.repos.d/CentOS-Linux-BaseOS.repohttps://mirrors.aliyun.com/repo/Centos-8.repo[root@cwc......
  • Redis 7.0 源码环境搭建与阅读技巧
    天下武功,无坚不摧,唯快不破!我的名字叫Redis,全称是RemoteDictionaryServer。有人说,组CP,除了要了解她外,还要给机会让她了解你。那么,作为开发工程师的你,是否愿意认真阅读此心法抓住机会来了解我,运用到你的系统中提升性能。我遵守BSD协议,由意大利人SalvatoreSanfilippo......
  • Elasticsearch 系列(一)- 环境搭建
    本章将和大家分享在Windows系统上如何搭建Elasticsearch的开发环境。话不多说,下面我们直接进入主题。一、安装Java的JDKElasticsearch其中最主要的开发语言就是 Java,所以我们在安装Elasticsearch之前,首先需要安装的就是Java的JDK,此处我选择安装的版本是JDK17。J......
  • django全体系0基础到高手4大体系50页md知识总结:第1章,从0到1django项目搭建
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用完整版笔记直接地址:请移步这里共10章,31子模块,总计18647字Django框架主要内......