解决CentOS 虚拟机从VMWare station 迁移到VirtualBox 不能启动问题

最近把一台CentOS7 虚拟机从Windows 10 的VMWare 迁移到 CentOS8 的VirtualBox上,结果不能启动,说找不到 root 和 swap。我猜测与 Host机器CPU架构不同有关,老机器是Intel芯片,新机器是 AMD CPU。 解决方法也蛮简单,进Rescue模式, yum update 就会自动装上一个新鲜的符合条件的内核。然后再重新启动就好了。 Reference

如此搞一下之后,启动倒是启动起来了,但启动时总有一个出错信息“error failed to send host log ”,虽然不影响使用,但看着很不爽。万能的Google很快给出了答案,把显卡换成 VBoxVGA 就好了。Reference

Jenkins 三言两语

三天小长假过完了。终于把 Jenkins 从windows 10 也迁到了那台 CentOS上,我对 Jenkins 的了解又深了一点点。

  1. Jenkins 把所有的插件和用户数据都存一个目录里,这个设计非常赞。这让我得以专注于迁移我的流水线。
  2. 让 Jenkins 运行在docker里,把运行docker的host机器做成一个新节点,很不错。
  3. 我更喜欢声明式流水线....主要是对脚本式流水线更不熟悉,对 groove 语法也不熟悉,另外,也不很想在流水线里写复杂的逻辑。这俩谁都先进呢?说不准。我更看好声明式流水线。
  4. agent和node之间的关系还是没有搞得特别清楚。时间紧,经理又催得急,先这么着吧。
  5. 怕删错文件,删文件的地方没敢用环境变量,越来越胆小。哈,应该有更好的解决办法。
  6. ssh从docker里连到宿主机....用key文件没有成功。尚且不知道原因,应该加个todo。

PS: 更好的解决方法找到了,它就是 ${varName:?} 这种方式引用bash变量,若 varName 未设置值,则脚本会立即报错退出执行。

Ubuntu 22.04 fcitx-rime/ibus-rime wubin_pinyin 配置简入繁出

为啥用 fcitx 不用ibus呢.... 一开始我确实是用的ibus,但它老人家在 google doc 的网页里不显示候选文字框,等修复不知道要等到啥时候,我就扭头换 fcitx 了。

ibus-rime, fcitx-rime 已经内置这个功能,但它的默认配置里没有使用这个功能。废话不说,贴上我的配置文件

~/.config/fcitx 或 ibus/rime/default.custom.yaml 内容如下

patch:
 style:
  display_tray_icon: true
  horizental: false
  font_point: 14
 schema_list:
    - schema: wubi_pinyin
    - schema: pinyin_simp
 ascii_composer/switch_key:
  Shift_R: commit_code
  Shift_L: commit_code

~/.config/fcitx 或 ibus/rime/wubi_pinyin.custom.yaml 内容如下:

patch:
  switches:
    - name: ascii_mode
      reset: 0
      states: [ "中文", "西文" ]
    - name: full_shape
      states: [ "半角", "全角" ]
    - name: simplification
      states: [ "汉字", "漢字" ]

  simplifier/opencc_config: s2t.json
  engine/filters:
    - simplifier
    - uniquifier

What I have learnt in recent days

  1. 长叹一声。Linux 上就没有一个好用的远程桌面服务器。虽然不喜欢,留个 teamviewer 进程一直开着以应不时之需是有必要的。
  2. vagrant 的 public_network 在 usb 无线网卡有bug...(服务器好好的千兆网卡你不用用什么无线网卡....不是手头没有网线嘛
  3. "Ansible for DevOps" 据说是一本好书。那待读书单里就加一本吧
  4. CentOS8内置了一个叫 cockpit 的web管理器,还挺好用的。它的端口是9090,咋改成用正儿把经的https证书我还不知道。
  5. Gnome桌面有一个叫 Vinagre 的远程桌面客户端,支持的服务器类型挺多的。(然而并不好用)
  6. 不应该把对应数据表的 entity model 直接用在 web API 里。别嫌麻烦,那个应该是贫血的,除了主键并不需要有其他的约束。把完整的表结构和所有字段暴露给客户端是不好的。
  7. AutoMapper 有什么用?应该怎么用? ,这篇09年的老文章和里面的评论可能会有点用。
  8. chrome OS 开了开发者模式,按 ctrl + alt + -> root 登录即可设置默认用户的密码。

想深入了解Linux了,所以又开始看 Linux From Scratch。

Tailscale:不一样的VPN

Tailscale

丁宇在推特上说这个东东比 frp 好用。我先一口气把它安装到四台服务器性质的 Linux 机器上,包括两台本来就有外网 IP 的vps,然后才琢磨这东西有啥用,怎么用。安装和授权过程都很简洁,没有废话,第一印象棒极了。

那...它有啥用呢?一句话,它把你所有的机器,不论物理上隔多远,放到一个局域网里了。在这个局域网里,没有防火墙,网内可以访问任何设备的任何端口。和普通的vpn不同,它没有中央设备,所有设备之间都是直连,因此性能比较好。

那有啥用呢?

  1. 管理你的一堆机器更方便了。
  2. 局域网内任何一台有外网IP的机器都能做为任何一台内网机器的跳板机(内网无端口限制的穿透)。

换言之,你的VPS只要有足够的流量,硬盘空间不再是限制你部署应用的瓶颈,你完全可以把你的各种试验性side project部署在你的家里,或者父母的家里,扔台旧机器装个Linux就全齐活了。

嗯,它不光支持 Linux,还支持macOS,iOS,Windows!牛大了。

记录一下小坑。macOS 10.15.4 安装好后 Login 是灰的,无法登录,重启下电脑就好了。