Proxmox Service Discovery
Proxmox Service Discovery - ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Proxmox, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ DNS. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ API Proxmox Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
ΠΈ ΡΠ·Π»Π°Ρ
ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅Ρ DNS-Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΠΏΠ° A, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΠΎ ΠΈΡ
ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π³Π°ΠΌ.
https://github.com/itcaat/proxmox-service-discovery
ΠΠΎΡΠΈΠ²Π°ΡΠΈΡ
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ golang, ΡΠ°Π±ΠΎΡΠ° Ρ API Proxmox. Π Π΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ service discovery Π² Proxmox Cluster.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ

ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ API Proxmox Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΊΠ΅Π½Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠ°ΠΆΠ΄ΡΠ΅ N ΡΠ΅ΠΊΡΠ½Π΄ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 60) ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ:
- Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ·Π»ΠΎΠ² (Π½ΠΎΠ΄) Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Proxmox
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° - ΡΠΏΠΈΡΠΎΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ - ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° - ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ DNS-Π·Π°ΠΏΠΈΡΠΈ:
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π°
ΠΈΠΌΡ_ΠΌΠ°ΡΠΈΠ½Ρ.ΡΡΡΡΠΈΠΊΡβ IP-Π°Π΄ΡΠ΅Ρ - ΠΡΠ»ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΡ
DISCOVERY_VM_TAGS, ΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π³Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ:ΡΠ΅Π³.ΡΡΡΡΠΈΠΊΡβ IP-Π°Π΄ΡΠ΅Ρ - ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π°
ΠΈΠΌΡ_ΡΠ·Π»Π°.ΡΡΡΡΠΈΠΊΡβ IP-Π°Π΄ΡΠ΅Ρ (Π΅ΡΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ)
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ DNS-ΡΠ΅ΡΠ²Π΅Ρ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΠΏΠΎΡΡΡ 2053), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ
- ΠΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, Π·Π°ΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ (8.8.8.8)
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ
- ΠΠ°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Go (Π²Π΅ΡΡΠΈΡ 1.18 ΠΈ Π²ΡΡΠ΅)
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ miekg/dns Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DNS-ΡΠ΅ΡΠ²Π΅ΡΠ°
- ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ API Proxmox ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° go-resty/resty
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π° .env