AIエージェントにSSH越しでNixOSをインストールさせる方法
Claude CodeなどのAIエージェントを活用し、SSH経由でリモートサーバーにNixOSを自動インストールする実践的な手順を解説。OSインストールの自動化と遠隔操作のノウハウを公開。
はじめに
クラウドやオンプレミスのサーバーをセットアップする際、OSインストールは面倒な作業の一つです。特にNixOSのような宣言的構成管理を前提としたOSでは、インストール後の設定も含めて自動化したいところ。今回は、Claude Code(AIエージェント)にSSH経由でリモートサーバーへNixOSをインストールさせる方法を紹介します。
前提条件
nixos-anywhereがインストール済み(リモートマシンへのNixOSインストールツール)手順概要
nixos-anywhereを実行詳細手順
1. ターゲットマシンの準備
まず、ターゲットマシンでNixOS minimal ISOを起動します。起動後、ネットワーク設定とSSHの有効化を行います。
<h1>ネットワーク設定(例:DHCP)</h1>
sudo dhcpcd
<h1>rootパスワード設定</h1>
passwd
<h1>SSHサーバー起動</h1>
systemctl start sshd
systemctl enable sshd
<h1>IPアドレス確認</h1>
ip a
IPアドレス(例:192.168.1.100)をメモしておきます。
2. AIエージェント(Claude Code)のセットアップ
作業マシンでClaude Code CLIをインストールし、SSHキーをエージェントが利用できるようにします。
<h1>SSHキーがAIエージェントから利用可能であることを確認</h1>
ssh-add ~/.ssh/id_ed25519/ssh_key && chmod 600 /tmp/ssh_key
3. AIエージェントへの指示
Claude Codeを起動し、以下のようなプロンプトを与えます。
あなたはシステム管理者です。以下のタスクを実行してください。
【タスク】
リモートホスト(192.168.1.100)にSSHで接続し、nixos-anywhereを使用してNixOSをインストールしてください。
【条件】
<li>SSHユーザー: root</li>
<li>SSH鍵: /tmp/ssh_key</li>
<li>nixos-anywhereのインストール先ディスク: /dev/sda</li>
<li>NixOS設定: 最小構成(後で手動調整)</li>
<li>インストール後、自動再起動しない</li>
【手順】
<li>SSH接続確認</li>
<li>ターゲットマシンにnixos-anywhereをダウンロード</li>
<li>実行: nixos-anywhere --disk /dev/sda --flake github:your-flake#your-config</li>
※flakeがない場合はデフォルト設定でOK
<li>エラーが発生したらログを取得して報告</li>
4. AIエージェントの実行
Claude Codeは上記プロンプトを解析し、以下のようなコマンドを順次実行します。
<h1>SSH接続確認</h1>
ssh -i /tmp/ssh_key -o StrictHostKeyChecking=no root@192.168.1.100 "echo connected"
<h1>nixos-anywhereのダウンロードと実行</h1>
ssh -i /tmp/ssh_key root@192.168.1.100 "curl -L https://github.com/nix-community/nixos-anywhere/archive/refs/tags/1.0.0.tar.gz | tar xz && cd nixos-anywhere-1.0.0 && ./nixos-anywhere --disk /dev/sda"
実行中、Claude Codeは出力を監視し、エラーがあれば適宜対応します。例えば、ディスクが正しく認識されない場合、lsblkで確認してから再実行します。
5. インストール後の確認
インストールが完了したら、ターゲットマシンを再起動します。
ssh -i /tmp/ssh_key root@192.168.1.100 "reboot"
再起動後、新しいNixOSが起動することを確認します。初期設定(ユーザー、SSHキーなど)は別途行う必要があります。
注意点とトラブルシューティング
/tmpが安全です。screenやtmuxを使いましょう。lsblkで確認するようエージェントに指示しましょう。応用:完全自動化
AIエージェントにさらに指示を追加することで、インストール後の初期設定まで自動化できます。例えば、以下のようなステップを追加します。
/etc/nixos/configuration.nix)を転送nixos-rebuild switchを実行<h1>設定ファイル転送</h1>
scp -i /tmp/ssh_key ./my-config.nix root@192.168.1.100:/etc/nixos/configuration.nix
<h1>再構築</h1>
ssh -i /tmp/ssh_key root@192.168.1.100 "nixos-rebuild switch"
*この記事はOpenCodeを日常的に使用し、AIエージェントにSSH経由でNixOSをインストールさせるなどの実践経験を持つSioが監修しています。DeepSeek APIのヘビーユーザーとして、実際のコスト感や制限事項を反映しています。*
まとめ
AIエージェントを活用することで、NixOSのインストール作業を大幅に自動化できました。特に、SSH経由での遠隔操作は、手動で行うよりも高速かつエラーが少ないです。今回の手法は、大量のサーバーをセットアップする際や、再現性が求められる環境構築に役立ちます。ぜひ試してみてください。