1、Jenkins安装
- 准备CentOS7的系统,虚拟机安装或者找个云服务器。
- 更新
yum update -y
,安装Java
,因为要运行Jenkins
的war
包:
yum install -y java-1.8.0-openjdk
- 官网下载最新的
war
包,下载地址见这里。可以本地下载,下载好之后传到服务器上:
scp jenkins.war root@172.16.25.153:~
- 多开几个远程终端窗口,先运行
war
包:
java -jar jenkins.war
# 输出以下信息
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
c487dce9ff3548578ad173d58545b52c
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
- 修改防火墙端口,放行
8080
,我们一会要通过这个端口访问:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
- 服务器地址+8080端口就可以访问了:
http://172.16.25.153:8080
。需要输入管理员密码,就是我们上面输入的那段中的密码。 - 安装推荐的插件。需要等一段时间。安装很慢的话,也需要先安装一下,走个过场才会生成一些配置文件,我们再生成了配置文件后,就可以关掉
java -jar jenkins.war
的进程,然后修改配置文件,主要修改两个地方,修改之后在重启java -jar jenkins.war
,然后浏览器重新访问,输入密码后选择恢复
安装插件,一会就好:
# 第1处
# 更新源文件,里面的url需要修改
vi /root/.jenkins/hudson.model.UpdateCenter.xml
# 修改成以下源
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
# 第2处
cd /root/.jenkins/updates
# 有个default.json文件,将文件中的http://www.google.com替换成http://www.baidu.com
# 将http://updates.jenkins-ci.org/download替换成https://mirrors.tuna.tsinghua.edu.cn/jenkins
# 利用sed
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
- 设置用户名和密码,开始使用。
2、部署Java程序
- 新建一个任务,如果发现没有
Maven
项目,可能是没有安装maven
插件,去插件管理中安装。安装之后,再去新建一个任务,输入任务名称比如backend
,然后选择构建一个Maven项目
。
- 在插件管理中安装
Gitlab Authentication
插件。在服务器上安装git
,用yum install git
,不然添加gitlab
仓库会报错。服务器上安装maven
,使用yum install maven
。安装完git
和maven
之后需要在Jenkins
上配置一下,不然创建任务的时候用到仓库
和编译
部分会提示报错等。配置在系统管理 -> Global Tool Configuration
。git
部分只要服务器安装过这边就自动默认填好了,下面的MAVEN_HOME
需要自己填写(名称随便填)。
- 安装
publish over ssh
插件,这个插件是构建后发送到目标服务器上的。在系统配置
中配置SSH
,选高级选项,输入服务器密码,下面有个test configuration
测试一下是否连接成功:
- 新建任务时选择
git
,使用http
连接,然后输入git
的账号和密码。 - 点击立即构建即可。
Jenkins
有个/root/.jenkins/workspance
目录,代码和打包结果都在这,具体配置如下:
#!/bin/sh
cd /root
pid=`cat /root/pid`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid #kill该进程
fi
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup java -jar /root/backend-0.0.1-SNAPSHOT.jar & echo "$!" > pid
3、部署Vue程序
- 先安装
nginx
,使用yum
源方式安装。安装方式见官网,安装后用systemctl start nginx
启动,访问80端口看是否正常。默认的静态文件在/usr/share/nginx/html/
,部署的时候把静态文件放在这个目录即可。 - 在
Jenkins
的插件管理中安装NodeJS
插件,安装之后到Global Tool Configuratiuon
中配置NodeJS
(下面是勾选了自动安装,这一步可省略,因为构建的时候出现安装Node
太慢,见下面,我们自己下载node安装然后在这里不勾选自动安装而是配置我们安装的路径)。
Unpacking https://nodejs.org/dist/v10.20.1/node-v10.20.1-linux-x64.tar.gz to /root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node on Jenkins
- 我们自己下载去官网下载node。
wget http://nodejs.org/dist/v10.18.0/node-v10.18.0-linux-x64.tar.gz
tar xvzf node-v10.18.0-linux-x64.tar.gz -C /opt
# 修改环境变量,并刷新生效
vi /etc/profile
export PATH=/opt/node-v10.18.0-linux-x64/bin:$PATH
source /etc/profile
# 安装cnpm和配置镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 检查是否安装成功
node -v
cnpm -v
重新进入Global Tool Configuratiuon
中配置NodeJS
,配置我们刚刚设置的node
路径/opt/node-v10.18.0-linux-x64
。后面可以用cnpm
代替npm
。
- 执行的
shell
也不需要指定淘宝镜像什么的,直接使用cnpm
:
echo $PATH
cnpm install
cnpm run build
cd dist
rm -rf dist.tar.gz
tar -zcvf dist.tar.gz *
cd ../
打包传输:
cd /usr/share/nginx/html/
rm -rf *
cp /root/dist.tar.gz .
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz
现在相当于直接放在html
中了。浏览器访问即可。