搭建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

sudo chkconfig jenkins on

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

systemctl status jenkins.service

如上错误是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端口需要打开防火墙,参考:http://www.cnblogs.com/rslai/p/7954080.html

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、配置端口

  修改

1

vi /etc/sysconfig/jenkins

  内容改为需要的端口

1

JENKINS_PORT="8080"

9、yum安装Jenkins默认路径为

  /var/lib/jenkins

二、进入jenkins

1、打开

1

http://192.168.3.231:8080

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

1

cat /var/lib/jenkins/secrets/initialAdminPassword

3、选择默认插件即可  

4、设置管理员


三、安装和Git,GitLab插件

1、安装git客户端

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

http://www.cnblogs.com/rslai/p/8175864.html

2、安装git插件

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

4、配置gitLab连接

5、找到Gitlab配置,如下图

  name:可以随便写一个

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

  credentials:选择一个证书

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

  kind:选择GitLab API token

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

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

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

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

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

四、新建item

1、生成ssh key

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

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

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

ssh-keygen -t rsa -C "root@192.168.3.231" -b 4096 # 生成公钥私钥,注意双引号内是个助记符根据需要修改

cd /root/.ssh # 进入ssh目录

git ls-remote -h ssh://git@118.188.3.87:1022/html/tamH5.git HEAD # 连一下git服务器,生成known_hosts文件

ll # 查看文件

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

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

1

2

3

4

5

6

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应该看到如下内容  

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

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

4、创建证书

  a)Jenkins -> Credentials

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

  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”保存

2、新建item

  a)新建Item

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

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

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

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

    之后单击“保存”即可。

3、构建job

  a)进入demo job

  b)点击“立即构建”

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

/var/lib/jenkins/workspace

构建后目录

1

./var/lib/jenkins/workspace/

根据job名字放到相应目录

安装插件

参考文档:

  http://blog.csdn.net/achuo/article/details/51086599

  http://blog.csdn.net/wangfei0904306/article/details/56011877

搭建jenkins实现自动化部署的更多相关文章

  1. Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...

  2. 在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更 ...

  3. 手把手教你搭建Jenkins实现自动化部署Jar

    centeros7 安装配置环境jdk1.8 1.先卸载centeros自带jdk rpm -qa | grep openjdk 查询出来的自带的openjdk 2.删除 rpm -e --nodep ...

  4. 基于 Jenkins Pipeline 自动化部署

    最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...

  5. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  6. CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  7. 从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  8. Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  9. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...

随机推荐

  1. 浅谈kafka streams

    随着数据时代的到来,数据的实时计算也越来越被大家重视.实时计算的一个重要方向就是实时流计算,目前关于流计算的有很多成熟的技术实现方案,比如Storm.Spark Streaming.flink等.我今 ...

  2. PHP7中的数据类型

    PHP中变量名→zval,变量值→zend_value.其变量内存是通过引用计数管理的,在PHP7中引用计数在value结构中. 变量类型: 头文件在PHP源码 /zend/zend_types.h ...

  3. 前端动态菜单-bootstrap-treeview

    一.bootstrap-treeview 官网 Demo bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter ...

  4. python3.7安装pylint

    python3.7安装pylint之"setuptools"版本错误 借鉴:错题集(已解决):pyinstaller报错ModuleNotFoundError: No module ...

  5. Verilog语言实现并行(循环冗余码)CRC校验

    1 前言 (1)    什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能, ...

  6. 在graphviz中创建可点击的图形

    1.创建一个dot文件,在节点属性中使用URL关键字: target关键字指定链接打开的方式 //test.dot digraph Arch { A; B [URL="http://docs ...

  7. 【踩坑】利用fastjson反序列化需要默认构造函数

    利用 fastjson等 反序列化时需要注意,他可能会用到 默认的构造函数,如果没有默认构造函数,某些场景下可能会出现 反序列化熟悉为空的情况,如下图所示:

  8. Nacos集群环境的搭建与配置

    Nacos集群环境的搭建与配置 集群搭建 一.环境: 服务器环境:CENTOS-7.4-64位 三台服务器IP:192.168.102.57:8848,192.168.102.59:8848,192. ...

  9. Vue学习笔记一:初识Vue

    目录 什么是Vue? 为什么要学习前端框架? MVC,MVP 和 MVVM 最简单的入门小案例 下载Vue.js 新建文件结构 写一个html 运行 可笑的小报错 Vue和MVVM 什么是Vue? V ...

  10. 快速掌握Nginx(三) —— Nginx+Systemd托管netcore应用

    以前dotnet web应用程序开发完成后,我们都是使用IIS部署在Windows Server上,如今netcore技术发展迅速,因为其跨平台的特性,将dotnet web应用程序部署在更方便部署和 ...