当你手里有多台机器(比如不同规格的 VPS 和多个 PVE 节点)时,拥抱自动化配置绝对是提升幸福感的分水岭。
Chezmoi 和 Ansible 的核心定位,它们是互补的关系:
- Chezmoi:用来管理“你”(User Space)。 专注于你的个人配置文件(Dotfiles),比如你的
~/.ssh/config、Ghostty/Helix/Micro 的配置、Tmux 快捷键等。它的逻辑是:无论你登录到哪台机器,都能瞬间把环境变成你最顺手的样子。 - Ansible:用来管理“机器”(System Space)。 专注于系统级的状态配置。比如在新买的 Debian VPS 上批量安装 Docker、配置 Caddy、修改 SSHD 端口、设置防火墙规则等。
针对你“保持一致的终端体验”的需求,我建议 先用 Chezmoi 搞定个人配置,再用 Ansible 搞定新机器的初始化。
第一阶段:使用 Chezmoi 统一你的终端灵魂
Chezmoi 的优势在于它使用 Git 做底层,且对跨平台(macOS / Linux)和机密数据管理支持得极好。
1. 在你的 Mac 上初始化
首先在你的主力机(Mac)上安装并接管现有的配置:
# 安装 Chezmoi
brew install chezmoi
# 初始化一个本地 Git 仓库 (默认在 ~/.local/share/chezmoi)
chezmoi init
# 将你刚写好的 ssh config 和编辑器配置交给 Chezmoi 管理
chezmoi add ~/.ssh/config
chezmoi add ~/.config/helix/config.toml
chezmoi add ~/.config/micro/settings.json
# 查看状态并提交到你自己的 GitHub/GitLab 仓库
chezmoi cd
git add .
git commit -m "Initial dotfiles"
git branch -M main
git remote add origin https://github.com/你的用户名/dotfiles.git
git push -u origin main
exit2. 在任何远程 VPS 或 PVE 节点上一键还原
当你通过 SSH 登录到一台新的节点时,只需要执行这一行命令,你的所有习惯配置就会瞬间同步过去:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply 你的用户名💡 进阶技巧:你部署了自建的 Vaultwarden。Chezmoi 可以无缝集成 Bitwarden CLI (bw),你可以把服务器的私钥或 API Token 存在 Vaultwarden 里,让 Chezmoi 在部署时自动拉取并渲染到配置文件中,绝对安全。
第二阶段:使用 Ansible 批量初始化基础设施
当你的 PVE 集群节点增加,或者开了一台新的跳板机时,手动 apt install 会非常繁琐。这时就轮到 Ansible 出场了。
1. 在 Mac 上安装并配置资产 (Inventory)
Ansible 只需要在你的 Mac 上运行(无代理模式,通过 SSH 连接),远程机器不需要安装任何东西。
brew install ansible创建一个 hosts.ini 文件,把你的机器分门别类:
[jumpbox]
1.2.3.4 # 你的跳板机 IP
[pve_cluster]
10.0.0.101
10.0.0.102
[vps_nodes]
10.0.0.201
# 定义全局变量:使用 root 登录,并指定跳板机参数(复用你在 ssh config 里的设定)
[all:vars]
ansible_user=root2. 编写你的第一个剧本 (Playbook)
创建一个 setup.yml,定义你希望这些机器达到什么状态:
---
- name: 初始化所有服务器基础环境
hosts: all
become: yes # 提升为 sudo 权限
tasks:
- name: 更新 apt 缓存并升级系统 (针对 Debian/Ubuntu 系统)
apt:
update_cache: yes
upgrade: dist
- name: 安装必备系统工具
apt:
name:
- curl
- git
- tmux
- htop
- ufw
state: present
- name: 下载并安装 Micro 编辑器
shell: curl https://getmic.ro | bash
args:
chdir: /usr/local/bin
creates: /usr/local/bin/micro # 如果已有则跳过3. 执行魔法
只需在 Mac 上运行:
ansible-playbook -i hosts.ini setup.ymlAnsible 就会并发地连接到你所有的 VPS 和 PVE 节点,把缺失的工具装好,把系统更新到最新。
建议的路线:
- 花 10 分钟,用
chezmoi把 Mac 上的.ssh/config和你常用的终端配置传到 GitHub。 - 登录到你的一台测试 VPS,跑一下 Chezmoi 的一键安装脚本,体验一下“环境随身带”的爽快感。
- 等后续需要配置新 VPS 或重装 PVE 节点时,再写几行 Ansible 剧本替代重复劳动。