Proxmox Virtual Environment で仮想化環境構築

こんにちは、アプリケーション共同開発部のきつねです。

先日、Proxmox Virtual Environment(Proxmox VE)で仮想化環境を構築しました。
インストール手順は公式からチュートリアル動画として公開されていますが、インストール後の各種設定の詳細は Wiki に記載されており見つけ出すのに苦労したため、私が行った一連の流れをまとめてご紹介いたします。

一連の流れの内訳は

  • Proxmox Virtual Environment とは
  • Proxmox VE のインストール
  • Proxmox VE の設定
  • ゲストの作成

Proxmox VE の設定では、バックアップと別ネットワークにある LDAP サーバとの認証連携を行っています。

Proxmox Virtual Environment とは

Proxmox VE は、KVM ハイパーバイザと LXC コンテナ、ソフトウェア定義のストレージとネットワーキング機能を単一のプラットフォームに緊密に統合し、高可用性クラスタと災害復旧ツールをウェブ管理インターフェースで容易に管理することができるオープンソースプラットフォームです。

Proxmox VE のインストール

  1. ISO イメージを CD-ROM もしくは USB に保存
    こちらからダウンロードした ISO イメージを CD-ROM に書き込みました。

  2. インストール
    イメージを書き込んだ CD-ROM からブートします。

    f:id:fenrir_engineers:20181203200718p:plain

  3. インストール先を選択
    選択したディスク全てが Proxmox 用に設定されます。
    option からファイルシステムを変更することが可能で、選択肢としては ext3 / ext4 / xfs / zfs の 4 つ、デフォルトは ext4 です。zfs を選択する場合は RAID レベルも選択する必要があります。

    f:id:fenrir_engineers:20181203200825p:plain

    今回はデフォルトの ext4 にしました。

  4. ロケーションおよびタイムゾーンを選択
    Country を入力すると、Time zone および Keyboard Layout は自動で変更してくれます。

    f:id:fenrir_engineers:20181203200913p:plain

    今回は Country に Japan を入力しました。

  5. root のパスワードおよびメールアドレスを設定

    f:id:fenrir_engineers:20181203200934p:plain

  6. ネットワークの設定

    f:id:fenrir_engineers:20181203200959p:plain

上記を終えるとインストールが始まります。

再起動後、画面に表示された URL に別 PC でアクセスすることで、Proxmox VE の管理画面にアクセスできます。

Proxmox VE の設定

インストールが終わったら Proxmox に root でログインしてみましょう。
管理画面には HTTPS でしかアクセスできません。この時点では証明書の設定は行なっていないので、「この接続ではプライバシーが保護されません」など、表示されるかと思いますが気にせず続けます。

ログイン

WebUI の管理画面からログインする場合は、https://設定したIPアドレス:8006/ にブラウザでアクセスします。

f:id:fenrir_engineers:20181203201022p:plain

ログイン後、「有効なサブスクリプションがありません」と表示されますが、広告なのでそっと閉じましょう。

f:id:fenrir_engineers:20181203201037p:plain

バックアップ

まずはバックアップの設定を行います。

  1. Proxmox VE にストレージの追加

    • 管理画面からの設定
      「データセンター > ストレージ > 追加 > ディレクトリ」でストレージを追加します。


      f:id:fenrir_engineers:20181203201058p:plain

      f:id:fenrir_engineers:20181203201123p:plain

      各項目の詳細は以下です。

      • ID
        Proxmox VE 内で一意に特定するためのもの。
        任意に設定してください。
      • ディレクトリ
        保存先の指定
      • 内容
        保存物の指定(複数選択可)
        バックアップが目的なので VZDump バックアップファイル を選択します。
      • ノード
        このストレージを使用できるノード
      • 有効
        このストレージの使用可否
      • 共有
        全てのノードで共有するかどうか
      • 最大バックアップ数
        バックアップの世代数。制限しない場合は 0

    • コンソールからの設定
      ストレージの設定は /etc/pve/storage.cfg に書かれています。
      以下のように追記することで、ストレージを追加することができます。

      dir: ID
        path ディレクトリ
        content 内容
        maxfiles 最大バックアップ数
        nodes ノード名
        shared 共有
       

      • content
        images / rootdir / vztmpl / backup / iso から選択してください。
        複数選択する場合はカンマで繋ぎます。
      • shared
        true 1
        false 0
    • 参考

  2. バックアップスケジュールの設定

    • 管理画面からの設定
      「データセンター > バックアップ > 追加」でバックアップスケジュールを追加します。


      f:id:fenrir_engineers:20181203201152p:plain

      f:id:fenrir_engineers:20181203201205p:plain

      各項目の詳細は以下です。

      • ノード
        対象とするノード
      • ストレージ
        保存するストレージ
        上記で追加したストレージを選択します。
      • 曜日
        バックアップを実行する曜日(複数選択可)
      • 開始時刻
        バックアップを実行する時刻
      • 選択モード
        バックアップを実行する VM
      • メールの送信先
        バックアップ実行時にメールを送信するアドレス
      • メール通知
        メールを送信する条件
      • 圧縮
        バックアップの保存フォーマット
      • モード
        バックアップの実行方法
      • 有効
        このバックアップスケジュールの使用可否

    • コンソールからの設定
      バックアップスケジュールの設定は /etc/pve/vzdump.cron に書かれています。
      しかしこのファイルを直接変更することは、非推奨とされています。

    • 参考

ユーザの追加

VM の追加削除など、仮想環境を利用するユーザを作成します。

LDAP 認証連携の設定

フェンリルでは LDAP サーバでユーザ情報を集中管理しているので、LDAP 認証を有効にしていきます。
ただし、LDAP サーバは別ネットワークにあるので、ルーティングから行います。(LDAP サーバが同一ネットワークにある場合は、1. は飛ばしてください。)

  1. ルーティングテーブルの設定

    残念ながら、管理画面からルーティングテーブルの設定はできません。

    • コンソールからの設定
      ルーティングの設定は /etc/network/interfaces に書かれています。
      Proxmox VE 起動時にエントリが追加されるように追記します。

    auto vmbr0
    iface vmbr0 inet static
            ...

         post-up ip route add IPアドレス via ゲートウェイ dev vmbr0      pre-down ip route del IPアドレス

    Proxmox VE のブリッジインターフェース vmbr0 に対して、起動後に追加、終了前に削除しています。
    追記が完了したら再起動して確認してみましょう。

  2. ホストの設定

    • 管理画面からの設定
      「データセンター > ホストノード > システム > Hosts」に、LDAP サーバの IP アドレスおよびホスト名を追加します。

      f:id:fenrir_engineers:20181203201227p:plain

    • コンソールからの設定
      ホストの設定は /etc/hosts に書かれています。
      管理画面からと同様、LDAP サーバの IP アドレスおよびドメインを追記します。

  3. LDAP 認証の追加

    • 管理画面からの設定
      「データセンター > アクセス権限 > 認証 > 追加 > LDAP サーバー」で認証を追加します。

      f:id:fenrir_engineers:20181203201247p:plain

      f:id:fenrir_engineers:20181203201301p:plain

      各項目の詳細は以下です。

      • レルム
        Proxmox VE 内で一意に特定するためのもの
        Proxmox ユーザ名@レルム で LDAP にログインするので注意してください。
      • ベースドメイン名
      • ユーザー属性名
        • デフォルト Proxmox ログイン時のレルム初期値とするかどうか
        • サーバー LDAP サーバのホスト。
          上記で追加したホスト名を設定してください。
        • フォールバックサーバ
        • ポート
          デフォルトでは 389
        • SSL
        • TFA

    • コンソールからの設定
      認証方法の設定は /etc/pve/domains.cfg に書かれています。
      以下のように追記することで、認証方法を追加することができます。

      ldap: レルム
      base_dn ベースドメイン名
      server1 サーバー
      user_attr ユーザー属性名
      default デフォルト
      port ポート
      secure SSL
      server2 フォールバックサーバ
      tfa type=oath
      

      • default
        true 1
        false 0
      • secure
        true 1
        false 0
      • tfa
        type=none / type=oath / type=yubico から選択してください。
        Yubico の場合は、さらに ID, Key, URL が必要です。

    • 参考

  4. LDAP サーバに対する Proxmox VE の認証

    LDAP サーバへの接続に認証が必要な場合は、バインド DN と SGD パスワードを設定する必要があります。

以上で LDAP 認証連携の設定は完了です。
うまくいかない場合は「データセンター > ホストノード > システム > Syslog」でログを確認をしてください。

Proxmox VE ユーザの追加

Proxmox VE ではグループを用いたアクセス権限などの管理が推奨されています。
そのため、まずグループの作成から行います。

  1. グループの設定

    • 管理画面からの設定
      「データセンター > アクセス権限 > グループ > 作成」で追加します。


      f:id:fenrir_engineers:20181203201326p:plain

      f:id:fenrir_engineers:20181203201339p:plain

      各項目の詳細は以下です。

      • 名前
        Proxmox VE 内で一意に特定するためのもの
        任意に設定してください。

    • コンソールからの設定
      グループの設定は /etc/pve/user.cfg に書かれています。
      以下のように追記することで、グループを追加することができます。

      group:名前:::
    

    またはコマンドラインツール Proxmox VEUser Manager で設定できます。

      # pveum groupadd 名前
    

  2. グループのアクセス権限の設定

    Proxmox VE の管理ユーザ用のグループを作成してみましょう。

    • 管理画面からの設定
      「データセンター > アクセス権限 > 作成 > グループのアクセス権限」でアクセス権限を追加します。


      f:id:fenrir_engineers:20181203201358p:plain

      f:id:fenrir_engineers:20181203201415p:plain

      各項目の詳細は以下です。

      • パス
        変更可能なディレクトリパス
        管理ユーザ用グループなので / を選択してください。
      • グループ
        上記で作成したグループを指定してください。
      • ロール
        適用する権限
        管理ユーザ用グループなので PVEAdmin を設定してください。
      • 継承
        グループの設定を優先するかどうか
        アクセス権限が設定されたユーザがグループに含まれる場合に参照されます。

    • コンソールからの設定
      アクセス権限の設定は /etc/pve/user.cfg に書かれています。
      以下のように追記することで、グループを追加することができます。

      acl:継承:パス:@グループ:ロール:
    

    • 継承
      true 1
      false 0

    またはコマンドラインツール Proxmox VEUser Manager で設定できます。

      # pveum aclmod パス --roles ロール -groups グループ -propagate 継承
    

  3. ユーザの追加

    Proxmox VE の管理ユーザを作成してみましょう。

    • 管理画面からの設定
      「データセンター > アクセス権限 > ユーザー > 追加」でユーザを追加します。


      f:id:fenrir_engineers:20181203201437p:plain

      f:id:fenrir_engineers:20181203201453p:plain

      各項目の詳細は以下です。

      • ユーザー名
        Proxmox VE 内で一意に特定するためのもの
        任意に設定してください。
      • レルム
        上記で追加した LDAP 認証のレルムを指定してください。
      • グループ
        上記で作成したグループを指定してください。(複数選択可)
      • 有効
      • 有効期限
      • 氏名
      • 苗字
      • E-Mail
      • キー ID
        TFA(Yubico)を有効にする場合に必要です。

    • コンソールからの設定
      アクセス権限の設定は /etc/pve/user.cfg に書かれています。
      以下のように追記することで、ユーザを追加することができます。

      user:ユーザー名@レルム:有効:有効期限:氏名:苗字:E-Mail:コメント:キーID:
    

    • 有効
      true 1
      false 0

    また以下のように先ほど作成したグループに追記します。

      group:グループ:ユーザー名, ...::
    

    またはコマンドラインツール Proxmox VEUser Manager で設定できます。

      # pveum useradd ユーザー名@レルム -groups グループ -enable 有効 -expire 有効期限 -firstname 氏名 -lastname 苗字 -email E-Mail -keys キーID
    

    • expire
      ユーザ追加が完了してからの秒数を設定してください。
      制限しない場合は 0

以上で Proxmox VE ユーザの追加は完了です。
うまくいかない場合は「データセンター > ホストノード > システム > Syslog」でログを確認をしてください。

ゲストの作成

最後に Proxmox VE の使い方を少しだけご紹介します。VM を作成してみましょう。

ISO イメージの追加

「データセンター > ホストサーバ > ストレージ > 内容 > アップロード」で ISO イメージをホストに追加します。

f:id:fenrir_engineers:20181203201516p:plain

ここでアップロードした ISO イメージは 、「データセンター > ストレージ」の内容で ISO イメージが選択されたストレージに保存されます。

f:id:fenrir_engineers:20181203201529p:plain

デフォルトでは local ストレージの /var/lib/vz/template/iso/ に保存されます。

VM の作成

「VM を作成」から VM を追加します。

f:id:fenrir_engineers:20181203201544p:plain

簡単なご紹介なので、必要な部分だけ設定していきます。

  1. 全般
    何も変更せずに「次へ」

    f:id:fenrir_engineers:20181203201604p:plain

  2. OS
    上記で追加した ISO イメージを選択して「次へ」

    f:id:fenrir_engineers:20181203201623p:plain

  3. ハードディスク
    何も変更せずに「次へ」

    f:id:fenrir_engineers:20181203201642p:plain

  4. CPU
    何も変更せずに「次へ」

    f:id:fenrir_engineers:20181203201659p:plain

  5. メモリー
    何も変更せずに「次へ」

    f:id:fenrir_engineers:20181203201717p:plain

  6. ネットワーク
    何も変更せずに「次へ」

    f:id:fenrir_engineers:20181203201733p:plain

  7. 確認
    「Start after created」をチェックして「完了」

    f:id:fenrir_engineers:20181203201748p:plain

VM に接続

上記で作成した VM に接続します。

「データセンター > ホストノード > ゲスト > コンソール」

f:id:fenrir_engineers:20181203201803p:plain

専用のウィンドウで開きたい場合は「コンソール > noVNC」を選択してください。

あとはゲストの設定をしていくだけです。

おわりに

Proxmox VE のインストールから設定、簡単な使い方をご紹介しました。
今回でいうところの別ネットワークにある LDAP サーバとの認証連携など、管理画面からできないことになると途端に情報が少なくなってしまいますが、少し探しづらさはあるものの公式 Wiki に管理画面から行う操作についてはしっかりと詳細が記されているので苦労することはあまりなさそうです。

管理画面をみてるだけでも色々できそうな気がしてきますね!
ぜひこの記事を参考に Proxmox VE を使ってみてください。