环境信息
centos7.2
安装目录
maven下载与安装
GIT下载与安装
jenkins下载与安装
maven下载与安装
1. 安装前工作
下载与安装
下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
解压
tar -zxvf apache-maven-3.5.4-bin.tar.gz
移动并且改名
mv apache-maven-3.5.4 ./../apache-maven-3.5.4
查看位置
[root@iz2ze7qyvg1mht4uptlc5uz apache-maven-3.5.4]# pwd
/usr/local/java/apache-maven-3.5.4
编辑配置
vim /etc/profile
增加以下配置
export MAVEN_HOME=/usr/local/java/apache-maven-3.5.4
export PATH=${PATH}:${MAVEN_HOME}/bin
文件生效
source /etc/profile
查看是否安装成功
[root@iz2ze7qyvg1mht4uptlc5uz apache-maven-3.5.4]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/java/apache-maven-3.5.4
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_151/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.9.1.el7.x86_64", arch: "amd64", family: "unix"
GIT下载与安装
1. 安装前工作
下载
下载
wget https://www.kernel.org/pub/software/scm/git/git-2.9.2.tar.gz
解压
tar -xzvf git-2.9.2.tar.gz
移动并且改名
mv git-2.9.2 ./../git-2.9.2
查看位置
[root@iz2ze7qyvg1mht4uptlc5uz git-2.9.2]# pwd
/usr/local/java/git-2.9.2
安装
#进入解压后的git目录后,执行:
./configure
#执行编译
make all prefix=/usr/local/git
#编译完成后, 安装到 /usr/local/git 目录下
make install prefix=/usr/local/git
安装常见依赖问题
如果想省事请直接安装一下依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
[root@iz2ze7qyvg1mht4uptlc5uz git-2.9.2]# make install
GIT_VERSION = 2.9.2
* new build flags
CC credential-store.o
In file included from credential-store.c:1:0:
cache.h:40:18: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^
compilation terminated.
make: *** [credential-store.o] Error 1
#出现错误,增加zlib依赖
rpm -qa | grep zlib查看是否安装zlib
#没有安装
yum install zlib
#下面的这个需要安装
yum install zlib-devel
[root@iz2ze7qyvg1mht4uptlc5uz git-2.9.2]# make install
/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
需要安装perl的一个模块:perl-ExtUtils-Embed
yum install perl-ExtUtils-Embed -y
查看结果
git --version
创建账号
#为我们刚刚搭建好的 git 创建一个账号
useradd -m gituser(自己的账号)
#然后会让你输入密码(密码应该需要特殊符号+数据+大小写字母)
passwd gituser(刚刚创建的用户名)
创建 git 仓库并初始化
mkdir -p /data/repositories
cd /data/repositories/
git init --bare testGit.git
配置用户权限
#给 git 仓库目录设置用户和用户组并设置权限:
chown -R gituser:gituser /data/repositories
chmod 755 /data/repositories
#查找 git-shell 所在目录
(默认在/usr/local/git/bin/git-shell,如果不在用: which git-shell指令查找)
# 编辑 /etc/passwd 文件,将最后一行关于 gituser 的登录 shell 配置改为 g
gituser:x:1000:1000::/home/gituser:/usr/local/bin/git-shell
使用搭建好的 Git 服务
#克隆 test repo 到本地:
git clone gituser@ip:/data/repositories/test.git
jenkins下载与安装
Jenkins是一个Master-Slave的架构,它可以把任务发布到不同的节点上执行,典型的应用场景是你有2个运行环境,一个是测试环境,一个是生产环境,你可以指定工作流中,哪些任务在测试环境中执行,哪些任务在生产环境中执行。当然,如果你没有这样的需求,也可以不配置Slave.
1. 安装前工作
安装方式(四种)
1. 离线安装
## http://pkg.jenkins-ci.org/redhat/
wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm ## 下载(也可以Windows下载再转过来)
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key ## 公钥
sudo yum -y install jenkins-*.noarch.rpm
- 在线安装
## http://pkg.jenkins-ci.org/redhat/
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 yum -y install jenkins
- 基于 Tomcat 安装
安装并启动 Tomcat;
从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署;
浏览器访问:http://centos:8080/jenkins/
- 免安装方式
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
sudo java -jar jenkens.war ## 启动服务,直至看到日志 `Jenkins is fully up and running`
curl http://localhost:8080/ ## Jenkins 已就绪
密码破解
cd /var/lib/jenkins/users/admin #此为admin用户的目录,也可以对应自己创建的用户
vim config.xml //定位到<passwordHash>那一行
删除改行,改为
<passwordHash>#jbcrypt:$2a$10$pDQks0ytOkCfmpdgpLygrOC3uY7i/XnZHBKRQDhrBPwKoN2f5Kz8C</passwordHash>
重启一下jenkins
新密码为admin
启动与关闭
#关闭
service jenkins stop
#状态
service jenkins status
#启动
service jenkins start
#设置为自动启动
chkconfig jenkins on
jenkins安装中文显示
前提:先安装插件:Locale plugin
配置如下:
jienkins->【系统管理】->【系统设置】->【Locale】,输入:zh_CN,这里还有很多语言,比如:en_US等都是国际化标志。
访问端口登录
#查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
创建非对称密钥(一路回车)
ssh-keygen
配置maven,jdk,git(如果没有git插件配置项,去安装git的相关插件)
针对之前手动安装的maven需要在web界面配置进行结合。
系统管理—全局工具配置(Maven Configuration)配置:
对应的英文配置目录为
jenkins
——Manage Jenkins
———-Global Tool Configuration
然后配置Maven Configuration(配置maven的setting.xml位置)和JDK(java_home的位置)和Maven三项(maven_home的位置)
配置系统的一些属性
自动部署方式
使用jenkins搜索插件Publish Over SSH安装重启
jenkins创建项目的时候没有“创建一个maven项目的解决方案”
点击“可选插件” 然后在右边的过滤输入框中输入搜索关键字: Maven Integration Plugin 或者 Pipeline Maven Integration Plugin ,搜索到了以后,点击直接安装,
安装完成后重启就好了。
配置Publish over SSH
在系统管理-》系统设置里找到Publish over SSH
配置如下
接着配置我们的项目
讲解:
Transfer SetSource files:表示要上传的本地的war包及路径(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
Remove prefix:表示要上传时要去除的文件夹,移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将FinServer.war传到目标服务器,否则会在目标服务器创建target目录)
remote driectory:即表示执行时的路径,相当于把war包上传到这里了。远程目录(根据你的需求填写,这里没有填写默认会继承系统配置,即/mnt)
exec commad:要执行的命令;把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)
构建ssh自动发布的注意点
Jenkins搭建过程中,使用 Publish Over SSH 插件。发生 SSH: Transferred 0 file(s)。
百度、google了几个小时,终于找到答案,特此记录。
配置如下:
Source files **/* 表示{projectName}这个job的工作目录下所有的文件和目录。
Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空。
Remote directory 该操作是基于设定的服务器目录进行。
Exec command 远程服务器执行的命令。例如可以输出 service jenkins restart 或者 /home/xx. sh 均可。
总结
源文件 不要填绝对路径,要写相对路径。 举个栗子: 我的jar包路径是: /var/lib/jenkins/workspace/erp/target/erp.jar 这里要填 target/*。
自动执行脚本
#!/bin/sh
#defined
TOMCAT_HOME="/usr/local/java/apache-tomcat-8.0.47-jenkins/"
ID=`ps -ef | grep apache-tomcat-8.0.47-jenkins | grep -v grep |awk '{print $2}'`
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remover war file"
cd "$TOMCAT_HOME"/webapps
rm -rf ShiroDemo
rm -rf ShiroDemo-0.0.1-SNAPSHOT.war
echo "copy war to webapp"
cd /home/kunzai
cp ShiroDemo-0.0.1-SNAPSHOT.war "$TOMCAT_HOME"/webapps
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
讲解:
步骤:
先停掉tomcat
删除webapp下对应的war包
复制war到webapps
重启tomcat
构建
点击构建-就会运行了