Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ° PaaS ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Cozystack ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Talm, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° bare-metal ΡΡΡΠ²ΡΡΠΈ Π·Π° Talos Linux, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Kubernetes, ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ Kubernetes-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ API ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Ρ Π΅Π΄ΠΈΠ½ Yaml ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Talm Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Cozystack, ΡΠΎΠΉ Π½Π΅ Π΅ ΡΡΡΠΎΠ³ΠΎ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΡΠ°Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° Talos Linux. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ MPL.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° Talos Linux ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ° ΠΎΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΊΡΠΌ bare-metal ΡΡΡΠ²ΡΡΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΡΡΠ΅ΠΌΡΡ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Helm ΠΈ kubectl, ΠΏΠΎΠ·Π½Π°Ρ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° Kubernetes.
ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (MAC Π°Π΄ΡΠ΅ΡΠΈ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅), Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠΌΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» Π·Π° Π²ΡΡΠΊΠ° Π½ΠΎΠ΄Π°. ΠΡΠΆΠ΅Π½ Π΅ ΠΏΡΠΎΡΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ, ΠΊΠΎΠΉΡΠΎ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΠ±ΡΠ°Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π΄Π° Π³ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ.
ΠΠ° ΡΠ΅Π»ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΡΠ°Π±Π»ΠΎΠ½. ΠΠΌΠ° Π³ΠΎΡΠΎΠ²ΠΈ ΠΏΡΠ΅ΡΠ΅ΡΠΈ Β«genericΒ» ΠΈ Β«cozystackΒ». Talm ΠΌΠΎΠΆΠ΅ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π΄Π° ΡΡΠ±ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ Talos API ΠΈ Π΄Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π’Π΅Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΠ΅ΠΊΡΠ΅ΡΠΈ, Π° ΡΠ°ΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Git ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ Talm ΠΏΠΎΠ²ΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Helm, ΠΎΠΏΠ΅ΡΠΈΡΠ°ΠΉΠΊΠΈ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΡΠΎ ΡΠ°ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Helm, Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Talos API ΠΈ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Β«go templatesΒ» ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° sprig.
ΠΠΎΠΌΠ°Π½Π΄Π°: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
ΠΠ°ΠΏΠΈΡΠ²Π° Π½ΠΎΠ΄Π° Β«1.2.3.4Β» ΠΏΠΎ API, Π³Π΅Π½Π΅ΡΠΈΡΠ° Π·Π° Π½Π΅Ρ Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½Π°, ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΠΉΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°: talm apply -f nodes/srv1.yaml
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» Talm Π·Π°Π΄Π°Π²Π° ΡΠ²ΠΎΡ modeline, Π² ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½Ρ Π΅Π½Π΄ΠΏΠΎΠΈΠ½ΡΠΈΡΠ΅ Π½Π° Π½ΠΎΠ΄Π°ΡΠ° ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ°Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΡ Π±Π΅Π· ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ. Talm ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΠΈΠΌΠ° upstream ΡΡΠΈΠ»ΠΈΡΠ° talosctl, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π½ΠΎΠ΄ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
ΡΠ΅ ΠΈΠ·Π²Π΅Π΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ Π΄Π°ΡΠ±ΠΎΡΠ΄ Π·Π° Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΡΠΈ Π½ΠΎΠ΄ΠΈ. Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°: talm get routes -f nodes/srv1.yaml
ΡΠ΅ ΠΈΠ·Π²Π΅Π΄Π΅ ΡΠΏΠΈΡΡΠΊ Ρ ΠΌΠ°ΡΡΡΡΡΠΈ Π½Π° Π½ΠΎΠ΄Π°ΡΠ° Β«srv1Β»
ΠΡΠΈ Π½ΡΠΆΠ΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ Ρ ΠΎΠΏΡΠΈΡΡΠ° Β«βfullΒ» Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ PXE-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π½ΠΎΠ΄ΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΡΠ²Π°Π»ΡΡ. Π’Π°ΠΊΠ° Talm Π·Π°ΠΏΠ°Π·Π²Π° Π²Π°ΡΠΈΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° bare-metal ΡΡΡΠ²ΡΡΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π½Π° GitOps.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
