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
をクリック

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


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

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

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
を設定Mode
を LACP (802.2ad)
に変更Hash policy
は layer2+3
あたりが良いでしょうCreate
を押すと 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
を ■ に変更

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

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

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

設定に問題ない場合は Apply Configuration
をクリック
Network 設定を変更するがいいか聞かれるので YES
を選択する。
Shell アクセス ¶
設定とは関係無いが、 WebGUI 上から PVE の Shell にアクセスできるためこれを多様する。
Host
> 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 を入力すれば良いだろう

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

Firewall ¶
Proxmox VE には Firewall が搭載されています。
インストール時には Datacenter の設定で無効化されていますが、個別に On にすることでセキュアな設定にすることも可能。
設定する箇所は Datacenter
と Host
どちらもありますが、 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
|
追加で autoclean を設定する
1
| echo "APT::Periodic::AutocleanInterval \"1\";" >> /etc/apt/apt.conf.d/20auto-upgrades
|
/etc/apt/apt.conf.d/20auto-upgrades
1
2
3
| APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
+ APT::Periodic::AutocleanInterval "1";
|
apt upgrade
を実施した場合定時で再起動したい場合は下記を追加で設定する。
1
2
3
4
5
6
7
8
9
10
| // Automatically reboot *WITHOUT CONFIRMATION* if
// the file /var/run/reboot-required is found after the upgrade
- //Unattended-Upgrade::Automatic-Reboot "false";
+ Unattended-Upgrade::Automatic-Reboot "true";
// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
- //Unattended-Upgrade::Automatic-Reboot-Time "02:00";
+ Unattended-Upgrade::Automatic-Reboot-Time "10:00";
|
下記でテストを実施する。
まとめ ¶
これで、クラスターに所属させる準備が出来ました。
次はいよいよクラスターを作成していきます。