0%

前记

说说我目前的整个服务器的配置以及链路

1
Chrome -> Frp服务器 -> Frp客户端(内网ASUS路由器) -> NAS(群晖)

由于上https我想对整个frp放在群晖中去做一个映射,而不是放在路由器上

改造过后的链路为

1
Chrome -> Frp服务器 -> Frp客户端(群晖) -> NAS(群晖) || 路由器

Frp服务器

Frp服务器的安装这里可以看我做的一键安装脚本

Frps一件脚本

Https证书申请

可以是选择阿里云Symantec 免费版 SSL,可以自行前往阿里云控制台申请

我这里是用的sslforfree在线申请的

当然也还可以通过其他的方式比如:acme.sh

Frp客户端

在群晖上Frp客户端可以用docker镜像,这里同样可以看我制作的镜像

Frpc Docker镜像

在安装好服务端和客户端后,我们下载证书上传到群晖服务器上,同时我们像下图一样挂载配置文件证书目录

最后我们需要对https进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[common]
server_addr = 127.0.0.1
server_port = 5443

[test]
type = https
custom_domains = test.jakehu.me
plugin = https2http
plugin_local_addr = 192.168.1.1:80
# HTTPS 证书相关的配置
plugin_crt_path = /frp/certificate/certificate.crt
plugin_key_path = /frp/certificate/private.key
plugin_host_header_rewrite = 192.168.1.1


到此告一段落,完美适应!

前记

之前在使用gitlab runner时大多使用docker方式进行CI,但是对于Java and Maven每次都需要下载费时很久,所以后来我选择shell方式。接下来我们看看shell方式的runner应该怎样搭建

NO.1

第一步 我们首先安装Docker,因为后面CI的时候我们需要打包成Docker镜像

Docker Install

NO.2

第二步 我们需要安装JavaMaven

  1. Installing Java 8 on CentOS 7
1
2
3
4
5
6
7
8
9
10
11
12
# Step 1: Update
yum -y update

# Step 2: Install Java 8
yum install java-1.8.0-openjdk

# Step 3: Verify Java is Installed
# Example Output:
java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
  1. Installing Maven 8 on CentOS 7
1
2
# 这里我们直接有用yum默认安装
yum install maven

No.3

第三步 我们需要安装gitlab-runner

1
2
3
4
5
6
# 添加GitLab的官方存储库
# For RHEL/CentOS/Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

# 安装gitlab-runner
sudo yum install gitlab-runner

No.4

第四步 就是注册runner这里不过多赘述

前记

最近在部署一个由Guns开发的一套系统,在本地测试和Gitlab Runner上执行mvn package -B -Dmaven.test.skip=true都能跳过测试,但是在CI里面就没法跳过测试

解决方案

pom中加入maven-surefire-plugin并跳过测试

1
2
3
4
5
6
7
8
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>

Guns

这里我们再介绍哈guns多模块打包方案,模块如下:

  1. guns-parent 父模块
  2. guns-core guns核心模块
  3. guns-generator 代码生成模块
  4. guns-admin 后台管理模块
  5. guns-rest API模块

下面是CI文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 定义代码目录
before_script:
- rm -rf /data/
- mkdir -p /data/
- mv * .git* /data/
- cd /data/

stages:
- deploy

maven-build:
stage: deploy
only:
- master
script:
- cd guns
   - mvn clean install # 在父模块上运行install,将依赖打包到maven本地仓库
   - cd ../guns/guns-admin
   - mvn package -B -Dmaven.test.skip=true # 这里其实可以不用打包,因为前面install的时候已经打包
   - docker build ...
- docker tag ...
   - docker push ... # 构建不同项目的镜像
   - cd ../../guns/guns-rest
- mvn package -B -Dmaven.test.skip=true # 这里其实可以不用打包,因为前面install的时候已经打包
- docker build ...
- docker tag ...
- docker push ... # 构建不同项目的镜像
tags:
- spring-boot-shell

关于构建的Dockerfile可以参考
1
2
3
4
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/guns-admin-1.0.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

前记

最近公司在部署SAP,在部署SUSE的虚拟机的过程中接到SAP实施商的一个要求,需要将虚拟机的内核进行升级。原:4.4.73-7-default,目标:4.4.140-94.42-default

升级

基础配置

开始之前记得去YaST里面防火墙打开对SSH允许,以及网络设置IP地址进行设置

获取内核

获取内核的方法有很多比如:kernel以及opensuse;不过我是通过Suse Drivers获取的官方的补丁包

kernel-default-4.4.140-94.42.1.x86_64

安装

在安装之前可能得通过SFTP等工具将rpm包上传到虚拟机

1
2
3
// 安装包并在安装过程中显示正在安装的文件信息及安装进度

rpm -ivh kernel-default-4.4.140-94.42.1.x86_64.rpm

重启

在更新内核后需要进行重启

1
2
3
4
5
6
7
8
// 重启

reboot

// 查看新的内核版本

uname -r
4.4.140-94.42-default

大功告成!!!

环境

目前环境是Hexo+Github Pages

再来看看部署命令npm start

1
2
3
4
5
//  package.json

"scripts": {
"start": "hexo cl && hexo g && gulp && hexo d && php -f push_sitemap_to_baidu.php"
}

我们逐条来解读

hexo cl 清除缓存文件db.json和已生成的静态文件public

hexo g 生成静态文件

gulp 将静态文件进行压缩,这部分操作可以参考之前我写的文章——利用gulp对Hexo博客压缩并一键之部署

php -f push_sitemap_to_baidu.php 将文章主动推送至百度,这部分操作可以参考之前我写的文章——Hexo部署在Github Pages怎么提交Sitemap给百度?来我教你

.drone.yml

通过上面我们大概了解了环境,接下里我们编写.drone.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// .drone.yml

kind: pipeline
name: default

steps:
- name: publish
 image: jakehu/php-node # 包含了PHP7+Node10+GIT环境的镜像
 pull: always
commands:
- node -v
- php -v
- npm install
 - git config --global user.email "jakehu1991@gmail.com" # 对GIT进行设置
 - git config --global user.name "jakehu" # 对GIT进行设置
- npm start

这样就完了?并没有由于我们是在DroneDIND里面进行的部署,所以我们还需要对Github权限进行设置
1
2
3
4
5
6
7
8
// _config.yml

...
deploy:
- type: git
   repo: https://jakehu:password@github.com/jakehu/jakehu.github.io.git
branch: master
...

到这里就完成,只需要进行git push每次Drone就会自动把npm start所有的工作完成了

Drone运行过程