环境初始化

1. 前提

1.1. 待配置设备

已经有可以启动的操作系统,且正确配置 DNS、IP 地址和路由,使得本机能够以 inventory 内部指定的域名通过 ssh 登录。

1.2. 本地设备

已经下载安装好 inventory,见 ../inventory.html

检查 ~ansible-playbook –version~。如果 Ansible 版本为 2.9,需要额外执行

ansible-galaxy collection install community.general

如果系统为 Archlinux,还需要安装 aur helper。

ansible-galaxy collection install kewlfft.aur
sudo pacman -S python-keyring

2. Playbooks

playbook 按目的划分,例如基础包管理器配置,出口接入配置,开发环境配置。 一台设备的配置可能需要按步骤运行多个 playbook,此时应尽量编写一个调用这些 playbook 的上层 playbook 并为它起一个贴切的名字。

2.1. 系统初始化

./01-base.yml 基础中的基础,只包含必要的包管理器配置和系统配置,基本不包含网络配置和设备个性化配置。

ansible-playbook -i ~/.notches/home-inventory/hosts -c local -l $HOSTNAME -K 01-base.yml

./01-derivation.yml 基本包含了所有的设备个性化配置。

ansible-playbook -i ~/.notches/home-inventory/hosts -c local -l $HOSTNAME -K 01-derivation.yml

3. Secrets

3.1. 使用 keyring

https://wrossmann.medium.com/using-ansible-keyring-lookups-6379139b2ee8

sudo apt install libsecret-tools
# lookup('keyring', 'foo bar') 对应
secret-tool store \
            --label="Password for 'bar' on 'foo'" \
            service foo \
            username bar

Updated: 2025-12-04 Thu 02:42