!jenkins.png](https://upload-images.jianshu.io/upload_images/4109786-e3ebbb84d5b12bca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>>>我的博客<<<
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
如果是centos系统
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
2.1、 安装简介:
1、通过上面的安装,Jenkins将作为一个Linux守护进程,可以查看文件/etc/init.d/jenkins
2、创建一个名为Jenkins的Linux用户
3、生成日志文件 /var/log/jenkins/jenkins.log
4、Jenkins 默认端口是8080,在配置文件/etc/default/jenkins 中定义。
如果这个页面起来,在服务器查看jenkins进程,发现没有,应该java的路径没有配好,错误时这样的:
[root@1169ckt jenkins]# service jenkins restart
Restarting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[FAILED]
[root@1169ckt jenkins]#
这时候修改/etc/init.d/jenkins文件 在java配置的地方加入本机的java环境即可。
参考:CentOS 7 安装 Jenkins
install plugins
started
设置用户名密码:admin/admin123
启动后访问:
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
授权配置正确以后的样子大概是这样的
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,如下图所示,
这个情况需要再tomcat的bin目录下找到setclasspath.sh文件,添加上JAVA_HOME目录。
添加
JAVA_HOME=/usr/local/java/jdk1.8.0_151
JRE_HOME=/usr/local/java/jdk1.8.0_151/jre
2.3、jenkins构建里的一些命令:
#删除阿里云服务器中部署的包
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里执行脚本,脚本在当前服务器,给当前服务器执行命令,则如下写法。
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、配置邮件通知
以上是最简单的邮件配置,当构建出错是会发邮件。如果要修改发出的邮件的通知内容,或有更加复杂的操作,可以使用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