环境初始化
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