Jenkins+Hexo+码云构建自动化博客站点_hexo jenkins未命名_闰土月下追猹的博客-程序员资料

技术标签: Jenkins  个人博客  运维  HTTPS  Hexo  部署  

写在前面

在使用Hexo之前,一直用的WordPress,终于在断断续续使用了两个年之后忍不住了,不得不说WordPress拥有丰富的插件和庞大的群众基础,但是实在是用起来不方便,每次写东西都要登录,进入后台管理,添加文章,排版很累(也使用过Markdown插件,效果不太好),当然也尝试过用其他方式写,比如用word写,简单配置一下,推送到WordPress上面,但是这样就没办法用Markdown了。然后就是安装插件让本来就很重的页面加载工作雪上加霜。。硬生生的把我写博客的积极性打击没了。还有一点就是以前的WordPress是跑在阿里云的云虚拟机上,不如服务器更方便捣鼓,哈哈,而且不能配置HTTPS,很鸡肋。然后就是WordPress是PHP写的,太深的定制化需要搞PHP。索性换成Hexo,方便订制,加上Jenkins(工作的时候稍微学了一下,基本使用还是没有问题的),如虎添翼(杀鸡用牛刀),现在只需要在本地用Markdown写好文章,然后git提交到远程仓库,就会自动部署,只需要愉快的写就可以了,美滋滋。东西有点多,搞得时候没有记录,现在回头写有点麻烦,有空慢慢填坑。

准备工作

  1. 服务器购买
    1. 我选择的是阿里云的服务器,因为我以前的博客就是在阿里云上面的,当时想要做备案,所以才选的国内的云服务商,如果你不需要备案选用国外的服务商,也可以。阿里云服务器有几种付费方式选择:预付费按量付费抢占式资源。这几种付费方式的官方说明:,相比较之下,抢占式资源还是比较划算的,但是抢占式资源按量付费不支持备案,我的是因为以前备过案了,就不需要再备案了,如果你想要备案,那只能选包年包月的预付费了。这个问题我也是刚发现。。就拿我需要的配置来说,我选了一台2核2G的服务器,自带的40G的系统盘,跑个博客和一些小型的程序比如jenkins,足够用了,实在不行以后再升配置,这也是云服务商的优势之处。如果选用预付费方式,便宜的一种也需要78一个月。如果选用按量付费,0.29/小时,0.29*24*30 = 208.8,选用抢占式实例0.079*24*30 = 56.88,资源不是很紧俏,价格就不会变,在设定的可以承受的最高价之下就会自动扣钱,不会被释放。对于个人而言还是可以选择的。
  2. 域名购买
    1. 使用的域名是我几年前购买的,.top后缀的,当时就是因为便宜,好像刚开始引入这个后缀,一年几块钱,就一直用,用我的名字全拼,其实也有一个短域名fjh.im,实在name.com上面买的,但是.im域名是不能备案的也不能转入阿里云管理,就一直用作邮箱用,也可以解析跳转到现在的博客域名上面,但是只能解析一个地址,用来跳转主页。
  3. 域名备案:
    1.
  4. 域名解析:

配置服务器

  1. 安全组配置

配置七牛云静态存储

配置Nginx

配置全站HTTPS

  1. 站点服务器HTTPS
  2. 七牛云静态存储HTTPS

CDN 加速

  1. CDN使用的是“又拍云”的CDN加速服务,之所以再选择一个云服务商,一是可以将平时的流量分摊到两家服务商,保证都不超过免费套餐用量,二是尝试一下不同的服务商怎么用,捣鼓一下。

Hexo安装测试

Jenkins安装

Jenkins配置

  1. 注意事项:
    1. 脚本执行npm install,提示找不到npm命令,解决办法:

      1. 在jenkins的脚本开始添加:

           #!/bin/sh -l
           export NODE_HOME=/usr/nodejs
           export PATH=$PATH:$NODE_HOME/bin
        
    2. jenkins脚本移动文件夹提示没有权限:解决办法

  2. 不同服务器之间传输数据:
    1. 有时候需要不同服务器在执行jenkins的build之后传输文件,需要配置scp文件传输
    2. 准备工作
      1. 安装scp命令工具:yum install openssh-clients,相互传输文件的两台机器都要安装
      2. jenkins里面安装插件:Publish over SSH
      3. 配置jenkins服务器和部署机器之间相互信任:
        1. 复制jenkins服务器用户目录下的.ssh/id_rsa.pub中的内容
        2. 将复制的内容添加到部署服务器的.ssh/authorized_keys文件中,一般情况下这个文件是空的,直接粘贴进去就行。
        3. 然后再使用jenkins构建的时候,仍然失败,提示权限不够,需要在第一次使用scp命令的时候需要自己先动手在shell终端中执行一次,然后使用scp随意复制一个文件过去,输入密码,之后再用jenkins复制文件就免输密码了。

配置自启动项(systemctl)

  1. nginx配置自启动

    1. 进入/lib/systemd/system目录:[[email protected] sbin]# cd /lib/systemd/system/

    2. 创建nginx.service文件

         vim nginx.service
      
         [Unit]
         Description=nginx service
         After=network.target 
           
         [Service] 
         Type=forking 
         ExecStart=/usr/local/nginx/sbin/nginx
         ExecReload=/usr/local/nginx/sbin/nginx -s reload
         ExecStop=/usr/local/nginx/sbin/nginx -s quit
         PrivateTmp=true 
           
         [Install] 
         WantedBy=multi-user.target
      
    • 说明:

          [Unit]:服务的说明
          Description:描述服务
          After:描述服务类别
          [Service]服务运行参数的设置
          Type=forking是后台运行的形式
          ExecStart为服务的具体运行命令
          ExecReload为重启命令
          ExecStop为停止命令
          PrivateTmp=True表示给服务分配独立的临时空间
          注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
          [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
      
    1. 加入开机自启动:# systemctl enable nginx

    2. 取消开机启动:# systemctl disable nginx

    3. systmectl的其他命令:

         # systemctl start nginx.service          启动nginx服务
      
         # systemctl stop nginx.service           停止服务
      
         # systemctl restart nginx.service        重新启动服务
      
         # systemctl list-units --type=service     查看所有已启动的服务
      
         # systemctl status nginx.service          查看服务当前状态
      
         # systemctl enable nginx.service          设置开机自启动
      
         # systemctl disable nginx.service         停止开机自启动
      
  2. jenkins配置自启动

其他

  1. 配置快照策略
    1. 购买OSS存储资源包
    2. 制作快照
  2. 服务器迁移
    1. 磁盘快照制作自定义镜像
    2. 跨区域镜像复制使用

愉快的写吧

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36237810/article/details/110260813

智能推荐

HDU - 4507 吉哥系列故事――恨7不成妻 (数位DP,推公式啊)_h1021456873的博客-程序员资料

单身!   依然单身!   吉哥依然单身!   DS级码农吉哥依然单身!   所以,他生平最恨情人节,不管是214还是77,他都讨厌!      吉哥观察了214和77这两个数,发现:   2+1+4=7   7+7=7*2   77=7*11   最终,他发现原来这一切归根到底都是因为和7有关!所以,他现在甚至讨厌一切和7有关的数!   什么样的数

软件中国2006_duguowei的博客-程序员资料

我们期望有这么一个奖项,可以全面地盘点在本年度为中国信息化发展做出卓越贡献的技术、产品、企业与个人,包括将技术巧妙运用在互联网领域的Web站点,和普及软件技术的图书; 我们期望有这么一个奖项,可以多方位展示中国软件业一年来取得的进步与不足,从而在表彰与总结中迈向下一个阶段; 我们期望有这么一个奖项,可以搭建一个最终用户与企业相互交流的平台,在此平台之上双方可以有效地沟通,共赢性地推

Java - 错误: "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1"_SpikeKing的博客-程序员资料

错误: "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1"本文地址:http://blog.csdn.net/caroline_wendyJava中, 错误: "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1" ;意思: 数

Idea 依赖冲突一分钟解决2种方案_idea依赖冲突_gblfy的博客-程序员资料

文章目录一、Diagrams解决方案1.1. 在pom.xml文件中,右击选择【Diagrams】-【Show Dependencies】1.2. 找到冲突的依赖1.3. 问题定位1.4. 解决方案1.5. 具体实现思路1.5.1. 查看spring-context的全局控版本1.5.2. 找到需要排除activemq-core中的spring-context的3.0.7.RELEASE,右击选择...

Windows进程间通信方法总结_windows 进程通信_Jimmy1224的博客-程序员资料

原文地址:http://blog.csdn.net/weiwangchao_/article/details/7104940摘 要: 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面

从无到有搭建一个电商项目(六):后台管理系统的前端资源导入和分析_devp_yang的博客-程序员资料

搭建后台管理前端1、导入已有资源后台静态页面资源,前端的页面就不自己写了,有需要的可以QQ:514742768,找我要,我这里直接导入源码:idea导入项目这正是一个用vue-cli构建的webpack工程:2、安装依赖package.json中定义了我们所需的一切依赖:我们删除node_modules文件夹,可以打开终端,进入项目目录,输入:npm install命令,重新安装这些...

随便推点

c++如何让字符串重复输出_几道 BAT 算法面试中经常问的字符串问题_weixin_39557402的博客-程序员资料

String 作为最常见的编程语言类型之一,在算法面试中出现的频率极高。1. 验证回文串题目来源于 LeetCode 第 125 号问题:验证回文串。这道题目是 初级程序员 在面试的时候经常遇到的一道算法题,而且面试官喜欢面试者手写!题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:"Am...

keil5 c语言函数库,C语言中KeilC51库函数大全.doc_网易浪潮工作室的博客-程序员资料

Keil C51库函数参考第一节 本征库函数(intrinsic routines)和非本征证库函数C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:_crol_,_cror_:将char型变量循环向左(右)移...

kindeditor编辑器回车换行代码修改_kindeditor 按回车键_风尘旅人的博客-程序员资料

kindeditor编辑器插入程序代码后在<p>标签和<pre>标签间会多出一行<p><br></p>导致前台显示的时候很难看。如下图:我想实现的情况是1,但是出现的情况是2而且初次提交代码没问题,当修改的时候用到“HTML代码”标签的时候,就会出现多一行。分析原因,应该是1,插入代码的时候会出现<p><pre>...</pre></p>这种情况2,修改的时候会变成<

常用的机器学习&数据挖掘知识(点)总结_online sampling_zrjdds的博客-程序员资料

转载自:http://dataunion.org/14926.htmlBasis(基础):MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),MLE(MaximumLikelihood Estimation最大似然估计),QP(Q

数据脱敏小探——不错的脱敏工具Apache ShardingSphere_数据脱敏工具_我是干勾鱼的博客-程序员资料

Apache ShardingSphere官网是这样介绍Apache ShardingSphere:Apache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据...

4类 JavaScript 内存泄露及如何避免_aijia1857的博客-程序员资料

原文:4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them笔记:涂鸦码龙译者注:本文并没有逐字逐句的翻译,而是把我认为重要的信息做了翻译。如果您的英文熟练,可以直接阅读原文。本文将探索常见的客户端 JavaScript 内存泄露,以及如何使用 Chrome 开发工具发现问题。简介内存泄...

推荐文章

热门文章

相关标签