docker+Jenkins自动化部署

ps: 一篇很好的自动化部署教程,为了方便,拿到这里记录保存一下,方便以后使用

  1. JENKINS 是什么
    Jenkins是一个自包含的、开源的自动化服务器,可以用于自动化与构建、测试、交付或部署软件相关的各种任务。
    Jenkins可以通过本机系统包、Docker安装,甚至可以由任何安装了Java运行时环境(JRE)的机器独立运行
    2.在centos 系统上安装jenkins
    三种方式

通过 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

稍作等待
在这里插入图片描述
进入目录查看密码
[root@localhost secrets]# cat initialAdminPassword 9ca7368042fe45be8b693ab43e7797d1
2.2 通过jenkins.war 的方式安装
在jenkins官网中下载war包

在这里插入图片描述
可以直接右键复制软件地址, 使用 wget 命令进行下载
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
下载完成后 将项目放入tomcat中webapps 文件夹下
2.3 通过yum的方式安装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
安装jenkins
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 在服务器中添加相关支持环境

安装 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

安装 git
yum install git

安装 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 # 然后在其他的地方都可以使用这两个命令了

安装maven, 并在/etc/profile 中配置
6.0 系统配置
在这里插入图片描述
在全局配置工具中, 配置 jdk, maven, git, node 的安装路径
在这里插入图片描述
7.0 自动化部署 前端vue项目
部署场景, 在A机器进行webpack打包, 将打包后的文件,发送到B机器上指定的文件夹, 通过nginx代理实现访问

创建一个自由风格的软件项目
在这里插入图片描述
2.填写项目描述

在这里插入图片描述
选择参数化构建过程, 后续可以选择不同分支进行打包
在这里插入图片描述
选择不同的版本控制工具 svn 和 git都可以, 这里我们使用git
在这里插入图片描述
需要添加 自己的用户和密码, 不然会出现下面的情况
在这里插入图片描述
在构建环境中选择 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 配置过的目录

在构建中选中 Execute Shell
在这里插入图片描述
并配置构建时执行的命令

cnpm i && rm -rf dist && npm run build && cd dist&& tar -zcvf dist.tar.gz *
点击保存, 这样就完成了 前端项目的搭建了
8.0 自动化部署 spring boot 项目

新建任务, 创建maven 项目在这里插入图片描述
填写项目描述, 配置参数构建
在这里插入图片描述

配置源码管理
在这里插入图片描述
配置构建环境 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 &
注意点

shell 前需要添加 BUILD_ID=DONTKILLME, 不然在jenkins创建了java 进程之后,退出的时候, 会杀死之前创建过的工程
需要在前面添加 source /etc/profile, 不然可能会出现 java 命令找不到的情况
到此 springboot的项目便搭建完成了
9.0 如果设置了密码之后, 又忘记了密码应该怎么办

进入到jenkins的配置文件中
cd /var/lib/jenkins/users vim config.xml
在这里插入图片描述
替换途中的值, 替换为
#jbcrypt:$2a 10 10 10DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
替换后,重启jenkins
systemctl restart jenkins
登录密码就变为 1111111 了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GY程序源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值