地方在住IT系ニート

bkds

homebridge-proxmoxの設定メモ【iPhoneからVM・LXCを操作する】

はじめに

Homebridgeのインストールと設定で紹介したHomebridgeに@evan-kinney/homebridge-proxmoxプラグインを追加することで、ProxmoxのVM・LXCコンテナをiPhoneの「ホーム」アプリやSiriから起動・停止できるようになります。

Proxmoxの管理画面を開かずにスイッチひとつでVMを操作できるのが便利です。

プラグインのインストール

Homebridgeの管理画面(http://<IPアドレス>:8581)のプラグインタブからhomebridge-proxmoxを検索してインストールします。

またはCLIからインストールすることも可能です。

sudo npm install -g @evan-kinney/homebridge-proxmox

ProxmoxのAPIトークン作成(推奨)

パスワード認証よりAPIトークンの使用が推奨されています。

  1. ProxmoxのWeb管理画面にログイン
  2. DatacenterPermissionsAPI Tokens を選択
  3. Add をクリックしてトークンを作成

作成後に表示されるSecretは再表示できないので必ず控えておきます。

Proxmoxユーザーの権限設定

Homebridgeが使用するユーザーに必要な権限を付与します。

# Proxmoxのシェルで実行
pveum user add homebridge@pve
pveum aclmod / -user homebridge@pve -role PVEVMUser

config.jsonの設定

Homebridgeのconfig.jsonに以下を追加します。

パスワード認証の場合

複数のProxmoxサーバーを登録することも可能です。

{
  "servers": [
    {
      "name": "proxmox-windows",
      "username": "root@pam",
      "password": "your-password",
      "host": "192.168.1.100",
      "port": 8006,
      "ssl": true
    },
    {
      "name": "proxmox-n100",
      "username": "root@pam",
      "password": "your-password",
      "host": "192.168.1.101",
      "port": 8006,
      "ssl": true
    }
  ],
  "debug": false,
  "accessoryType": "switch",
  "pollingInterval": 30,
  "_bridge": {
    "username": "XX:XX:XX:XX:XX:XX",
    "port": 46669
  },
  "platform": "HomebridgeProxmox"
}

APIトークン認証の場合(推奨)

{
  "servers": [
    {
      "name": "proxmox-server",
      "host": "192.168.1.100",
      "port": 8006,
      "username": "homebridge@pve",
      "apiToken": {
        "tokenId": "homebridge@pve!homebridge-token",
        "secret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      },
      "ssl": true
    }
  ],
  "debug": false,
  "accessoryType": "switch",
  "pollingInterval": 30,
  "_bridge": {
    "username": "XX:XX:XX:XX:XX:XX",
    "port": 46669
  },
  "platform": "HomebridgeProxmox"
}

設定項目の説明

serversの設定

キー必須説明
nameサーバーの識別名
hostProxmoxサーバーのIPアドレスまたはホスト名
portProxmox APIのポート(デフォルト: 8006)
usernameProxmoxのユーザー名(user@realm形式)
passwordパスワード認証の場合に指定
apiTokenAPIトークン認証の場合に指定
ssl-SSL検証の有効化(自己署名証明書の場合はfalse

その他の設定

キー説明
accessoryTypeHomeKitでの表示タイプ(switch推奨)
pollingIntervalVM状態の更新間隔(秒)
debugデバッグログの有効化

_bridgeセクション(Child Bridge)

_bridgeはHomebridgeのChild Bridge機能の設定です。 プラグインを独立したブリッジとして動作させることで、プラグインの問題がHomebridge全体に影響しにくくなります。

キー説明
usernameChild BridgeのMACアドレス形式の識別子
portChild Bridgeが使用するポート番号

動作確認

設定後にHomebridgeを再起動します。

sudo systemctl restart homebridge

ProxmoxのVM・LXCが自動検出されてiPhoneのホームアプリにスイッチとして表示されます。 スイッチをONにするとVMが起動し、OFFにすると停止します。

自己署名証明書を使っている場合

ProxmoxはデフォルトでSSLに自己署名証明書を使用しています。 証明書エラーが発生する場合はsslfalseに設定してください。

"ssl": false

まとめ

@evan-kinney/homebridge-proxmoxを使うことでProxmoxのVM・LXCをiPhoneのホームアプリから手軽に操作できます。 複数のProxmoxサーバーを同時に登録できるため、自宅に複数台のProxmoxがある環境でも一元管理できます。 Homebridgeの基本的な設定についてはHomebridgeのインストールと設定メモを参照してください。

<-- Back to home
にほんブログ村 IT技術ブログ IT技術メモへ PVアクセスランキング にほんブログ村