Jenkins 自动化部署

1.JENKINS 是什么

Jenkins是一个自包含的、开源的自动化服务器,能够用于自动化与构建、测试、交付或部署软件相关的各类任务。前端

Jenkins能够经过本机系统包、Docker安装,甚至能够由任何安装了Java运行时环境(JRE)的机器独立运行vue

2.在centos 系统上安装jenkins

三种方式java

  • 经过 docker 安装
  • 经过jenkins.war 在tomcat中运行
  • 经过yum 的方式安装

2.1 经过docker 安装

  • 建立jenkins 文件,并修改文件权限
mkdir -p /usr/local/atom.hu/jenkins
chown -R 1000:1000 /usr/loca/atom.hu/jenkins
复制代码
  • 拉取镜像
docker pull jenkins
复制代码
  • 启动镜像
docker run -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /usr/local/atom.hu/jenkins/:/var/jenkins_home -d jenkins
复制代码
  • 稍做等待 node

  • 进入目录查看密码linux

[root@localhost secrets]# cat initialAdminPassword 
9ca7368042fe45be8b693ab43e7797d1
复制代码

2.2 经过jenkins.war 的方式安装

jenkins官网中下载war包webpack

能够直接右键复制软件地址, 使用 wget 命令进行下载nginx

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
复制代码

下载完成后 将项目放入tomcatwebapps 文件夹下git

2.3 经过yum的方式安装jenkins

获取软件安装源web

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
复制代码

安装jenkinsspring

yum -y install jenkins
复制代码

安装完成后 启动jenkins

systemctl start jenkins
复制代码

经过对三种方式的实验 每种方式都进行了探索, 最后选择经过yum的方式进行安装, 也是最麻烦的安装方式, 可是相对可靠, docker 的安装方式虽然简便, 可是会遇到比较多软件环境问题. 使用jenkins.war的方式, 也相对比较简便, 可是也是遇到比较多的问题, 最后仍是放弃了, 采用了最原始也是最麻烦的方式

3.0 使用jenkins自动化部署的前提条件

为了保证后面的配置可以顺利进行, 须要一些前期的准备工做

修改jenkins的配置文件

# 打开jenkins的配置文件
vim /etc/sysconfig/jenkins
# 修改 $JENKINS_USER 的值为root
$JENKINS_USER="root"
复制代码

修改Jenkins相关文件夹用户权限

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
复制代码

重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root

# 重启Jenkins(如果其余方式安装的jenkins则重启方式略不一样)
systemctl restart jenkins
# 查看Jenkins进程所属用户
ps -ef | grep jenkins
# 若显示为root用户,则表示修改完成
复制代码

到此为止, 前期准备工做就算完按成了, 能够开始进行jenkins自动化部署了

4.0 在jenkins中安装插件

在jenkins中, 新手推荐直接安装推荐插件, 后设置管理员密码后, 进入主界面, 切记不要忘记密码, 虽然也有解决办法, 可是仍是记住密码的好

安装必要的jenkins插件

Git Parameter Plug-In

在后续的自动化部署中, 咱们须要经过参数, 设置不一样的分支, 对不一样的分支进行打包, 须要这个插件的支持

Maven Integration plugin

在部署spring boot 项目的时候, 咱们须要建立maven项目, 在安装了这个插件以后, 在建立项目的时候, 若是没有这个插件, 在建立项目的时候就没有 构建一个maven项目的选项

Publish Over SSH

有的时候咱们在A机器上搭建的jenkins 可是却多是在B机器上部署项目, 须要 Publish Over SSH的支持

这里注意, 在填主机Ip的时候, 若是两台机器同属一个运行商的话, 尽可能填写内网IP比较好, 这个很重要

5.0 在服务器中添加相关支持环境

  1. 安装 openjdk 1.8 jenkins 的运行须要openjdk依赖

官方说法

You will need to explicitly install a Java runtime environment, because Oracle's Java RPMs are incorrect and fail to register as providing a java dependency. Thus, adding an explicit dependency requirement on Java would force installation of the OpenJDK JVM.

yum install java-1.8.0-openjdk
复制代码
  1. 安装 git
yum install git
复制代码
  1. 安装 node, 后续会部署前端项目须要
# 下载安装包
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz

# 解压
tar -xvf node-v10.15.3-linux-x64.tar.xz -C ./

# 将node命令和npm设置软链接到 /usr/bin 中
ln -s ./node /usr/bin/node
ln -s ./npm /usr/bin/npm

# 而后在其余的地方均可以使用这两个命令了
复制代码
  1. 安装maven, 并在/etc/profile 中配置

6.0 系统配置

在全局配置工具中, 配置 jdk, maven, git, node 的安装路径

7.0 自动化部署 前端vue项目

部署场景, 在A机器进行webpack打包, 将打包后的文件,发送到B机器上指定的文件夹, 经过nginx代理实现访问

  1. 建立一个自由风格的软件项目

2.填写项目描述

  1. 选择参数化构建过程, 后续能够选择不一样分支进行打包

  1. 选择不一样的版本控制工具 svn 和 git均可以, 这里咱们使用git

须要添加 本身的用户和密码, 否则会出现下面的状况

  1. 在构建环境中选择 Send files or execute commands over SSH after the build runs

这里的配置为, 在本地构建完成以后, 咱们须要将哪些文件发送到目标主机上, 发送到目标主机上, 并执行什么命令

cd /home/project/web/test  
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz
复制代码

/home/project/web/test 为目标主机nginx 配置过的目录

  1. 在构建中选中 Execute Shell
    并配置构建时执行的命令
cnpm i &&
rm -rf dist && 
npm run build && 
cd dist&& 
tar -zcvf dist.tar.gz *
复制代码

点击保存, 这样就完成了 前端项目的搭建了

8.0 自动化部署 spring boot 项目

  1. 新建任务, 建立maven 项目

  1. 填写项目描述, 配置参数构建

  1. 配置源码管理

  1. 配置构建环境 ssh server

BUILD_ID=DONTKILLME
source /etc/profile;
cd /home/project/java/test&&

pid=`ps -ef | grep 'jar 名称' | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi

 java -jar lk-truck-mendery-webfront-1.0.0-SNAPSHOT.jar > nohup.log &
复制代码

注意点

  1. shell 前须要添加 BUILD_ID=DONTKILLME, 否则在jenkins建立了java 进程以后,退出的时候, 会杀死以前建立过的工程
  2. 须要在前面添加 source /etc/profile, 否则可能会出现 java 命令找不到的状况

到此 springboot的项目便搭建完成了

9.0 若是设置了密码以后, 又忘记了密码应该怎么办

  1. 进入到jenkins的配置文件中
cd /var/lib/jenkins/users
vim config.xml
复制代码

替换途中的值, 替换为

#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
复制代码

替换后,重启jenkins

systemctl restart jenkins
复制代码

登陆密码就变为 1111111 了

相关文章
相关标签/搜索