Jenkins自动部署学习Jenkins自动部署学习

Jenkins自动部署学习

前提:

空白系统

前置准备工作

安装JDK

cd /usr/local/jdk

执行命令,下载jdk到指定目录

wget https://download.oracle.com/otn/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-x64.tar.gz?AuthParam=1617168763_f679dc8e6793bc203f3f221f414de5f5
复制代码

下载完成后,解压

tar -zxvf jdk-8u281-linux-x64.tar.gz

执行ll

image-20210331133849625.png
修改文件夹名称

mv jdk1.8.0_281/ jdk8

配置环境变量,输入以下命令:

vim /etc/profile

在文件最下面添加

export JAVA_HOME=/opt/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
复制代码

安装Node

执行以下命令下载node

yum install nodejs
复制代码

image-20210331135153513.png

安装git

yum install git -y
复制代码

image-20210331135312792.png
执行git version查看git是否安装成功

git version
复制代码

安装 maven

转到指定目录下

cd /opt/server

下载maven

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
复制代码

解压

tar -zxvf apache-maven-3.6.3-bin.tar.gz
复制代码

配置环境变量

export M2_HOME=/opt/server/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
复制代码

重新加载数据

source /etc/profile
复制代码

查看maven版本

mvn -version
复制代码

安装Jenkins

下载Jenkins

www.jenkins.io/download/

通过如下地址下载Jenkins.war包。

image-20210331144825514.png

下载完成后,上传war包到/usr/local/jenkins

安装jenkins

执行war包

java -jar jenkins.war -httpPort=9999
复制代码

image-20210331150019743.png
如图所示即为Jenkins初始化密码

输入对应的连接地址: http://XXXX:9999,打开Jenkins页面

image-20210331152229979.png
输入之前复制的密码,选择安装Jenkins推荐的插件

image-20210331152309726.png
创建一个账号,完成操作跳转到后台管理界面。

image-20210331152426805.png

配置Jenkins

修改为使用清华源

Manage Jenkins -> Manage Plugins -> Advanced -> 升级站点

输入下面的源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
复制代码

保持Jenkins长期运行

通过nohup命令

nohup java -jar jenkins.war --httpPort=9999
复制代码

这里执行该命令时 报了一个错误:

nohup: ignoring input and appending output to ‘nohup.out’
复制代码

修改命令如下:

nohup java -jar jenkins.war --httpPort=9999 > /dev/null 2>&1 &
复制代码

就可以后台启动了

牛刀小试

创建一个vue项目,能够使用Jenkins持续集成、持续部署。

必须保证你当前在github存在一个项目,通过Jenkins拉取该项目。

前期准备

  1. github创建一个项目test-jenkins

  2. 使用ssh在jenkins所在的部署机上生成私钥、公钥(如果当前项目是公开的话,也可以不用配置。)

image-20210331160908858.png
3. 复制id_ras.pub文件的内容,到github的公钥字段,配置一个新的sshkey。

image-20210331161447534.png
4. jenkins配置自己的私钥

系统管理 -> 安全 -> Manage Credentials -> 全局 -> 添加凭据

点击保存。

Jenkins创建项目

这里我用的示例项目是 vue-element-template

  1. jenkins配置Nodejs,Nodejs的版本需要根据你当前项目需要的版本配置。

    通过以下路径配置 Nodejs

    系统管理 --> 全局工具配置 -->NodeJS配置 ,选择你需要的版本,这里我选择8.16

    如果当前没有这项选项,或者后续npm报错则可能需要安装nodejs插件

image-20210401150411953.png

  1. 安装nodejs插件。

    系统管理 --> 插件管理 --> 搜索NodeJs

image-20210401152027304.png

  1. 创建Jenkins项目

image-20210401152113136.png

点击确定,创建好一个 test项目。

  1. 回到DashBoard,选中刚刚创建的项目,开始配置,首先配置git源

    配置repository url,如果是public项目,则不需要配置Credentials,

    分支按照自己项目的分支要求来,我这里是master,

image-20210401160622639.png

  1. 配置触发器

可以通过配置触发器实现jenkins定时拉取代码的功能,自动发布。

image.png

  1. 接着配置构建环境。勾选Provide Node ....选择自己的node版本。

image-20210401160951811.png

  1. 配置构建

    #!/bin/bash
    rm -rf ./dist/*   # 此处是删除之前生成的文件
    
    node -v &&        # 展示node版本
    npm install -g cnpm --registry=https://registry.npm.taobao.org&&  # 配置淘宝镜像
    cnpm install &&      # 安装node包依赖
    npm run build:prod	 # 执行打包命令
    
    rm -rf /usr/local/web/*  # 此处是删除上次部署到nginx的项目文件
    cp -rf ./dist/* /usr/local/web # 复制本次生成的文件到nginx的配置目录中
    复制代码
  2. 配置完成,点击立即构建。

    出现以下信息表示 构建完成。

image-20210401161435494.png
9. 如果nginx服务器,处于启动状态的话,则刷新页面就可以看到部署成功的页面了。

  1. nginx配置
location / {
	root '/usr/local/web/';
    try_files $uri /index.html;
    index index.html index.htm index.php;
}
复制代码