jenkins部署

环境:

[root@jenkins ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

关闭防火墙及selinux

[root@jenkins local]# systemctl stop firewalld

[root@jenkins local]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@jenkins local]# sed -ri '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

[root@jenkins local]# setenforce 0

1、部署git

安装依赖包:

[root@jenkins ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y

git官网:

https://mirrors.edge.kernel.org/pub/software/scm/git/

软件:git-2.9.5.tar.gz

git官网下载安装包,解压并编译安装

[root@jenkins /]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

[root@jenkins ~]# tar -xf git-2.9.5.tar.gz

[root@jenkins ~]# cd git-2.9.5

[root@jenkins git-2.9.5]# make prefix=/usr/local/git all

[root@jenkins git-2.9.5]# make prefix=/usr/local/git install

修改环境变量

[root@jenkins ~]# echo 'PATH=$PATH:$HOME/bin:/usr/local/git/bin' >>/etc/bashrc

[root@jenkins ~]# source /etc/bashrc

拓展积累:

关于bashrc和profile

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

 

测试是否安装成功

[root@jenkins ~]# git --version

git version 1.8.3.1

2、部署jdk环境

下载

jdk-8u151-linux-x64.tar.gz

注意:不能用jdk9和jdk10

如果系统中已安装java-1.8.0-openjdk请先卸载。

卸载openjdk:

[root@jenkins ~]# yum erase `rpm -qa | grep openjdk`  -y

解压

[root@jenkins ~]# tar -xf jdk-8u151-linux-x64.tar.gz -C /usr/local/

[root@jenkins ~]# cd /usr/local/

[root@jenkins local]# mv jdk1.8.0_151 jdk

修改环境变量:(不要设置重复的环境变量)

[root@jenkins local]# echo 'JAVA_HOME=/usr/local/jdk' >>/etc/bashrc

[root@jenkins local]# echo 'export PATH=$PATH:$JAVA_HOME/bin' >>/etc/bashrc

[root@jenkins local]# source /etc/bashrc

测试是否安装成功

[root@jenkins local]# java -version

java version "1.8.0_151"

Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

3、部署maven

下载和解压Maven:

官方下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/

下载

apache-maven-3.5.3-bin.tar.gz

解压

[root@jenkins ~]# tar -xf apache-maven-3.5.3-bin.tar.gz -C /usr/local/

[root@jenkins ~]# cd /usr/local/

[root@jenkins local]# mv apache-maven-3.5.3 maven

修改环境变量

[root@jenkins local]# echo 'export M2_HOME=/usr/local/maven' >>/etc/bashrc

[root@jenkins local]# echo 'export M2=$M2_HOME/bin' >>/etc/bashrc

[root@jenkins local]# echo 'PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin' >>/etc/bashrc

[root@jenkins local]# echo 'export JAVA_HOME=/usr/local/jdk' >>/etc/bashrc

[root@jenkins local]# echo 'export PATH' >>/etc/bashrc

[root@jenkins local]# source /etc/bashrc

测试是否安装成功

[root@jenkins local]# mvn -version

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)

Maven home: /usr/local/maven

Java version: 1.8.0_151, vendor: Oracle Corporation

Java home: /usr/local/jdk/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-862.11.6.el7.x86_64", arch: "amd64", family: "unix"

4、部署tomcat

安装Jdk8.0 注意:是8版本的JDK

官网下载tomcat:

apache-tomcat-9.0.1.tar.gz

解压

[root@jenkins ~]# tar -xf apache-tomcat-9.0.1.tar.gz  -C /usr/local/

[root@jenkins ~]# cd /usr/local/

[root@jenkins local]# mv apache-tomcat-9.0.1 tomcat

定义Tomcat所需环境变量

[root@jenkins local]# echo 'CATALINA_HOME=/usr/local/tomcat' >>/etc/profile

[root@jenkins local]# echo 'export CATALINA_HOME' >>/etc/profile

[root@jenkins local]# source /etc/profile

启动tomcat

[root@jenkins local]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

ps:

tomcat关闭方式:

# /usr/local/tomcat/bin/shutdown.sh

测试tomcat

浏览器访问192.168.122.229:8080,结果如下:

确认tomcat是否启动,也可以直接看8080、8005、8009这几个端口

[root@jenkins local]# ss -antpl |egrep "8080|8005|8009"

LISTEN     0      1         ::ffff:127.0.0.1:8005                    :::*                   users:(("java",pid=1471,fd=69))

LISTEN     0      100         :::8009                    :::*                   users:(("java",pid=1471,fd=53))

LISTEN     0      100         :::8080                    :::*                   users:(("java",pid=1471,fd=48))

查看tomcat日志

# tail -f /usr/local/tomcat/logs/catalina.out

配置tomcat的角色和用户

在tomcat目录conf文件夹下tomcat-users.xml

[root@jenkins conf]# vim /usr/local/tomcat/conf/tomcat-users.xml

# 追加(按需配置),目前用不到

  <role rolename="manager-gui"/>

  <role rolename="admin"/>

  <role rolename="manager"/>

  <role rolename="manager-script"/>

  <user username="tomcat" password="tomcat" roles="manager-gui,admin,manager,manager-script"/>

 

5、部署jenkins

官网下载jenkins:

http://updates.jenkins-ci.org/download/war/

软件名称:

    jenkins.war

下载jenkins,并部署jenkins.war到tomcat下

[root@jenkins ~]# wget http://mirrors.shu.edu.cn/jenkins/war/2.122/jenkins.war

[root@jenkins ~]# cp jenkins.war  /usr/local/tomcat/webapps/

[root@jenkins ~]# ls /usr/local/tomcat/webapps/

docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT

启动tomcat:(注意启动tomcat会自动解压webapps下的war包)

[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

浏览器访问http://127.0.0.1:8080/jenkins,结果如下:

 按照提示获取jenkins解锁密码,填写并继续

[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword

00d638cfc2d9486ca89f1b387bbea9e2

选择安装推荐的插件进行下载,等待安装完成。 

因为网速原因,插件可能下载失败,没关系,把他们记录下来,比如下图的两个插件,点击继续,进去之后手动重新安装未安装好的插件;也可以重试,继续下载安装。

如果全部顺利安装成功会自动跳转到如下界面

创建管理员账户,设置用户名、密码、全称、邮箱地址。设置完成后继续,到如下界面:

点击保存并使用

问题及解决 :如果这个页面过一会消失了。并且常时间空白。可能需要你登录了。换个浏览器,打开相同的地址就会出现认证页面。

点击开始使用jenkins

上图是前面创建的管理员用户登录的。

到此,告一段落,如果前面 有未安装成功的插件,可以到Manage Jenkins(系统管理)→Manage Plugins(插件管理),去搜索前面安装失败的插件,手动安装!


jenkins部署——续1之公有git仓库

1、插件安装

我们配置的是 git + maven 方式的自动化部署,所以git和maven的相关插件是必须的,还有一个ssh用于机器间的文件传送

3个必须的插件:

    GIT plugin (可能已经默认安装了)

    Publish Over SSH (远程Shell)

    Maven Integration plugin

 

安装插件Deploy to container:

作用: 支持自动化将代码部署到tomcat容器

 

安装过程

    系统管理-->插件管理-->可选插件-->过滤Deploy to container-->勾选,点击下边的按钮:直接安装,这个可能时间较久,等待即可。

 

安装完之后,如果勾选了:安装完成后重启jenkins 那么会重启jenkins。

安装插件:Maven Integration

作用: jenkins 利用maven编译,打包,所需插件

安装过程:同第一个插件

安装git相关插件,安装过程同第一个插件:

检查已安装好的插件GIT plugin,如果没有进行安装,和上边的步骤一样

安装插件:Publish Over SSH,和上边的步骤一样

检查错误配置

    左侧:点击“系统管理”

    1)如果有“编码问题”错误,在Tomcat–>conf–>server.xml文件中修改即可

[root@jenkins ~]# head -1 /usr/local/tomcat/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>

    2)如果有”反向代理设置有误“错误,请忽略

看这里

前面没有强调的都设置为默认即可,插件已经基本准备好了,下面还要再做一些基础配置

2、Jenkins系统设置

    路径

        系统管理->(全局工具配置)Global Tool Configuration,配置jdk,git,maven的根目录

    图示

2.1 找到全局配置工具

2.2 配置jdk目录

 

  配置JDK根目录:注意不能是JDK9.0,切忌

2.3 配置git目录

2.4 配置maven

3、ssh设置

目的:(192.168.122.229)服务器上的maven将开发产生的*.war包。通过SSH推送到远程tomcat 服务器上(192.168.122.52)。

192.168.122.229是jenkins    

192.168.122.52是tomcat网站服务器

注意:这里的192.168.122.52是一台tomcat网站服务器。什么都不用安装,接到代码即可。

3.1 准备密钥 认证

[root@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:ecqezvBv1WJTa3IJZ2mDi1jLQUuvg1ZYSplNXp3NM2I root@jenkins.com

The key's randomart image is:

+---[RSA 2048]----+

|         =. .. + |

|        +.=. Eooo|

|       . *.o....o|

|        o.= + B  |

|        S*.= O + |

|       .+o* B *  |

|      ..o  + *   |

|       = ..      |

|       .*o.      |

+----[SHA256]-----+

[root@jenkins ~]#

[root@jenkins ~]# ssh-copy-id -i 192.168.122.52

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

The authenticity of host '192.168.122.52 (192.168.122.52)' can't be established.

ECDSA key fingerprint is SHA256:ax2Dal82Zp6THPHJUdwE5ZIR7WABEqVlf2n1dg2davc.

ECDSA key fingerprint is MD5:f4:14:30:81:f3:ee:4e:c0:87:7c:eb:03:9c:ba:bc:1a.

Are you sure you want to continue connecting (yes/no)? yes

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

root@192.168.122.52's password:



Number of key(s) added: 1



Now try logging into the machine, with:   "ssh '192.168.122.52'"

and check to make sure that only the key(s) you wanted were added.



[root@jenkins ~]# ssh 192.168.122.52

Last login: Tue Oct  9 09:31:39 2018 from ceshi

# 登录不需要密码即可

[root@ceshi ~]# exit

登出

Connection to 192.168.122.52 closed.

3.2 在jenkins上配置ssh信息

进入系统设置

准备私钥

[root@jenkins ~]# cat ~/.ssh/id_rsa

-----BEGIN RSA PRIVATE KEY-----

MIIEpAIBAAKCAQEAlepbvevcqZSWNOHiJOjlYcoXGwzuXdSGYQHo8ohiAC76fAws

oJNpYd97EWdDRSvo22a3PuFn3Ri+f+iOsx2mAj9xtXqGpD3KKP2KJ/aQ2o99ydLk

PCQd3q3fSIyeKPYuMQx3ldinHQ3RHNHBcBQ7pRa2cDN2yNPbXBCUL6ZNrzteAV9h

nQwXsh8wirJKJ19So5aM/M4aVySKjcUpsL8zr+ldq3BpwFl9ipV/i/TBhIx9axSS

EaqN3l2cB5zMpNZmXgytJMW0iZaDm/hfL5YIw3Q0fmYCfEybbDra2MF5HtjFrxPr

agUpAw5mdYZpm3ed9G1z1QUrcNW0pKWIp9HMqQIDAQABAoIBADuijHgSWScEOnQy

3ti75HNwBpz2GeQtZH82WUoRQpq8FVw/I4mE2kjas4QKxdHAU9LjG0XiOITVEQKk

qg9KXf1K65q7cM/o3IBNyyV2iczHg8xDHhNmcpNgKxAbD9dPhrRwNynekyuVkXeb

YQ2KnudfD5e2gSwGSp5m4evKheCMa0wXtrg8lZq9Rs6qZSzAgkfkYuJUAp1Osa4N

TEW5HK3OpCc1x8R/dAAWfhdxOh3fxFPNUkzrtLhKRNgDn5Ha4S1Q3lAhQSzjtgtV

upt/yMfv3yd+6sAY0+9aJCgOo+dYZfE458y5lejtsosEEctr/EGwo4Y2mOzj3Em8

hveld1kCgYEAxhqD8Fa2RJjlQBURbgBc7EgFg6D3rCAP0VYyyie4KzPnUSq4dpRh

zZg/BKny2XwZH5TaFvZp6cXk/xiKaDFLS0/CNH9puYrTg6UXJYCcs521K1aoOYWo

BJbiK6Ex2Fb3r8nYyddn7hzzNgbsYKCSdR+br1pIwqMKynfW1GKq5jsCgYEAwbqP

cxUCAUwQbQ13+OSrpG8Z6nBzQwPeO+kBIur+uMJI2XEWEnRiwa9//vpyEk5PK0oG

psM1eD2jjabQVFUeE7p4J/8iqOaiwyuJC3q/tS/fr3fZkohaHbwg7tPD6Jox6KZg

YIpVFpSbPlRqlAhAi4DGAt2Ufap+LAKnONWnlmsCgYEAxEG0gD+HZsIKK8gzckTN

yg8310V62H0S7pJ00q0y2Soced7WzDMICYRQujAbtLYqtYzj2mfYWY6B5O7M/5gG

PeAQR64KcZRFI2BEZBTcKV2OBBdfpUzyPUm1Wv/gv7C4xOA08xGBlvX7RITrXHb3

YS0lMT1CZADeSeMbY2E0ac0CgYAJAQjFyoYrVUO2LdgTo10u6VMFCHDy/m0Hz86T

tuRb5fvIz269MNeeNO/4A9/lZepcEra4bX5Atmyxmr04DjS1qgcHpN4Rh5atB4r5

E51xaGY3G5TrMJcvppzJPOJwHyqOq5zzH7rQr9t/TCEf/DozwapyW6YZKSFwHjdz

dsqxPQKBgQCawYbFLfBnVEFAO+htyvSIxnC43S3XBcuNN1I/azQNbCs5GdRQpGHT

IjUVN7dfAkRLmo3XRjR5qlH2OHWY4x0WzPgmwCQYasO6nmcMe48nLUOftPIV13ee

5COJBPPFB9a9HfCm9hoqeEcxE7S5Tp1cNDLMkwdNhpj0RCCnL9jCbQ==

-----END RSA PRIVATE KEY-----

[root@jenkins ~]#

复制cat出来的所有内容,粘贴到下一步页面上的key中。

 

配置完成点击测试,返回success,保存

到此,ssh配置完成,如有其它远程网站服务器,add同理添加。


新建任务

1、新建任务

2、定义名称和类型

 

创建名称→选择maven项目→确定

 3、设置maven

3.1 公有git仓库

3.1.1 设置描述

设置完,保存

3.1.2 选择版本控制器和仓库地址

选择源码管理→Git→填写Rrpository URL,保存 

 注意:公有仓库可以不用配置credentials,如果是私有仓库,这里需要建立credentials身份认证。

3.1.3 设置触发器(保持默认)

3.1.4 设置构建(编译打包)

 手动添加Goals and options,保存: clean package -Dmaven.test.skip=true

3.1.5 构建后的操作

按上述配置好,即可保存。

 

说明

    name:ssh server 因为之前的配置会默认出现tomcat服务器的名字

    source file: 构建之后,在jenkins服务器上是可以自动看到war包的。(该路径不需要创建)

#  ls /root/.jenkins/jobs/testjob1/builds/target/*.war

我的实际位置

[root@jenkins ~]# ls /root/.jenkins/jobs/testjob1/builds/3/springmvc-maven\$easy-springmvc-maven/archive/springmvc-maven/easy-springmvc-maven/0.0.1-SNAPSHOT/
easy-springmvc-maven-0.0.1-SNAPSHOT.pom
easy-springmvc-maven-0.0.1-SNAPSHOT.war

     Remove prefix:自动删除路径前缀(不需要创建)

    Remote directory: tomcat服务器上的路径,需要提前在192.168.122.52上创建该目录(注意:这是在web服务器上创建的)。

用来存放网站源代码。(需要后台创建)

[root@ceshi ~]# mkdir -p /jenkins/war

     Exec command:tomcat(192.168.122.52)在接收到源码之后的自定义动作(注意:这是在web服务器上创建的)。

比如:将源码拷贝到网站的主目录(/jenkins),并执行一些其他操作如重启服务器等(或创建文件touch)(需要后台创建)

[root@ceshi ~]# mkdir  /jenkins/sh
[root@ceshi ~]# cat /jenkins/sh/deploy.sh
#实际需要将jenkins/war下的 拷贝到tomcat的发布目录
mv /jenkins/war/*.war  /
[root@ceshi ~]# chmod +x /jenkins/sh/deploy.sh

4、测试

说明:由于在web服务器端,我未安装tomcat,我的脚本是将jenkins服务器推过来的war包,拷贝到  / 下。当能在  / 下看到对应我war则说明整个流程没有问题。

点击对应任务的小时钟图标,能看到具体详情

 

 

任务完成前,web端没有获看到war包

[root@ceshi ~]# ls /

bin   dev  home     lib    media  opt   root  sbin  sys  usr

boot  etc  jenkins  lib64  mnt    proc  run   srv   tmp  var

任务完成后,web端可以看到war包

[root@ceshi ~]# ls /

bin        dev                       home     lib64  opt   run   sys  var

boot       easy-springmvc-maven.war  jenkins  media  proc  sbin  tmp

etc                       lib      mnt    root  srv   usr

至此,整套上线流程基本完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值