====== Proxmox VE インストール ====== デフォルトポートは8006 1.DHCPに設定を変更する。 ProxmoxVE(pve)のシェルを開く。 nano /etc/network/interfaces 固定IPになっているところを調べる(下記は例) iface vmbr0 inet static address 192.168.x.xxx/24 gateway 192.168.x.1 bridge-ports enp2s0 bridge-stp off bridge-fd 0 固定に変更して上書き(Ctrl + o)、終了(Ctrl + x)、再起動する iface vmbr0 inet dhcp bridge-ports enp2s0 bridge-stp off bridge-fd 0 2.PCIパススルーの設定をする。 ESXiと異なり、BIOS設定してインストールしただけではPCIパススルーが動作しない。ProxmoxVE(pve)のシェルを開く。 nano /etc/default/grub 下記の2行が書かれた箇所を探す。 GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX_DEFAULT="" このうち、下の何も記載していない方に追記して、下記のようにする (AMD CPUの場合、intel_iommuをamd_iommuに置き換える) GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" 上書き(Ctrl + o)、終了(Ctrl + x)、最後に反映のために下記を入力する update-grub 最後にrebootして完了となる https://www.servethehome.com/how-to-pass-through-pcie-nics-with-proxmox-ve-on-intel-and-amd/ 2.hostnameを変更する。 ProxmoxVE(pve)のシェルを開く。 現在の仕様を確認するにはhostnamectl ->  Static Hostnameが現在の設定。 hostnamectl set-hostname 3.ライセンスの状態を修正する。 bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" ProxmoxVE(pve)のシェルを開く。 以下をコピーして貼り付ける。 4.内部ネットワークのルーターを作成する。 pveのネットワークを開くと、初期状態でvmbr0がある。作成をクリックしてvmbr1、192.168.100.0/24で作成する。(再起動後に反映) シェルで下記を実行して、OpenWRTをインストールする。 bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)" インストールはデフォルトでOK インストール後にシャットダウン、vlanが設定されているほうがLAN側なので、VLAN IDを削除して、vmbr1に変更して起動して完了。 5.Home Assistantのインストール Home Assistantには種類があって、アドオン入れられるのはHA OSか、 HA Supervisedしかできない。なのでHAのVMを作成する。 bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)" VMにZigbee Dongle-Pを接続して、Proxmoxのデバイス追加より USBドングルを設定しておくこと。 6.Home AssistantにZigbee2MQTTを入れる。 参考:https://youtu.be/L9lC0Mse0K4?si=gsiOmjTyF3uuAmq9 A.アドオンストアのMQTTをインストールして、開始する。 B.メンバーを追加する。メンバー名:mqtt-user、パスワード:yourmqtt(仮) C.システム - ハードウェア よりすべてのハードウェアを選択する。 Zigbee Dongleのアダプターを探す。自分の環境では/dev/ttyUSB0だった。 D.アドオンストア右上の3点メニューより、下記のリポジトリを追加する。  https://github.com/zigbee2mqtt/hassio-zigbee2mqtt 追加後はZigbee2MQTTをインストールする。 E:Z2Mを起動する前に設定タブを開いて、下記の文字列を追加する。B.C.で取得した情報で適宜置き換えること。追記後に保存、サイドバーに表示にチェックを入れてZ2Mを起動する。 mqttの項目: server: mqtt://core-mosquitto user: mqtt-user password: yourmqtt serialの項目: port: /dev/ttyUSB0 F:Z2Mを起動して、SettingよりZigbee Channelを15,20,25のいづれかに変更(もし複数のアクセスポイントがある場合は16,11)して、無線LANとの干渉を抑える。自分は11を選択する。 G.同じくSettingよりLast Seenの設定をdisableよりISO_8601_localに変更する。 H.同じくSettingよりNetwork keyにGENERATEと入力する。これにより生成されたキーで暗号化されるが、全てのデバイスを再ペアリングする必要がある。 I.同じくSettingよいTransmit powerを最大20まで変更できる。初期値は9。実家は広いので20に変更して再起動する。 K.この状態で再起動すると、まれに失敗することがある。その場合はFile Kditorを使って、config/zigbee2mqtt/coodinator_backup.jsonを削除する。 L.Z2MのSettingを再度開き、Availabilityの項目よりAvailability(simple)のチェックボックスを入れ、Submitを押下する。 M.ペアリングは、ダッシュボードの上にあるPermit Joinをクリックして、制限時間内にデバイスを探索モードにする。追加後は名前を変更して使用日(電池交換日)を記録する。 N:HAの設定のデバイスとサービス - デバイスに追加したデバイスが表示されていのを確認する。 H.オーバービューで   ===== Dnsmasq ===== https://zenn.dev/cran/articles/6c9588e36a0d53 Proxmoxにてdnsmasqを使って、IPアドレスを節約する IPアドレスの使用が制限されている環境(会社など)でVMやLXCを設置する場合、 VMやLXCのIPアドレスをProxmox内で割り振って、それぞれの必要なポートをProxmoxの別ポートに 変換して出力する方法がある。 VMやLXC構築前に、下記の準備をしておく。 ホストIP:192.168.50.1 DHCPのスコープ:192.168.50.50-192.168.50.200 A.仮想ネットワークの作成 DHCPを割り振る仮想ネットワークを作成する。今回は名称をvmbr1とする。 sudo nano /etc/network/interfaces auto vmbr1 iface vmbr1 inet static address 192.168.50.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '192.168.50.0/24' -o enp4s0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.50.0/24' -o enp4s0 -j MASQUERADE 注記: 物理インターフェイスに接続しないので、Bridge_portsはnoneに設定しているが、 このままでは外部のネットワークに接続ができない。 そこで既存のVLAN、もしくはほかのLinuxブリッジに送受信データをマスカレードする。 $sudo ip -f inet a s であらかじめVLAN、もしくはほかのLinuxブリッジのインターフェイス名を取得しておく。 今回の場合はenp4s0だった。 $sudo ifup vmbr1 でネットワークを起動する。 $ip address show dev vmbr1と入力して、inetの値が192.168.50.1/24となっていてば成功。 sudo systemctl restart networking $systemctl status networking.service C. /etc/dnsmasq.confをnanoで変更する。 #106行目付近 interface=vmbr1 #159行目付近 dhcp-range=192.168.50.50,192.168.50.200,2h #337行目付近 dhcp-option=vmbr1,3,192.168.50.1 #DHCPリースデータベースのパスを記述 dhcp-leasefile=/var/lib/misc/dnsmasq.leases 設定後は下記で動作確認を行う。 $sudo dnsmasq --test dnsmasq: syntax check OK. <-これが返ってくれば、とりまOK。 sudo systemctl restart dnsmasq sudo systemctl enable dnsmasq