mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-05 23:18:11 +09:00
2.8 KiB
2.8 KiB
NixOSインストール手順(SOPS・ディスク暗号化あり)
この手順は、SOPSによるシークレット管理とLUKSによるディスク暗号化を 使用するホスト向けである。
どちらも使用しない場合は、 SOPSなし・ディスク暗号化なしの手順を参照。
事前準備
- ISOビルドを参照してISOを作成
- USBに書き込んで対象マシンでブート
ネットワーク接続
有線LAN
DHCPで自動設定される。
WiFi(有線が使えない場合)
nmcli device wifi connect <SSID> --ask
SSH接続
コンソールに表示されたIPアドレスに接続:
ssh root@<ip-address>
インストール手順
1. dotfilesのクローン
git clone [email protected]:moons-14/dotfiles.git ~/dotfiles
2. SSHホストキーの生成
新しいホスト用のSSHホストキーを生成:
ssh-keygen -t ed25519 -f /tmp/ssh_host_ed25519_key -N ""
3. age公開鍵の取得
SSHホストキーからage公開鍵を取得:
ssh-to-age -i /tmp/ssh_host_ed25519_key.pub
出力されたage公開鍵をコピー。
4. .sops.yamlの編集
cd ~/dotfiles
vim .sops.yaml
以下を追加:
keys:
- &host_<hostname> <age公開鍵>
creation_rules:
- path_regex: ^secrets/hosts/<hostname>/[^/]+\.ya?ml$
key_groups:
- age:
- *admin_yubikey1
- *host_<hostname>
5. シークレットの再暗号化
sops updatekeys secrets/common/system.yaml
sops updatekeys secrets/hosts/<hostname>/*.yaml
6. disko設定の作成
新しいホスト用のhosts/<hostname>/disko.nixを作成。
LUKS暗号化とbtrfsの構成はhosts/x1g13/disko.nixを参照。
7. ディスクのパーティション
cd ~/dotfiles
disko --mode destroy,format,mount hosts/<hostname>/disko.nix
8. ハードウェア設定の生成
対象マシンのハードウェア設定を生成し、新しいホストのディレクトリへ直接保存:
nixos-generate-config --no-filesystems --root /mnt --show-hardware-config \
> ~/dotfiles/hosts/<hostname>/hardware-configuration.nix
hosts/<hostname>/nixos.nixから生成した設定とDisko設定を読み込む:
{
imports = [
./hardware-configuration.nix
./disko.nix
];
}
9. ホストキーのコピー
mkdir -p /mnt/etc/ssh
cp /tmp/ssh_host_ed25519_key* /mnt/etc/ssh/
chmod 600 /mnt/etc/ssh/ssh_host_ed25519_key
10. NixOSインストール
nixos-install --flake ~/dotfiles#<hostname>
11. 再起動
reboot
インストール後の確認
- SSHでログインできるか
- sopsシークレットが復号できるか
- diskoでパーティションが正しく設定されているか