Herald Yu

Herald Yu

434 posts published

Rancher

Rancher 忘记密码如何重置?

对于安装在 Docker 上的 Rancher,可以在宿主机执行以下命令重置管理界面的密码,例如: $ sudo docker exec trusting_buck reset-password New password for default admin user (user-ssggz): tkk0z67Tdoh8GpQzB4UI 其中,trusting_buck 是 Rancher 所在的容器名。重置后的用户名和密码如下: 用户名:admin 密码:tkk0z67Tdoh8GpQzB4UI References https://github.com/rancher/rancher/issues/12697#issuecomment-383651948

前端

Gatsby 3.13 + Strapi 3.6 + React-markdown 故障排查

美好的十一国庆节假期,陪孩子、睡懒觉、看各种前端资料。儿子5岁了,再也不用像之前那样寸步不离,他会找自己喜欢玩的东西。就算是缠着我下楼玩,也不用我时时刻刻的当他的拐棍,特别是他最近社交技能提升,玩秋千会排队、会交涉,也会抢,为父甚是欣慰。 言归正传,这几天以 Strapi 为数据源,分别试用了 Next.js 和 Gatsby 两款开源的前端框架。首先说 Strapi,真乃神器!本质上他是一个内容管理器 CMS,但与传统的 CMS 不同在于它不直接提供前端界面,只按照需求对外暴漏 API,它的逻辑非常灵活,你可以用预置的各种字段去组装需要的内容类型。可以很轻松的创建各种单页面、文章博客或是产品列表,然后直接在 Strapi 上面管理相应的内容,它通过 API 对外提供各种内容类型的数据,使用 react 或 vue 等前端框架从 API

SSH

SSH 通过跳板机访问内网主机

SSH 通过 -J 指定跳板机,所谓跳板机就是我们可以通过外部访问的内网主机,通过跳板机作为通信代理,就可以访问跳板机所在的内网中其他的主机。 跳板机:root@pve.local 内网目标主机:almalinux@192.168.1.61 连接方法: $ ssh almalinux@192.168.1.61 -J root@pve.local 转发内网主机端口到本地 进一步的,比如要将内网目标主机上的 cockpit 界面映射到本地访问,可以这样设置: $ ssh -L 9090:192.168.1.61:9090 almalinux@192.168.1.61 -J root@pve.

几个事儿
Stories

几个事儿

一 有关孩子教育的问题,我总是心虚,因为我自己还没看明白这个世界,这些里里外外的事情我怎么才能跟儿子说清楚呢,显然是说不清的。小的时候还好忽悠,长大可能就会恍然意识到原来爸爸在忽悠他。 二 朋友有很多种,我想交往的是能参加我葬礼的。 当然,我可能没有葬礼。 三 人不能和心智作对。 高露洁之于牙膏,耐克之于运动鞋,雀巢之于咖啡,例子不胜枚举。 设想一下,如果高露洁要做洗发水,耐克要做电视,雀巢要做耳机,如果你是推销员,说服人们购买这些产品该是多大的挑战。谁愿意用牙膏洗头呢? 你我也是如此,你给人留下第一印象非常重要。 四 昨晚做梦哭醒了,我梦见自己找不到妈妈了。

rclone

rclone: 文件备份到腾讯云 COS 深度归档存储

rclone 是我目前用过操作对象存储功能最完整、使用最简易的工具。 家里现在使用 Nextcloud 网盘作为统一的文件管理界面供每个成员使用,使用外部存储插件去访问本地的 minio 对象存储。minio 通过策略定义实现每个用户独享的和共享的 bucket。 本地的 minio 是 4 盘位 EC:2 结构,可以保证任意 2 块硬盘上的某个文件对象同时损坏,数据不会丢失且可自愈。家庭环境来说,这个保护级别已经足够了,但是把握起见,还是决定做一个异地备份。 minio 上的数据通过 rclone 定期手动备份到腾讯云 COS 深度归档存储,目前总数据量不足 1TB,资源包只要 120 元左右一年,存储成本非常低。 深度归档存储的特点是存储单价非常低,不过一旦需要恢复数据时,需要付出高昂的费用代价。所以我把深度归档存储纯粹当做一份保险,数据灾难时的最后一丝希望,没有意外不会请求解冻。 rclone 的数据加密功能 虽然说家庭数据没有什么怕人看的,但直接上传到公有云总觉得别扭,

Manjaro

Manjaro KDE 安装微信

参照 ArchLinux Wiki 中提供的几种安装微信的方法,实际使用下来,感觉 com.qq.weixin.spark 是最理想的,这是 deepin 社区封装的一个版本,基本与微信版本保持同步。 安装 $ yay -S com.qq.weixin.spark 使用 直接在菜单中找微信运行,第一次运行需要在 Wine 中执行初始安装,全部保持默认选项。安装完毕就和在 Windows 系统中一样了,扫码认证登录。 输入框中文乱码 我的系统版本是 Manjaro KDE 21.0.7,运行微信之后,界面正常显示中文,但输入框里面中文会显示成黑色方块。参照 这篇文章 成功解决乱码问题。解决步骤大致如下: 下载 Windows 的 simsun.

Ubuntu

Ubuntu Server 20.04.2 HWE 安装 RTL 8125B 2.5GB 网卡驱动

Ubuntu 从 20.04.2 开始,在系统安装引导菜单中多了一项 HWE 内核支持,这个内核的作用是让 Ubuntu 提前支持更多的新款硬件。 手上的机器是 RTL8215B 的 2.5GB 的网卡,这款网卡的驱动被加入到了 Linux kernel 5.9,但 Ubuntu server 20.04 的 HWE 内核也只是 5.8 内核,所以还是要手动安装驱动程序。 官方下载:https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software 下载2.5G Ethernet LINUX driver

JuiceFS

JuiceFS 共享文件系统

今天无意中在Github上发现了JuiceFS,它是Juicedata公司在2021年1月开源的项目。 项目本身应该是从2017年开始做的,只不过最近才正式开源。 JuiceFS 的工作原理是结合 Redis 高速缓存和对象存储,实现一个高速度的FUSE虚拟文件系统。我个人感觉是因为引入了Redis高速缓存,所以它能以更接近原生文件系统的性能实现对云存储的读写。当然,要实现原生文件系统的操作体验,还需要很多底层的技术细节。 项目主页中的测试信息显示,相比于亚马逊的EFS和开源的s3fs,JuiceFS 有显著的性能优势。 其实JuiceFS和s3fs的应用逻辑是类似的,都是通过FUSE把云存储挂载在本地当成文件系统来使用,但s3fs使用起来的确效果不理想,实测发现s3fs的表现远不如rclone mount。 目前测试JuiceFS来看,效果还不错,接下来还要做进一步的测试。因为JuiceFS是商业公司驱动的开源项目,有盈利需要,所以目前看下来官网和开源仓库是两条文档线路。 官网的指南是针对商业用户的,并且把JuiceFS的使用分成了免费、专业和商业三个等级,官网有图形化的用户界面创建文件系统,另外还提供了一个Python开发的脚本来处理挂载相关的事宜,给人的感觉就是更一气呵成,更简单直观。 Github 仓库那边则是纯手工操作,文档也相对比较分散,配置起来要多费些功夫。 不过话说回来,JuiceFS开发团队是很厚道的,把自己开发的优秀产品开放出来的也是值得尊敬的,而且文档虽然有些分散,但相关资料在仓库里都能够找到,所以就给这个项目点赞吧。 如果有机会,很愿意和JuiceFS开展一些合作。 相关资源 How

Docker

docker 映射 fuse 类型的存储目录

尝试使用rclone的mount挂载s3对象存储到本地,想把挂载以后的目录映射给docker容器使用,但在创建容器的时候会报错: docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /path/to/you. 解决办法是启用fuse的allow_other选项,编辑配置文件/etc/fuse.conf,删掉 allow_other前面的#号,启用这个功能。 然后重新挂载s3存储,添加 -o allow_other 参数: $ rclone mount minio:memory /mnt/s3 --allow-other 重启容器即可

hash

Linux 计算文件哈希值

哈希值可以用来证明文件的完整性,同一个文件,在相同哈希算法下得到的哈希值是相同的。 比如,计算图片 IMG_9414.JPG 的哈希值,并将结果写在 IMG_9414.sha256sum 文件中: $ sha256sum IMG_9414.JPG > IMG_9414.sha256sum $ cat IMG_9414.sha256sum 51a4e8abfa19ba7e911606f359ced828c51b8dfa5f72b6ea34ef0bb58290b15e IMG_9414.JPG 注意:GNU 系统上二进制模式和文本模式没有区别。

minio

minio 创建一个类似“家目录”的组策略

以下配置使用了配置变量,实现多用户家目录的功能,用户只能在与自己用户名相同的bucket里面进行完整的读写访问。PS:假设这里的对象存储服务器别名是 minio 创建配置文件 home.json { "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::*"], "Condition": {"StringLike": {"s3:prefix": ["

OMV

如何通过硬盘LED灯,识别NAS上的特定硬盘?

这里说的NAS机箱主要指的是有活动硬盘插槽的机箱,其实1U、2U等机架式的服务器也适用。 当在系统中检测到某个硬盘有坏道的时候,可以通过让故障盘的硬盘灯亮起来,从而快速定位硬盘。 方法非常简单: $ sudo dd if=/dev/sdb1 of=/dev/null 使用 dd 命令,从指定的盘上写数据到 null 设备。命令一旦执行,硬盘就会开始工作,硬盘LED灯就会亮起来,就可以瞬间找到它了。

Manjaro

Manjaro KDE OBS 录屏闪烁问题

小米笔记本 Air,双显卡。安装的 Manjaro KDE 桌面,用OBS录屏会闪屏,感觉应该是桌面管理器在重新渲染界面。 参考网上的建议,修改系统设置-显卡与显示器-显示特效混合器,修改如下: 取消勾选“开机时启用显示特效混合器” 缩放模式:锐利 渲染模式:xrender 延迟:首选低延迟 防止撕裂:自动 保持窗口缩略图:只对显示的窗口 启用“允许应用程序阻止特效混合”

OMV

omv 5 修改默认挂载点名称

大概是从 omv 5.5.20 开始,文件系统的默认挂载点名称被统一设置成了 dev-disk-by-uuid-95a27f78-b514-4aec-abf2-77e75be86e0e 这种格式,对用户非常不友好,不论新老用户,当在命令行下操作的时候,是很难区分各个文件系统的。 修改挂载点名称可以编辑 /etc/openmediavault/config.xml 配置文件,找到里面的 <fstab></fstab>这对标签中的文件挂载点信息<mntent></mntent>: <fstab> <mntent> <uuid>ed23096c-3982-4a61-8b3e-28517653adb0</uuid> <fsname>/dev/

minio

minio 纠删码

Minio 使用纠删码 erasure code 和校验和 checksum 来保护数据免受硬件故障和无声数据损坏。Minio 采用 Reed-Solomon code 将对象拆分成 N/2 数据和 N/2 奇偶校验块(N为磁盘总数)。 与 RAID 磁盘阵列的块级冗余不同,minio 的纠删码技术是文件级的,可以以文件为单位进行数据恢复,而RAID磁盘阵列只能以磁盘为单位进行数据恢复。 参照上一篇笔记minio 存储级别,在启用纠删码功能时,minio标准级别存储,至少需要2个磁盘保存校验信息,因此,在正常情况下,应该至少准备四个硬盘来使用这种数据保护技术。 但minio的纠删码技术是文件级别的,通过实践发现,可以将多个数据目录同时设置在一块物理硬盘上,比如有两块硬盘,在一块硬盘上设置 data1 和 data2 数据目录,在另一块硬盘上设置 data3 和 data4 数据目录。 $ sudo docker

minio

minio 存储级别

minio官网 minio github 仓库 MinIO Storage Class Quickstart Guide minio支持两种存储级别:Reduced Redundancy class 冗余缩减级别和 Standard class 标准级别。这两个级别可以在启动minio实例之前,通过系统的环境变量提前定义。此后,可以通过请求元数据字段x-amz-storage-class设定对象的存储级别。 存储级别的设置会直接影响存储空间或冗余级别。 比如在16块硬盘组成的minio实例中存储100MiB数据,如果设置了8个数据盘和8个校验盘,那么文件存储就会占用双倍的空间,比如100MiB文件就会占用200MiB的存储空间。而如果是10个数据盘和6个校验盘,100MiB则会占用大概160MiB的空间。如果是14个数据盘和2个校验盘,100MiB文件则只会占用114MiB的存储空间。 下表是16块硬盘的minio实例,校验盘和数据盘各种组合搭配时的存储利用率。 存储率 = 磁盘总数 / 数据盘总数 存储空间用量 = 文件尺寸 * 存储率 磁盘总数 (N) 数据盘 (D) 校验盘 (P) 存储率 16 8 8 2.00

Stories

小朋友的假期后遗症

幼儿园寒假开始以后,小朋友被送去了爷爷奶奶家,从此开启了小皇帝般的生活。吃饭要喂,小便要用瓶子接,需要什么就只管大喊“爷爷给我拿...”,“奶奶给我拿...”。 寒假结束开学了,为了让小朋友不觉得太大的反差,爷爷奶奶也跟着一起过来陪着。生活自理能力虽有退化,但回到自己家还是会有所收敛的开始恢复正常。但每天都会说“不想去幼儿园”。 昨天周一,早上反抗了一阵子意识到没有效果,还是乖乖的去了。 今天早上反抗比较激烈,孩子妈又不知道为什么突然站在小孩一边开始和我对抗,强烈谴责我对小孩的态度不对,这下好了,小朋友开始变本加厉,连哭带闹更不要去了。 可能是看到我和孩子妈吵架了,小朋友有些害怕了,灰溜溜跟着爷爷去幼儿园。可没过多久,爷爷打电话过来说小孩死活不进幼儿园。我只好匆匆忙忙又赶到幼儿园,见到小朋友抱起来连哄带骗,完全不起作用,承诺奖励冰淇淋,奖励小汽车,都不起作用。 后来所有小孩都进幼儿园了,门口的老师看到实在没办法,就帮忙去找了小朋友的班主任,老师连哄带骗的给小孩带到幼儿园门口。可他反应过来了,就死活不进去,最后是好几个老师生生给拉进去的。小孩进去以后,我特意跟老实说让帮忙留一下是不是和小朋友闹不愉快了,老实说这就是开学综合证,跟爷爷奶奶呆久了的小孩都这情况,哎。 这种情况下,爷爷奶奶只能暂时先回家了,小朋友想要调整过来还需要一段时间。

Caddy

Caddy 启用本地 https

生成本地根证书 $ caddy trust 对需要使用本地证书的配置项进行设置,添加 tls internal: pan.abc.com { reverse_proxy [::1]:8010 tls internal header { Strict-Transport-Security "max-age=15552000" Referrer-Policy "no-referrer" } redir /.well-known/caldav /remote.php/dav 301 redir /.well-known/carddav /remote.php/dav 301 } 因为在 systemd 中管理 caddy 服务,配置容器反向代理使用本地证书没问题,但本地目录的 file_server 使用本地根证书会出现权限不足无法重启