jenkins部署及创建任务更新后端tomcat应用

过程:开发(git) -->git主库–>jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器
主机需要两台:一台部署jenkins,一台部署tomcat服务
部署:
git环境部署:
1、安装依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
2、git官网下载最新版本GIT
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
3、安装git
tar xf git-2.9.5.tar.gz -C /usr/local/
cd git-2.9.5/
make prefix=/usr/local/git all(编译)
make prefix=/usr/local/git install(安装)
修改环境变量
vim /etc/bashrc
PATH=PATH:PATH:HOME/bin:/usr/local/git/bin
source /etc/bashrc(加载)
git --version(测试)

jdk环境部署:
1、官网下载jdk(注意:不能用jdk9和jdk10)
2、解压安装
tar xvzf jdk-8u151-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
mv jdk1.8.0_151 jdk
修改环境变量
vim /etc/bashrc
JAVA_HOME=/usr/local/jdk
export PATH=PATH:PATH:JAVA_HOME/bin
source /etc/bashrc(加载)
测试jdk
java -version

部署maven环境:
1、下载并解压
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
tar xvzf apache-maven-3.5.3-bin.tar.gz -C /usr/local/
mv /usr/local/apache-maven-3.5.3/ /usr/local/maven
2、修改环境变量
vim /etc/bashrc
export M2_HOME=/usr/local/maven
export M2=M2HOME/binPATH=M2_HOME/bin PATH=M2:PATH:PATH:HOME/bin:/usr/local/git/bin
export JAVA_HOME=/usr/local/jdk
export PATH
source /etc/bashrc(加载)
测试maven
mvn -version

部署tomcat环境(两台服务器都需要部署,jenkins也需要提供页面访问):
1、官网下载tomcat
2、解压部署
tar xvzf apache-tomcat-9.0.1.tar.gz -C /usr/local/
mv /usr/local/apache-tomcat-9.0.1/ /usr/local/tomcat
3、定义Tomcat所需环境变量
vim /etc/profile
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
source /etc/profile
4、启动tomcat
/usr/local/tomcat/bin/startup.sh
5、测试tomcat
http://IP:8080
6、关闭tomcat
/usr/local/tomcat/bin/shutdown.sh

部署Jenkins:
1、官网下载jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
2、部署jenkins.war到tomcat下
cp jenkins.war /usr/local/tomcat/webapps/
3、启动tomcat: 注意启动tomcat会自动解压webapps下的war包
/usr/local/tomcat/bin/startup.sh
4、登陆jenkins
http://IP地址:8080/jenkins
添入以下文件密码到上图页面中
cat /root/.jenkins/secrets/initialAdminPassword
然后点击继续按钮
选择suggested(安装默认插件)的插件进行下载
jenkins部署及创建任务更新后端tomcat应用
然后等待插件安装,注:因为网速原因,插件可能下载失败,可以把失败记录下来,进入系统之后
手动重新安装未安装好的插件;也可以重试,继续下载安装。
5、管理插件(根据实际环境下载插件)
配置的是 git + maven 方式的自动化部署,所以git和maven的相关插件是必须的,还有一个ssh用于机器间的文件传送
安装插件Deploy to container(支持自动化将代码部署到tomcat容器)
安装插件Maven Integration( jenkins 利用maven编译,打包,所需插件)
安装git相关插件(GIT plugin/GitHub Authentication/GitHub Branch Source Plugin/GitHub Organization Folder Plugin)
安装插件:Publish Over SSH(于机器间的文件传送)
6、Jenkins系统设置
jenkins部署及创建任务更新后端tomcat应用
配置jdk目录
jenkins部署及创建任务更新后端tomcat应用
配置git目录
jenkins部署及创建任务更新后端tomcat应用
配置maven并保存
jenkins部署及创建任务更新后端tomcat应用
7、SSH 设置(推送公钥到前端服务器)
jenkins服务器准备秘钥认证
ssh-******
ssh-copy-id -i 前端服务器IP
在jenkins上配置ssh信息
cat ~/.ssh/id_rsa
jenkins部署及创建任务更新后端tomcat应用
8、新建任务
创建任务
jenkins部署及创建任务更新后端tomcat应用
定义名称和类型
jenkins部署及创建任务更新后端tomcat应用
设置maven
1.公有仓库(github)
设置描述
jenkins部署及创建任务更新后端tomcat应用
选择版本控制器和仓库地址
jenkins部署及创建任务更新后端tomcat应用
设置触发器(保持默认 手动触发)
jenkins部署及创建任务更新后端tomcat应用
设置构建(编译打包) clean package -Dmaven.test.skip=true
jenkins部署及创建任务更新后端tomcat应用
构建后操作
在构建后设置中 选择:(send build artifacts over ssh)通过SSH发送构建工件
jenkins部署及创建任务更新后端tomcat应用
jenkins部署及创建任务更新后端tomcat应用
备注:name:ssh server 因为之前的配置会默认出现tomcat业务服务器的名字
source file:构建之后,在jenkins服务器上是可以自动看到war包的。(该路径不需要创建) # ls /root/.jenkins/jobs/testjob1/builds/target/.war
Remove prefix:自动删除路径前缀(不需要创建路径前缀)
Remote directory:前端服务器上的路径,需要提前在前端服务器上创建该目录。
Exec command:前端服务器在接收到源码之后的自定义动作,比如:将源码拷贝到网站的主目录(/jenkins),并执行一些其他操作如重启服务器等(或创建文件touch)
#mkdir /jenkins/sh
# cat /jenkins/sh/deploy.sh
cp -r /jenkins/war/
.war /jenkins
touch /tmp/aaaaaa.txt
#chmod +x /jenkins/sh/deploy.sh

2.私有git仓库(gitlab git)
私有仓库源码管理
jenkins部署及创建任务更新后端tomcat应用
注释:如果是私有库,必须添加一个Credentials,否则会报fatal: The remote end hung up unexpectedly原因:没有配置git的ssh key。
解决方法:执行下面的命令,生成key
ssh-****** -t rsa -C "[email protected]"然后将~/.ssh/目录下的id_rsa.pub中的公钥,放到git的ssh key中。再在Jenkins中创建新的Credentials。类型是SSH Username with private key。Username使用ssh-******中用到的邮箱,Private Key中选择“From the Jenkins master ~/.ssh”即可。修改后,问题解决。

创建credentials
步骤1:
在 jenkins 中使用 git 插件从仓库中 pull 代码的时候会要求 jenkins 必须有 pull 权限(尤其是当git开启了ssh认证的时候),在配置 jenkins job 的时候有以下这些方法配置 ssh key:

登陆 jenkins 服务器,切换到 jenkins 用户(wing直接使用的root账户),生成 ssh key,然后把 公钥添加到 git 服务器上.
#su - jenkins //切换到 jenkins HOME 目录
#ssh-****** -t rsa // 生成 ssh key, 复制 xxx.pub 公钥到 git 服务器上即可.

步骤2:在jenkins界面,依次点击:
Credentials -> System -> Add domain:
Domain Name: 填写你git服务器的地址,如 github.xxx.com(wing填写的IP地址,127.0.0.1)
Description: 随便写一点描述,如 This is the Credential for github
jenkins部署及创建任务更新后端tomcat应用
点击 ok 后,再点击 “adding some credentials?”
进入页面后,可以选择 Username with password 或者 SSH Username with private key, 根据你的情况选择,这里我们选择 Username with private key:
Username: 随便起一个名字,以便在创建 Job 的时候使用该 Credential
Private Key:可以指定文件,也可以使用默认的 ~/.ssh,当然也可以直接将私钥复制粘贴到此处。
Passphrase: 如果你在创建 ssh key 的时候输入了 Passphrase 那就填写相应的Passphrase,为空就不填写
ID: 空
Description: 空
jenkins部署及创建任务更新后端tomcat应用
点击 ok 后 Credential 就创建好了。
如果你再新建 Job 就可以看到我们的 Credential 选项了:
jenkins部署及创建任务更新后端tomcat应用
9、构建任务
立即构建
jenkins部署及创建任务更新后端tomcat应用
jenkins部署及创建任务更新后端tomcat应用
jenkins部署及创建任务更新后端tomcat应用
控制台最后一行输出Finished: SUCCESS 表示代码已经发布到前端服务器上面
验证前端服务器ls /jenkins/war 下面是否有war包,并且tmp目录下面是否新建了aaaa.txt文件