Jenkins学习日志之初探自动化部署

整理记录我在学习Jenkins自动化部署期间的一些注意事项和使用命令,待完善中。(看来是已经烂尾了)

使用Docker安装Jenkins

在使用Docker安装Jnekins之前,请先准备好maven、node环境。

我使用的是jenkins/jenkins的镜像,直接使用如下命令拉取docker镜像即可。

docker pull jenkins/jenkins

然后,使用下面这段缝合了多个教程的命令创建docker容器。

docker run -d -uroot \
-p 28080:8080 \
-p 25000:50000 \
-v /home/natuki/environment/jenkins:/var/jenkins_home \
-v /home/natuki/environment/jenkinsWar/jenkins.war:/usr/share/jenkins/jenkins.war \
-v /etc/localtime:/etc/localtime \
-v /home/natuki/environment/maven:/usr/local/maven \
-v /home/natuki/environment/node:/usr/local/node \
--name jenkins jenkins/jenkins
参数 解释
-d 后台运行
-uroot 在容器中使用root用户,避免权限问题
-p 28080:8080 将容器8080端口映射到本机28080端口,用于Web访问
-p 28081:50000 参数表示将容器50000端口映射到本机25000端口,供Master和Agent连接使用
-v /home/natuki/environment/jenkins:/var/jenkins_home 将容器的jenkins_home目录挂载到本机,便于容器被修改时还能使用上一次的配置
-v /home/natuki/environment/jenkinsWar/jenkins.war:/usr/share/jenkins/jenkins.war 可选,挂载Jenkins的war包到容器,在需要更新到新版本Jenkins时,可以去官网下载war包替换
-v /etc/localtime:/etc/localtime 使容器与本机时间设置一致
-v /home/natuki/environment/maven:/usr/local/maven 挂载maven目录到容器
-v /home/natuki/environment/node:/usr/local/node 用于挂载node目录到容器

容器内已经自带OpenJDK11,无需额外挂载。

然后,启动jenkins容器

docker start jenkins

配置Jenkins国内镜像

为了避免Jenkins初次启动安装官方推荐插件时,受墙内网速的影响,可以配置镜像源,这里以清华大学jenkins镜像源为例。

首先进入容器执行bash。

docker exec -it jenkins /bin/bash

然后在/var/jenkins_home目录下编辑hudson.model.UpdateCenter.xml文件,将内容修改为:

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

除此之外,还需要编辑/var/jenkins_home/updates目录下的default,json文件,直接执行命令替换即可:

sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json
sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

进入Web管理端

初次使用时,通过查看docker容器日志的方式获得管理员密码。

docker logs jenkins

file

然后以部署jenkins的服务器IP\:28080的方式访问Web管理端。

安装过程省略,通常来说按照系统推荐配置即可。

安装插件

需要额外安装的Jenkins插件:

  • Maven Integration plugin
  • Publish Over SSH

部署前端Vue项目

建议将dist目录压缩成tar包后再通过SSH推送到服务器解压部署,避免直接上传dist目录时部分文件丢失。

本地Shell构建命令:

cd /var/jenkins_home/workspace/projectName
ln -sf /usr/local/node/bin/node /usr/bin/node
ln -sf /usr/local/node/bin/npm /usr/bin/npm
npm config set registry https://registry.npmmirror.com
npm install
npm run build:prod
tar -cvf dist.tar dist/

将编写好的cleanProject.sh(用于清空服务器部署的旧版前端dist目录)通过SSH推送到服务器后,执行如下命令:

cd /www/www/projectName/frontend
sh cleanProject.sh

编译后的dist.tar通过SSH推送到服务器后,执行如下命令解压tar包:

cd /www/www/projectName/frontend
tar -xvf dist.tar
rm -rf dist.tar

(待完善)

发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注