Proxmox VE 8.1 Install Battle - PVE構築編(3/N)

Summary

企業のネットが星を被い、電子や光が駆け巡ってもハイパーバイザーやデータが消えてなくなるほど、情報化されていない近未来。

VMware の社内利用を禁じられた企業ネットでは新しい仮想化基盤を構築するべく自宅環境をクローンするのであった。


前回は Proxmox VE on Proxmox VE でテンプレートを使いながら検証環境をお手軽に構築する方法を紹介しました。今回は実際に Proxmox VE 設定を詰めていきます。

No valid subscription を消す

これは Proxmox VE の開発元がエンタープライズユースでサポートサービスを展開しているためその Subscription が無いという意味。個人で利用するには不要なためこのモーダル表示自体を消してしまう。

よくみる方法では後続で設定する自動アップデートの設定でソースが更新されると再度表示されるためこの方法としているこの方法であれば、 APT 完了後のファイル更新をきっかけに再度非表示化の処理が自動でされる。

Update

Proxmox VE は Debian ベースのため APT によってアップデートが提供されているがインストール直後の設定では PVE エンタープライズのレポジトリーに向いていてアップデートできない状態のため No Subscription レポジトリーに切り替える必要がある。

  • Host を選択し Updates > Repositoryes の画面に遷移
  • pve-enterprise の行を選択し Disable をクリック
  • enterprise の行を選択し Disable をクリック

変更前: Enterprise Repository 変更後: Enterprise Repository

次に Add を押して No-Subscription を選択 Add をクリック。

No-Subscription 適用後: No-Subscription

Ceph Quincy No-Subscription

  • 赤枠の箇所がに下記 2 つがあれば問題ない
    • pve-no-subscription
    • no-subscription

変更後

Update は Updates 画面で Refresh を押してしばらく待つと更新パッケージが表示されるので Upgrade を押すことでパッケージアップグレードできる。

Update

Topic
後続の作業依存度からここで一度再起動する。

Netwrok

LACP

Topic

この設定は Proxmox VE on Proxmox VE では簡単に実施することは出来ませんでした
そのため、 母艦側の方で VLAN を設定し Untag で設定することにしました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@pve1:~# cat /etc/network/interfaces
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
        address 10.2.21.66/24
        gateway 10.2.21.1

auto ens19
iface ens19 inet manual
        address 10.2.22.66/24

source /etc/network/interfaces.d/*


root@pve1:~# systemctl restart networking.service

LACP とは 802.3ad の Link Aggregation プロトコルでこれを使うことで対抗機器とパケットを転送しあい物理故障などで光レベルの減衰や UTP ケーブルの被覆劣化で減衰した時にパケットエラーが出てリンク速度が可変になります。

Proxmox VE では各ホストの System > Network で設定します。

  • Create をクリック
  • Linux Bond を選択
  • Slaves に今回なら MGMT 以外の NIC ens19 ens20 を設定
  • ModeLACP (802.2ad) に変更
  • Hash policylayer2+3 あたりが良いでしょう
  • Create を押すと bond0 が生成され画面した半分に変更予定が表示される

bond0 のクリエイト

設定に問題ない場合は Apply Configuration をクリック Network 設定を変更するがいいか聞かれるので YES を選択する。

設定の反映

MGMT

通常インストラーで設定した場合、 vmbr0 が作成され直接 IP Address が振られてしまいます。 そのため、 vmbr0 から IP Address を剥がしつつ ens18 に IP Address を設定する必要があります。この作業を失敗すると WebGUI にアクセスできなくなるため慎重に作業が必要です。

Proxmox VE では各ホストの System > Network で設定します。

  • vmbr0 をクリック
  • IPv4/CIDR を削除
  • Gateway (IPv4) を削除
  • Bridge ports を削除
  • VLAN aware を ■ に変更

vmbr0 から IP Address を削除

  • ens18 をクリック
  • IPv4/CIDR には vmbr0 と同一の IP Address を入力
  • Gateway (IPv4) を設定
  • Autostart ■ を設定
  • OK を押し保存

ens18 の設定

設定に問題ない場合は Apply Configuration をクリック Network 設定を変更するがいいか聞かれるので YES を選択。

Apply Configuration 画面

これで適用されて WebGUI にアクセスできれば完了です。

Storage

Topic

この設定は Proxmox VE on Proxmox VE では簡単に実施することは出来ませんでした
そのため、 母艦側の方で VLAN を設定し Untag で設定することにしました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@pve1:~# cat /etc/network/interfaces
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
        address 10.2.21.66/24
        gateway 10.2.21.1

auto ens19
iface ens19 inet manual
        address 10.2.22.66/24

source /etc/network/interfaces.d/*


root@pve1:~# systemctl restart networking.service

Storage 通信兼ライブマイグレーション用の VLAN インターフェースを作成しておきます。

Proxmox VE では各ホストの System > Network で設定します。

  • Create をクリック
  • Linux VLAN を選択
  • Namevmbr0.222 を入力するこれで VLAN 222 のインターフェースが作成できる
  • IPv4/CIDR Storage 用ネットワークを設定
  • Gateway (IPv4) ※あえて設定しません
  • Autostart ■ を設定
  • Create を押すと bond0 が生成され画面した半分に変更予定が表示される

vmbr0.222 の作成

設定に問題ない場合は Apply Configuration をクリック Network 設定を変更するがいいか聞かれるので YES を選択する。

Shell アクセス

設定とは関係無いが、 WebGUI 上から PVE の Shell にアクセスできるためこれを多様する。

Host > Shell でアクセスできる。

Shell を開いた所

SSH の PasswordAuthentication no

Proxmox VE ではクラスターを作成すると自動的にバックエンドで SSH 秘密鍵による Tunnel が root で張られるがこれは、パスワード認証である必要はないため SSH のパスワード認証を無効化する。 この時に、一般サーバーのように PermitRootLogin no するとクラスターも壊れるので注意。

1
2
sed -i'' -E 's/^#?PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
systemctl restart sshd

sshd -T コマンドで設定内容を確認しておく。

1
2
3
> sshd -T | grep password
passwordauthentication no
permitemptypasswords no

NTP

Proxmox VE 8.1 時点では chrony を利用して 2.debian.pool.ntp.org に同期設定がデフォルト。
弊宅では Cloudflare と INTERNET MULTIFEED を設定することにしている。

変更前
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
root@pve1:~# grep -v -E '^(#|$)' /etc/chrony/chrony.conf 
confdir /etc/chrony/conf.d
pool 2.debian.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC
/etc/chrony/chrony.conf
1
2
3
4
# Use Debian vendor zone.
# pool 2.debian.pool.ntp.org iburst
pool time.cloudflare.com prefer iburst minpoll 6 maxpoll 10
pool ntp.jst.mfeed.ad.jp iburst minpoll 6 maxpoll 10
chrony を再起動して確認する
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
root@pve1:~# systemctl restart chrony

root@pve1:~# chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ time.cloudflare.com           3   6    17    50   -806us[-1660us] +/-   75ms
^* time.cloudflare.com           3   6    17    50  +6022us[+5168us] +/-   79ms
^- ntp1.jst.mfeed.ad.jp          2   6    17    50  -2433us[-3287us] +/-   76ms
^- ntp2.jst.mfeed.ad.jp          2   6    17    50  -2713us[-3566us] +/-   80ms
^- ntp3.jst.mfeed.ad.jp          2   6    17    51  -2922us[-3775us] +/-   78ms

Syslog

Proxmox VE では jounal でろぐが管理されているようでインストール時では rsyslog が存在しないためパッケージのインストールとすべてのログをリモート転送する設定を実施する。

@@syslog.example.com とすることで TCP での転送とした。

1
2
3
4
5
6
7
apt install rsyslog -y

cat <<EOF > /etc/rsyslog.d/remote-logging.conf
*.*  @@syslog.example.com:514
EOF

systemctl restart rsyslog

Wake on LAN 設定

任意ではあるが、 WebGUI 上から Wake on LAN で PVE を叩き起こすことが可能になるためこちらを設定しておくことをオススメする。

  • Datacenter > pve1 > System > Options に存在する
  • MAC address for Wake on LAN をクリックすると編集画面になるため MGMT NIC の MAC Address を入力すれば良いだろう

Wake on LAN

起動の方法は至って簡単で Datacenter > 対象の Host 上で右クリック Wake-on-LAN を選択すればよい。

Wake-on-LAN

Firewall

Proxmox VE には Firewall が搭載されています。
インストール時には Datacenter の設定で無効化されていますが、個別に On にすることでセキュアな設定にすることも可能。
設定する箇所は DatacenterHost どちらもありますが、 Host に設定するとそのホスト固有になります。そのため通常利用なら、 Datacenter に設定し利用するべきでしょう。

また、 Security Group, Alias, IPSet を設定できるため事前に定義しておけば設定も簡略化が可能です。

unattended-upgrades

Proxmox VE の機能には含まれていないが、近年のソフトウェアは脆弱性などで度々話題になるためソフトウェアアップデートの重要性をほとんどの人は把握しているだろう、継続的に実施することはソフトウェアごとに異なり運用が大変な箇所でもある。

そこで、 Proxmox VE は Debian ベースであることもあり Debian の自動アップデート UnattendedUpgrades を On に設定しておく。 これをすることでアップデートがあれば root 宛にメールを受信し、設定によっては必要な時に自動再起動も可能。
Proxmox VE には unattended-upgrades パッケージが含まれてないため下記でインストールしておく。

1
apt -y install unattended-upgrades apt-listchanges patch
  • パッケージのアップデート対象
    • Zabbix (弊宅では利用しているので)
    • Proxmox
  • メール通知
    • root に送信 (SMTP で転送される)
    • 変更時のみメール送信される、アップデートなしは通知されない
50unattended-upgrades.patch
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--- a/etc/apt/apt.conf.d/50unattended-upgrades     2024-04-21 08:24:15.154096942 +0900
+++ b/etc/apt/apt.conf.d/50unattended-upgrades     2024-04-21 08:47:02.427238011 +0900
@@ -31,6 +31,8 @@ Unattended-Upgrade::Origins-Pattern {
         "origin=Debian,codename=${distro_codename},label=Debian";
         "origin=Debian,codename=${distro_codename},label=Debian-Security";
         "origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
+        "origin=Zabbix,codename=${distro_codename}";
+        "origin=Proxmox,suite=stable,codename=${distro_codename}";
 
         // Archive or Suite based matching:
         // Note that this will silently match a different release after
@@ -91,7 +93,7 @@ Unattended-Upgrade::Package-Blacklist {
 // If empty or unset then no email is sent, make sure that you
 // have a working mail setup on your system. A package that provides
 // 'mailx' must be installed. E.g. "[email protected]"
-//Unattended-Upgrade::Mail "";
+Unattended-Upgrade::Mail "root";
 
 // Set this value to one of:
 //    "always", "only-on-error" or "on-change"
@@ -108,7 +110,7 @@ Unattended-Upgrade::Package-Blacklist {
 
 // Do automatic removal of unused packages after the upgrade
 // (equivalent to apt-get autoremove)
-//Unattended-Upgrade::Remove-Unused-Dependencies "false";
+Unattended-Upgrade::Remove-Unused-Dependencies "true";
 
 // Automatically reboot *WITHOUT CONFIRMATION* if
 //  the file /var/run/reboot-required is found after the upgrade

適用は 50unattended-upgrades.patch を適当に配置し下記で当てる。

1
2
3
nano ~/50unattended-upgrades.patch

patch -d / -u -p1 < ~/50unattended-upgrades.patch

下記でテストを実施する。

1
unattended-upgrade

まとめ

これで、クラスターに所属させる準備が出来ました。
次はいよいよクラスターを作成していきます。

Built with Hugo
テーマ StackJimmy によって設計されています。