​ 开始着手写才发现这一部分自己没什么好写的~~(谁不是跟着别人地教程一步一步来的呢)~~, 这边把我用到的博文都分类列出,前人之述备矣,只要跟着步骤很快就可以完成装修和博客撰写的配置。 博客页面配置 ​ 上篇文章结束后的博客页面大致如下,但是搜索,时间轴,关于和友链的链接进入后会显示404报错,这是因为相关的文件并没有生成,按照所给路径不能找到对应的页面文件,需要我们手动生成。 ​ 查看yaml配置文件中关于菜单按钮的相应代码,寻找对应的网页源文件: menu: main: - identifier: search name: 🔍搜索 url: search weight: 1 - identifier: posts name: 📚文章 url: posts weight: 3 - identifier: archives name: ⏱时间轴 url: archives/ weight: 20 - identifier: tags name: 🔖标签 url: tags weight: 40 - identifier: about name: 🙋🏻‍♂️关于 url: about weight: 50 - identifier: links name: 🤝友链 url: links weight: 60 ​ 只需要将对应的页面创建出来即可。依照Hugo搭建个人博客(2) | 3rd’s Blog 以及Hugo博客添加友链 | Sulv’s Blog 便可以很顺利地完成配置,此处不再赘述。

Continue reading

说明 ​ 这篇文章是我的云计算技术的大作业实验报告,搭建了一个基于Jenkins的Devops自动化CI/CD流程。主要参考资料是这个视频,【DevOps教程】DevOps最新教程2022版 目前最好的DevOps课程 从入门到进阶 DevOps实践 DevOps运维 零基础入学 手把手教会_哔哩哔哩_bilibili,只要跟着来是可以顺利搭建好这个框架的。 ​ 但这篇博文除了视频内容的具体实践之外,也展现了将项目部署到华为云服务器上的具体操作。同时还有一个很重要的内容是解决了Jenkins使用docker.sock映射宿主机Docker时Docker报错:docker: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32’ not found (required by docker),这个错误网络上没有找到相应的解决办法,也花了很久时间才解决。 ​ 这个项目的博客源码以及Jenkinsfile都已上传到我的Github仓库No-drink/blog (github.com)中,希望可以给到一些帮助。 Devops简介 ​ 基于现在的互联网现状,更推崇敏捷式开发,这样就导致项目的迭代速度更快,但是由于开发团队与运维团队的沟通问题,会导致新版本上线的时间成本很高。这又违背的敏捷式开发的最初的目的。通过DevOps可以有效解决这个问题。 DevOps,字面意思是Development &Operations的缩写,也就是开发&运维,是一个不断提高效率并且持续不断工作的过程。通过这种方式可以让公司能够更快地应对更新和市场发展变化,开发可以快速交付,部署也更加稳定。其核心就在于简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。 ​ 整体的软件开发流程包括: PLAN:开发团队根据客户的目标制定开发计划 CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。 BUILD:编码完成后,需要将代码构建并且运行。 TEST:成功构建项目后,需要测试代码是否存在BUG或错误。 DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。 OPERATE:运维团队将代码部署到生产环境中。 MONITOR:项目部署上线后,需要持续的监控产品。 INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成、持续部署。 为了保证整体流程可以高效的完成,各个阶段都有比较常见的工具,如下图: ​ 最终可以给DevOps下一个定义:DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。通过自动化的工具协作和沟通来完成软件的生命周期管理。 系统设计与实现 系统架构设计 ​ 使用三台主机。一台Windows11系统进行代码编写及发布。其余两台为Ubuntu系统虚拟机。IP地址为192.168.182.129的虚拟机1用作gitlab仓库,Harbor仓库并安装Jenkins进行项目部署。IP地址为192.168.182.128的虚拟机2则作为服务器用来进行项目的部署和运行。另外还有一台华为云服务器提供MySQL服务(起初希望项目部署到此但由于Harbor仓库没有公网IP故只好作罢)。 系统技术选型与相关工具 ​ 本实验所用工具如下表: 工具 用途 安装位置 Code Git 用于提交业务代码或克隆业务代码仓库 192.168.182.129/Windows11 Gitlab 用于存储业务代务 192.168.182.129:8929 Build Maven 用于编译业务代务 192.168.182.129/Windows11 Operate Harbor 用于存储业务代码构建的容器镜像存储 192.168.182.129:80 Docker 用于构建容器镜像,部署项目 192.168.182.129/192.168.182.128 Integrate Jenkins 用于利用插件完成业务代码编译、构建、推送至Harbor容器镜像仓库及项目部署 192.

Continue reading

什么是静态博客? ​ 静态博客就是指将一系列的HTML、CSS、Markdown文件在本地编辑完成后上传至Github等代码托管平台,之后通过一些网站托管平台将这个网站通过Hugo等网站生成器生成对应的博客网站并等待人们访问。这个方案最为突出的优点就是可以免费建站,对于穷鬼学生可以说是最优选择了。并且使用Hugo网站生成器,访问速度也会比其他方法更加快速搞笑。 ​ 与之相对的就是动态博客。既然动态,那就必须要有一个程序持续运行在服务器上等待IP和端口被访问。一个服务器便是一个不小的开支。之前以为云计算的课程,购买了一年期的华为云HECS服务器,但由于自己当时对于博客搭建工具的毫不了解,采用了手搭动态博客的方式搭建动态博客,用了不少技术和数据库知识,但还是只是搭建了一个毫无CSS内容的光秃秃页面。之后考虑到长期维护和对于私密性的考虑,放弃了华为云果断选择了Hugo生成静态博客。 静态博客怎么运行? ​ 静态博客首先需要我们在本地生成一个运行Hugo的文件夹,里面存放了我们从网络上(也可以是自己编写)下载解压的主题文件,之后我们只需要在对应存放文章的目录新建Markdown文件即可撰写文章。当撰写完成后便可以用我们本机的Hugo来生成页面进行预览。 ​ 当预览没有问题后我们便可以通过Git推送到Github上,此时Vercel会通过更新后的源文件进行网页构建。当我们通过网络访问博客对应得域名时,由于我们再DNS服务商的设置,请求会跳转至Vercel生成的页面,并将结果返回。 ​ 当我们将流程了解清楚后,所需要的前期准备工作便非常清楚了,需要准备域名以及安装Hugo,并且进行与之相关的一些工作。 域名准备 ​ 关于申请我是参考这篇博文:EU.org+ClouDNS|免费域名小撇步 - 东俄勒冈群山 (houdini.eu.org)。域名申请通过EU.org,DNS服务商选择了ClouDNS。本篇博文的内容非常详细并且操作非常顺利,此处不再赘述。 ​ 不过需要注意的是申请域名可以提前进行,因为需要一点时间等待回复。而将域名绑定至Vercel则应该在在Vercel完成Hugo任务的配置后再进行。因此可以先进行申请,之后便开始Hugo安装和相关工作,妥当之后,并且域名也通过了,便可以进行绑定工作。 Hugo初始化 安装Hugo ​ Hugo安装参考了三篇博文:Hugo | 一起动手搭建个人博客吧 | 小球飞鱼 (mantyke.icu), hugo博客搭建 | PaperMod主题 | Sulv’s Blog (sulvblog.cn),国庆不出门宅女美丽新家装潢一站式笔记 - 东俄勒冈群山 (houdini.eu.org)。实际安装过程如下: ​ 首先需要在Hugo的Github仓库 Tags · gohugoio/hugo (github.com) 中下载压缩包,这里我的版本号是v0.104.2,之后在希望安装Hugo的位置新建文件夹,将下载好的安装包解压。这时还需要将Hugo添加至系统环境变量中,在电脑开始页的搜索栏中搜索“环境变量”,点击 高级->环境变量,将hugo.exe所在的路径增加至PATH的记录中,点击确定保存即可。 ​ 此时在Hugo所在文件夹打开命令行工具,这里我用的是邮件点击Git Bush Here,输入: $ hugo version ​ 若成功输出此时的Hugo版本号,则安装成功: hugo v0.104.2-84cbe724983b4b6153fd39aae0888cbb89a56cda+extended windows/amd64 BuildDate=2022-09-29T10:31:09Z VendorInfo=gohugoio 初始化Hugo ​ 这一步可以在本地通过Bash输入: $ hugo new site hugoblog ​ 即可在当前文件夹生成对应的文件目录生成对应的文件结构,但这里我们采用使用Vercel生成Hugo模板,之后从Github pull的方式进行。

Continue reading

Author's picture

Zhangyi Pei

Less Is More

NTU SG

Singapore