AIエージェントにSSH越しでNixOSをインストールさせる方法

Claude CodeなどのAIエージェントを活用し、SSH経由でリモートサーバーにNixOSを自動インストールする実践的な手順を解説。OSインストールの自動化と遠隔操作のノウハウを公開。

AIエージェントNixOSSSHClaudeCode遠隔操作OSインストール自動化2026/5/25

はじめに

クラウドやオンプレミスのサーバーをセットアップする際、OSインストールは面倒な作業の一つです。特にNixOSのような宣言的構成管理を前提としたOSでは、インストール後の設定も含めて自動化したいところ。今回は、Claude Code(AIエージェント)にSSH経由でリモートサーバーへNixOSをインストールさせる方法を紹介します。

前提条件

  • ターゲットマシンがPXEブートまたはLive USBで起動可能(NixOS minimal ISO推奨)
  • ターゲットマシンと作業マシンがネットワーク接続可能
  • 作業マシンにnixos-anywhereがインストール済み(リモートマシンへのNixOSインストールツール)
  • AIエージェント(Claude Code)が利用可能で、SSHキーを管理できる
  • 手順概要

  • ターゲットマシンでNixOS Live ISOを起動し、SSHを有効化
  • 作業マシンでAIエージェント(OpenCode/ClaudeCode等)にSSH接続〜インストールの指示を出す
  • AIエージェントがSSH接続後、nixos-anywhereを実行
  • インストール完了後、再起動してNixOSが起動することを確認
  • 詳細手順

    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キーなど)は別途行う必要があります。

    注意点とトラブルシューティング

  • SSHキーのパーミッション: AIエージェントが読み取れる場所に鍵を配置してください。Claude Codeはコンテナ内で動作するため、/tmpが安全です。
  • ネットワーク安定性: インストール中にSSHが切れると失敗します。必要ならscreentmuxを使いましょう。
  • ディスク指定: 誤ったディスクを指定するとデータが失われるため、事前にlsblkで確認するようエージェントに指示しましょう。
  • flake設定: カスタムflakeを使う場合、GitHub等から取得可能な状態にしてください。
  • 応用:完全自動化

    AIエージェントにさらに指示を追加することで、インストール後の初期設定まで自動化できます。例えば、以下のようなステップを追加します。

  • NixOS設定ファイル(/etc/nixos/configuration.nix)を転送
  • nixos-rebuild switchを実行
  • ユーザー作成とSSH公開鍵の設定
  • <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経由での遠隔操作は、手動で行うよりも高速かつエラーが少ないです。今回の手法は、大量のサーバーをセットアップする際や、再現性が求められる環境構築に役立ちます。ぜひ試してみてください。