WRY

Where Are You?
You are on the brave land,
To experience, to remember...

0%

Azure云自建服务

Azure云上部署的服务

辅助应用

辅助资源

Azure云存在的问题

  • 由于部署的docker数量过多(>20),还没有对容器采取资源限制,云服务器经常出现崩溃的现象。参考内容
    • 解决办法: 临时扩大服务器的资源,观察各个服务需要的内存,进行合理分配 虚拟机太贵了,容易超预算。
    • 添加了6G的swap,先避免服务崩掉。之后会尝试给容器添加交换空间的使用限制,保护优先级较高的应用 参考内容

此博客的部署过程

  • push代码 --(触发)--> jenkins编译 --(拷贝静态文件)--> nginx服务
  • 由github的action build之后,更新到azure上

Azure配置swap

官网参考链接

  • 修改配置文件/etc/waagent.conf的如下内容
1
2
3
ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=xxx
  • 重启 WALinuxAgent,使得配置生效

    1
    $ service walinuxagent restart

应用维护

Github Action

在配置私钥的时候需要将OPENSSH格式转换成RSA格式

1
2
3
4
5
# 使用putty工具进行转换
$ sudo apt install -y putty
$ PRIVATE_OPENSSH_FILE=github_to_azure # 原私钥文件名称
$ puttygen ${PRIVATE_OPENSSH_FILE} -o ${PRIVATE_OPENSSH_FILE}.ppk
$ puttygen ${PRIVATE_OPENSSH_FILE}.ppk -O private-openssh -o ${PRIVATE_OPENSSH_FILE}.pem

同步上传命令

1
2
3
4
- name: upload to my server
run: printf "%s" "${{ secrets.DEPLOY_KEY }}" > ${SSH_PRIVATE} && chmod 600 ${SSH_PRIVATE} && rsync -avzW fileOrdir ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/hexo --rsh "ssh -p ${{ secrets.DEPLOY_PORT }} -i ${SSH_PRIVATE} -o StrictHostKeyChecking=no"
env:
SSH_PRIVATE: ../id_rsa.pem

Nextcloud

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
30
31
32
# 进入 nextcloud 容器
$ docker exec -it -u www-data nextcloud bash

# 执行定时任务
*/15 * * * * docker exec -u www-data nextcloud /usr/local/bin/php /var/www/html/cron.php

# 配置https 模式
docker exec --user www-data nextcloud php occ config:system:set overwriteprotocol --value="https"

# 重新扫描文件系统
$ php occ files:scan --all
$ php occ files:scan -p <user_name>

# 去除文件锁
## 开启维护模式
$ docker exec -it -u www-data nextcloud php occ maintenance:mode --on
## 进入数据库操作
$ docker exec -it nextcloud_db bash mysql -u nextcloud -pxxxx
$ use nextcloud;
$ delete from file_locks where 1;

# onlyoffice 修改密钥(暂未生效)
## 进入docker
$ docker exec -it onlyoffice-document-server bash
$ nano /etc/onlyoffice/documentserver/default.json
## 更改内容
### ctrl+w(搜索) CoAuthoring secret 将secret下面的string更改为密码(有多个)
### token.enable.browser 改为 true
### token.enable.request.inbox 改为 true
### token.enable.request.outbox 改为 true
## 重启服务
supervisorctl restart all

Hexo 博客维护

更新日志

  • 2020-12-19

    • 添加algolia 提供的站内博客搜索功能
    • 更新所有组件到当前最新,更新next主题,之前的主题因为更新之后文章内目录无法跳转,被迫更新
  • 2021-03-12

    • 博客的更新时间显示均为部署时间

      • hexo的配置为

        1
        updated_option: mtime

        会根据文章的修改时间,生成博客中的更新时间

      • 在Github Action中,文章的时间,显然和本地一样
        azure:
        local:

        文件的属性不会随着git记录走,他们是所属操作系统对文件进行维护的信息,所以再git传递过程中会出现日期不一致的情况

        解决办法

        1
        2
        $ git config --global core.quotepath false # 避免中文乱码
        $ git ls-files | while read file; do touch -d $(git log -1 --format="@%ct" "$file") "$file"; done

        根据git log中存储的信息,对文件的时间信息进行修改,修改之后如下