您当前的位置:首页 > 电脑百科 > 电脑知识

Jenkins搭建与博客自动部署

时间:2019-10-30 13:18:37  来源:  作者:

起因

最开始我是使用CircleCI来进行博客的自动部署的,但是在部署的时候使用又拍云的upx同步博客到对象存储的时候经常出现504(网关超时)错误最后导致失败。很容易就可以想应该是因为众所周知的网络原因,但是说好的全球cdn呢:sweat:,这不免让我对它的全球cdn的实力有所怀疑:joy:。于是就打算自己搭Jenkins服务器在国内构建部署解决问题,顺带学习一下。

Jenkins搭建与博客自动部署

 

Jenkins安装

Jenkins的详细安装方法可以参考官方的中文文档:https://jenkins.io/zh/doc/book/installing/。这里我使用Docker进行安装,安装时使用的docker-compose.yml配置文件如下所示:

version: "3"
services:
 kms:
 image: jenkinsci/blueocean
 user: root
 ports:
 - 8080:8080
 volumes:
 - jenkins-data:/var/jenkins_home
 - /var/run/docker.sock:/var/run/docker.sock
 restart: always
 
volumes:
 jenkins-data:

运行的时候先别急着docker-compose up -d,先docker-compose up一下,这时如果防火墙安全组什么的设置没有问题的话可以在8080端口访问到了。在看终端的输出信息的时候记录一下初始安装的随机密码,初始安装的时候需要用到,之后就是根据网站的提示一直下一步下一步了。安装配置结束后可以让docker转到后台运行。

使用前的配置

反向代理

直接使用8080端口当然也是可以的,但是明显看起来有点丑(主要是逼格不够高:smirk:),这个这个时候我们就需要用到反向代理来处理一下了。这里我使用的是caddy,caddy的配置十分简单,两行行实现https自动申请续期与透明转发,我的Caddyfile如下所示。

https://ci.yinaoxiong.cn {
 gzip
 log /var/log/caddy/ci.log
 tls aoxiongyin@qq.com
 proxy / localhost:8080 {
 transparent
 }
}

添加虚拟内存

安装的时候看到官方对于小团队的推荐硬件配置自己这个腾讯云的学生机也算是勉强达到了,然后一顿操作猛如虎,然后build的时候out of memory甩脸上。然后用free -h看了一下发现自己的交互内存配置的是0,赶紧加个1G的交换内存试一下看看,这里使用交换文件添加交换内存。具体操作如下所示:

#创建一个大小为1G的文件
sudo fallocate -l 1G /swapfile
#锁定root权限
sudo chmod 600 /swapfile
#标记文件为交换空间
sudo mkswap /swapfile
#启用交换空间
sudo swapon /swapfile
#查看设置是否生效
free -h
#配置写入fstab永久生效
#先备份文件
sudo cp /etc/fstab /etc/fstab.bak
#写入文件
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

配置构建与部署

Jenkins的使用这个问题过于庞大,大家可以去官网看它的文档学习一下,下面分享一下我的仅分享一下我自己的配置,这个博客的配置文件可以在这个链接中查看:Jenkinsfile。目前使用 的配置文件如下所示:

pipeline {
 agent {
 docker {
 image 'circleci/ruby:2.6.0'
 }
 }
 stages {
 stage('build') {
 steps {
 sh 'gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/'
 sh 'sudo gem install bundler -f'
 sh 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com'
 sh 'bundle install --jobs=4 --retry=3 --path vendor/bundle'
 sh 'bundle exec jekyll build'
 }
 }
 stage('deploy') {
 steps {
 sh 'wget -c http://collection.b0.upaiyun.com/softwares/upx/upx-linux-amd64-v0.2.3'
 sh 'mv upx-linux-amd64-v0.2.3 upx'
 sh 'chmod +x upx'
 sh './upx login yax-blog ${upx_USR} ${upx_PSW}'
 sh './upx sync _site/ / --delete'
 }
 }
 }
 environment {
 upx = credentials('upyun-account')
 }
}

直接使用CircleCI家的docker镜像规范环境,因为本来就是从他们家迁移的就没什么好改的了。构建的时候为ruby设置中国源加速访问。最后使用又拍云的upx工具同步到对象存储中。

添加徽标

原来使用CircleCI直接提供了构建的徽标链接来满足用户的使用(装逼)需要,但是Jenkins本身没有提供这个功能。好在万能的网友早已明白人们对于徽标的使用(装逼)需求,并创建了一个生成各种徽标的开源项目。项目的地址是:badges/shields,项目的一个demo网址是:https://shields.io/。

在build中点击Jenkins按照要求填写好你就可以获得你想要的徽标了,我的填写方式如下所示。

Jenkins搭建与博客自动部署

配置方式

将my-blog更换成你自己的job名称应该就可以了,需要注意的是Jenkins默认是不允许匿名查看的,所以直接上去一顿操作是不行的。需要先用管理员账号在 系统管理》全局安全设置》访问控制 里面勾选允许匿名只读访问才行。如果你不想这么做也可以自己使用badges/shields搭建服务,然后按照这个文档:Server Secrets,设置好具有权限的Jenkins账号密码,这样就不用把构建信息公开了。



Tags:Jenkins   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
第一步、部署环境1、安装nodeJs1、下载nodewget https://nodejs.org/dist/v16.8.0/node-v16.8.0-linux-x64.tar.xz2、解压压缩包xz -d node-v8.11.2-linux-x64.tar.xztar -x...【详细内容】
2021-09-06  Tags: Jenkins  点击:(70)  评论:(0)  加入收藏
前提条件:已成功安装JDK。官网下载地址: https://www.jenkins.io/download 二、安装1、jenkins安装包安装(1)直接双击运行已经下载好的jenkins.msi安装包 (2)点击"运行" (3)点击"Nex...【详细内容】
2021-06-23  Tags: Jenkins  点击:(116)  评论:(0)  加入收藏
目前主流的开发采用的是devops模式(开发、测试、运维一体化)。随着互联网安全要求越来越高,对网络安全就越发变得重要了。传统的测试工程师主要是对功能、接口、性能方面做测试...【详细内容】
2021-06-23  Tags: Jenkins  点击:(113)  评论:(0)  加入收藏
Jenkins 是目前最常用的持续集成工具,拥有近50%的市场份额,他还是很多技术团队的第一个使用的自动化工具。由此可见他的重要性!这份Jenkins宝典从入门介绍到结合Docker+SpringC...【详细内容】
2021-06-09  Tags: Jenkins  点击:(145)  评论:(0)  加入收藏
在当今互联网行业乃至一些大厂,大部分公司都采用敏捷项目管理模式来管理项目,在敏捷十二条宣言中有一条是这样说:“我们的最高目标是,通过尽早和持续地交付有价值的软件来满足...【详细内容】
2021-04-30  Tags: Jenkins  点击:(167)  评论:(0)  加入收藏
以下是详细的步骤1. JDK \Jmeter \ Ant安装:1.1.安装JDK:双击jdk-7u80-windows-x64.exe安装,默认安装到C:\ProgramFiles\Java目录1.2.安装Jmeter:在我的电脑—E盘(建议与...【详细内容】
2021-04-16  Tags: Jenkins  点击:(224)  评论:(0)  加入收藏
在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实...【详细内容】
2021-03-19  Tags: Jenkins  点击:(260)  评论:(0)  加入收藏
在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins,我们可以结合 Git/SVN 自动拉取代码,通...【详细内容】
2021-02-19  Tags: Jenkins  点击:(230)  评论:(0)  加入收藏
Jenkins是一款开源的CI&CD软件, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。JenkinsJenkins基于Java环境,可以部署在windows/Mac OS/linux上,通过其网页...【详细内容】
2020-11-06  Tags: Jenkins  点击:(611)  评论:(0)  加入收藏
相信vue很多人都已经很熟悉了,利用脚手架很容易搭建一个vue项目 但项目多了以后每次部署测试环境就相当麻烦,还容易出错 所以趁这两天不忙,研究一下jenkins,也总算是入门了 jen...【详细内容】
2020-10-17  Tags: Jenkins  点击:(92)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W·h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(18)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(11)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维·卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(31)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条