经常部署项目头挺大的,今天研究一下自动化部署吧,以后也轻松一些。
准备工作
- 在CentOS(其它Linux也行,我喜欢用CentOS)种安装JDK和Tomcat:CentOS 7安装JDK 1.8和tomcat8.5
- 在CentOS种安装maven:Centos 7安装Maven及换成阿里镜像的记录
- 在CentOS种安装Git:CentOS 7安装Git并使用
- 创建一个代码仓库,我使用码云(gitee)作为中央仓库
CentOS 7安装Jenkins
下载安装
第一种方法
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
第二种方法
直接下载 rpm 安装
各个版本地址 https://pkg.jenkins.io/
wget https://pkg.jenkins.io/redhat/jenkins-2.156-1.1.noarch.rpm
rpm -ivh jenkins-2.156-1.1.noarch.rpm
使用yum安装可能会出现网络链接问题,请更换aliyun的yum源:
备份原来的yum源
$sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
设置aliyun的yum源
$sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
添加EPEL源
$sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
清理缓存,生成新缓存,执行yum更新
$sudo yum clean all
$sudo yum makecache
$sudo yum update
配置
vim /etc/sysconfig/jenkins
#监听端口
JENKINS_PORT=“8080”
配置权限
为了不因为权限出现各种问题,这里直接使用root
修改用户为root
vim /etc/sysconfig/jenkins
修改配置
JENKINS_USER=“root”
修改目录权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
4.启动
systemctl start jenkins
我这里启动失败了:
是java环境配置的问题。
找到你的jdk目录,我是在 usr/local/java/jdk1.8.0_171/下,创建软链接即可:
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
然后重新启动
systemctl start jenkins
查看状态:
systemctl status jenkins
访问jenkins地址 http:<ip或者域名>:8080
到这里Jenkins就安装完成了。
输入提示的文件种的密码,就进入控制面板了。
配置Jenkins
安装插件
选择安装推荐的插件即可
等待安装,可能会花一定的时间;第一次安装可能会有安装失败的,选择“重试即可”。
创建用户
可以创建一个用户,也可以使用admin账号继续。
可以看到这里有个消息:
点击纠正试试
配置插件
选择“Manage Jenkins”然后选择“Global Tool Configuration”
配置JDK
如果不知道JAVA_HOME的路径,可以使用命令:
echo $JAVA_HOME
取消勾选Install automatically
配置maven
我在配置时使用> echo $MAVEN_HOME没有找到,那就打开/etc/profile文件查看
最后应用–》保存
添加Maven工程构建插件
为了构建maven项目,需要添加一个插件“Maven Integration”
等待安装完成即可。
使用Jenkins发布一个项目
新建项目
②的选项需要“添加插件Maven Integration”
配置地址库
然后复制要部署的项目的码云地址
①填入刚才复制的地址
③需要添加码云账号和密码
配置好是这样
添加构建方式
clean install
测试构建
选择Build Now开始构建
点击进入构建查看控制台输出:
可以看到jenkins先从码云拉取最新代码,然后开始下载项目依赖所需的jar包。
构建完成:
最后几行可以看到构建好的包在哪个目录,我们去看看:
在状态集中可以看到构建用了多久时间。
在工作空间可以看到构建好的项目的目录
以war包形势部署到Tomcat
修改Tomcat配置
使Tomcat允许远程访问
先修改$CATALINA_HOME/webapps/manager/META-INF/context.xml为
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
<!-- 注释掉下面一行 -->
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
在$CATALINA_HOME/conf/tomcat-users.xml中添加用户名和密码
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin,admin-gui,manager,manager-script"/>
安装war包部署所需插件
添加项目发布配置
添加tomcat配置
①固定形势
②/表示以tomcat跟目录访问项目,如tomcat开在80端口,则http://127.0.0.1就可以访问项目
③添加tomcat的远程连接配置,选择你服务器上相应的tomcat版本
然后保存设置,回到项目下,选择“Build New”开始构建和部署项目:
构建并发布完成:
查看项目: