Proxmox VEを導入する

こんにちは、tukapiyoです。

最近おうち仮想化基盤を復活させようと思い、ハイパーバイザに何を使うか悩んでいたのですが、せっかくなのでProxmoxを使ってみることにしました。
ちょうど、VMware ESXi8.0が再度無償公開されたところではありますが、15年ぐらい前にはqemu+kvmを利用していたこともあり、再びオープンソース系に戻ることとしてみます。

今回は、Proxmox VE 8.4の導入とアップデートまでの流れを紹介します。

Proxmox VEのダウンロード

公式サイトからisoをダウンロードします。

USBなり、DVDに焼くなり、仮想メディアで使うなりして、これをブートメディアにします。

Proxmox VEのインストール

  1. ダウンロードしたisoでブートして、Proxmox VEのブート画面が表示されたら、今回は「Install Proxmox VE (Graphical)」を選択します。
  2. ライセンスを確認して「I agree」を選択します。
  3. インストール先のドライブを選択して「Next」を選択します。今回はパーティションを自動設定にしました。
  4. 国とタイムゾーンを設定します。Countryに「Japan」と入力するとほかの項目も自動的に設定されます。
  5. rootユーザのパスワードとメールアドレスを入力したら、「Next」を選択します。
  6. ホスト名やIPアドレスを設定して、「Next」を選択します。
  7. サマリーを確認して、「Next」を選択します。
  8. インストールが完了すると自動的に再起動され、GRUBのブートローダーが表示されます。
    そのまま放置しても問題ありませんし、「Proxmox VE GNU/Linux」を選択しても構いません。
  9. 起動が完了するとログイン画面が表示されます。

Proxmox VEのログイン

Proxmox VEはブラウザで操作可能です。
tukapiyoはFirefoxの利用を強く推奨しています。

  1. ブラウザを起動してログイン画面に表示されたURLへアクセスします。
    今回は、「https://192.168.22.130:8006/」が接続先です。
  2. 接続すると自己署名証明書に関するエラーが表示されるので、「詳細へ進む…」を選択します。
  3. 「危険性を承知の上で使用」を選択します。
  4. ログイン画面が表示されますが最初は英語で表示されるので、「言語」を「日本語」にします。
  5. 「ユーザ名」にrootを入力し、パスワードをインストールの際に決めたものを入力してログインします。
  6. 「有効なサブスクリプションがありません」と表示されますので、「OK」を押して閉じます。

アップデート

リポジトリの更新

サブスクリプションがないので、無償版のリポジトリを設定します。

  1. ノード(今回はproxmox)を選択し、「アップデート」の下にある「リポジトリ」を選択します。
  2. エンタープライズ版のリポジトリを無効にします。
    コンポーネントが「enterprise」や「pve-enterprise」となっている2つのリポジトリを選択して、「無効」を選択します。
  3. 「追加」を選択して、無償版のリポジトリを追加します。
  4. 再び「有効なサブスクリプションがありません」と表示されるので、「OK」を選択します。
  5. リポジトリの一覧から「No-Subscription」を選択します。
  6. 「追加」を選択してリポジトリを追加します。
  7. 以下の様にリポジトリが追加されました。
  8. 同様の手順で、リポジトリ「Ceph Quincy No-Subscription」も追加しておきます。

パッケージのアップデート

  1. 「アップデート」を表示し「再表示」を押すことでアップデートの一覧を更新します。
  2. 再び「有効なサブスクリプションがありません」と表示されるので、「OK」を選択します。
  3. 「アップグレード」を選択します。
  4. 以下の様にコンソールが表示されます。
  5. Y/nの確認が表示されるので、yを入力してEnterキーを押下します。
  6. アップデートが完了すれば以下の様にプロンプト#が返ってきます。
  7. 今回はカーネルアップデートがあるため、「再起動」を選択します。
  8. 再起動を確認されるので「はい」を選択します。
    Proxmox VEが再起動します。

「有効なサブスクリプションがありません」を表示しないようにする

これまでの手順でも表示された様に、幾度となく「有効なサブスクリプションがありません」と表示されるため、これを表示しないようにします。

  1. SSHなり、コンソールなり、Web UIのシェルなりを使ってログインします。
  2. 以下の様に、/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsを編集し、checked_commandの定義を修正します。編集する箇所はsuccess関数定義の冒頭で、2行追加します。
        checked_command: function(orig_cmd) {
            Proxmox.Utils.API2Request(
                {
                    url: '/nodes/localhost/subscription',
                    method: 'GET',
                    failure: function(response, opts) {
                        Ext.Msg.alert(gettext('Error'), response.htmlStatus);
                    },
                    success: function(response, opts) {
                        orig_cmd();
                        return;
                        let res = response.result;
                        if (res === null || res === undefined || !res || res
                            .data.status.toLowerCase() !== 'active') {
                            Ext.Msg.show({
                                title: gettext('No valid subscription'),
                                icon: Ext.Msg.WARNING,
                                message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                                buttons: Ext.Msg.OK,
                                callback: function(btn) {
                                    if (btn !== 'ok') {
                                        return;
                                    }
                                    orig_cmd();
                                },
                            });
                        } else {
                            orig_cmd();
                        }
                    },
                },
            );
        },
    
  3. pveproxyサービスを再起動します。
    # systemctl restart pveproxy
    
  4. Web UIをCtrl+F5キーでスーパーリロードすれば、以降メッセージが表示されなくなります。

まとめ

導入が非常に簡単で、これならESXi使わなくても良さそうです。
Web UIも非常に洗練されているものの、一部コマンド操作が残っていたりDebianの香りを感じる部分もあります。
そういう部分が気にならない方なら十分使える仮想化基盤になりますね。

おすすめ

コメントを残す