Linux 安装maven,jenkins持续集成


开发环境搭建—安装maven和jenkins持续集成
简书地址

1、安装maven

1.1、 创建一个maven文件夹,解压maven文件

[root@1169CKT ~]# cd /home/haieradmin/softs/
[root@1169CKT softs]# ls
apache-maven-3.5.2-bin.tar.gz  apache-tomcat-8.5.24.tar.gz  jdk-8u151-linux-x64.tar.gz  mysql57-community-release-el7-8.noarch.rpm  nginx-1.12.2.tar.gz  redis-4.0.6.tar.gz
[root@1169CKT softs]# mkdir /usr/local/maven
[root@1169CKT softs]# tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /usr/local/maven/

1.2、设置环境变量,在/etc/profile的文件末尾添加以下配置:

export M2_HOME=/usr/local/maven/apache-maven-3.5.2
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH

执行source命令让新配置立即生效:

[root@1169CKT softs]# source /etc/profile
[root@1169CKT softs]# 

1.3、验证

[root@1169CKT softs]# mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /usr/local/maven/apache-maven-3.5.2
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/local/java/jdk1.8.0_151/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
[root@1169CKT softs]# 

2、安装jenkins

安装jenkins简单来说需要下面四步:

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

install

2.1、 安装简介:

1、通过上面的安装,Jenkins将作为一个Linux守护进程,可以查看文件/etc/init.d/jenkins
2、创建一个名为Jenkins的Linux用户
3、生成日志文件 /var/log/jenkins/jenkins.log
4、Jenkins 默认端口是8080,在配置文件/etc/default/jenkins 中定义。

password

install plugins
install plugins

started

started

设置用户名密码:admin/admin123

首次访问

启动后访问:

进入jenkins

2.2、 配置权限

git代码库授权配置问题,需要配置ssh免密码登录,注意,必须是jenkins用户的授权,不是root用户
如果ssh或者scp时遇到错误类似如下:
ssh_exchange_identification: read: Connection reset by peer
那就是需要设置访问IP的白名单,具体操作步骤如下:
黑名单
cat /etc/hosts.deny
白名单
cat /etc/hosts.allow
加上需要访问本机的服务器ip地址,保存即可。
如果ssh到其他服务器出现
centos ssh: connect to host 10.138.227.188 port 22: No route to host
的错误,测需要在目标服务器上配置22端口的防火墙白名单,如果是firewall,执行如下命令

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

jenkins没有git权限

授权配置正确以后的样子大概是这样的
git授权ok

ssh-keygen -t rsa      #生成key 
cd /var/lib/jenkins/.ssh     #如果没有创建jenkins home的话,可以上jenkins的全局设置里查看jenkins主目录,然后查看ssh路径
scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys

如果jenkins启动时最后提示找不到JAVA_HOME,如下图所示,

java-home 错误

这个情况需要再tomcat的bin目录下找到setclasspath.sh文件,添加上JAVA_HOME目录。
找到tomcat的文件

添加

JAVA_HOME=/usr/local/java/jdk1.8.0_151

JRE_HOME=/usr/local/java/jdk1.8.0_151/jre

设置tomcat的java home

2.3、jenkins构建里的一些命令:
构建job的shell

#删除阿里云服务器中部署的包
ssh -p 22 root@x.x.x.x 'bash -x -s' < /opt/auto-deploy-scripts/remove-aliyun-questionnaire-test.sh
#使用scp命令把jenkins最新Build的包传送到阿里云服务器1中
scp -P 22 /var/lib/jenkins/workspace/chuangke_testserver_auto_deploy/target/questionnaire.war root@x.x.x.x:/opt/tomcat8_test/webapps
ssh -p 22 root@x.x.x.x 'bash -x -s' < /opt/auto-deploy-scripts/start_tomcat8_test.sh

两个脚本:
remove-aliyun-questionnaire-test.sh

#!/bin/bash
tomcat_pid=`ps -ef | grep tomcat | grep test| grep -v grep | awk '{print $2}'`
[ -n "$tomcat_pid" ] && kill -9 $tomcat_pid

rm -rf /opt/tomcat8_test/webapps/questionnaire*
rm -rf /opt/tomcat8_test/logs/localhost*
rm -rf /opt/tomcat8_test/logs/host-manager*
rm -rf /opt/tomcat8_test/logs/manager*
rm -rf /opt/tomcat8_test/logs/catalina.out
rm -rf /opt/tomcat8_test/work/Catalina/*

start_tomcat8_test.sh

#!/bin/bash
/opt/tomcat8_test/bin/startup.sh

如果是直接在jenkins 的Execute Shell里执行脚本,脚本在当前服务器,给当前服务器执行命令,则如下写法。
jenkins job shell

sleep 200
echo "--------begin deploy webservice --------"
date
/opt/c2m_scripts/backup_last_month_logs.sh
rm -rf /mnt/jenkins/jenkins_home/workspace/aliyun-testServer1-c2mwebservice-deploy-for-dev-test/c2mwebservice/target/c2mwebservice.war

2.5、配置邮件通知

管理员邮件地址

设置邮箱用户名

job set notification

收到邮件

以上是最简单的邮件配置,当构建出错是会发邮件。如果要修改发出的邮件的通知内容,或有更加复杂的操作,可以使用Email Extension Plugin插件进行配置。

如果用腾讯企业邮箱的话,配置如下:

腾讯邮箱

腾讯邮箱配置

备注:如果你用jenkins给本机部署应用,比如运行一个jar包,也许会发生的一件事,那就是jenkins部署没有报错,但是java -jar 后的应用还没启动自己就死了。这是因为默认不允许运行jenkins的衍生进程导致的,如果是远端服务器就没有问题,如果是本地运行,需要按照如下地址的说明配置一下。
jenkins中通过execute shell启动的进程会被杀死的问题

参考

Centos7中安装最新版maven3.5.0
How To Install Jenkins on Ubuntu 16.04
centos7下安装jenkins


评论
  目录