Panda - ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ, Π² ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ansible, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
Π§ΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ansible:
- Π±Π΅Π· Π°Π³Π΅Π½ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ssh ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΠ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
Π§ΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ:
- ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ panda ΡΡΡΠΎΠΈΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Ρ ΠΎΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΠ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ firewall ΠΈ Ρ.ΠΏ., Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ deploy/undeploy/start/stop.
- panda ΡΠΏΠΎΡΠΎΠ±Π½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ². ΠΠ²ΠΈΠ΄Ρ Π½Π°Π»ΠΈΡΠΈΡ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π²Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ pull ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ !pull ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ°Π±Π»ΠΎΠ½Ρ.
- panda ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΈΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Freemarker ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ . ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π°Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ "compile-time service discovery", ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π°Ρ ΡΠΏΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΠ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΠ ΠΈ Ρ.ΠΏ.
- ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ²
- Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ panda ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΅Π½Π΄Π΅ΡΡΡΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² bash-ΡΠΊΡΠΈΠΏΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΠ°Π½Π΄Π°, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ Π²ΡΡΡΠ½ΡΡ.
- Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ , ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ Π½Π° bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ (Ρ ΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ), ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, Ρ.ΠΊ. ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π½Π° bash'Π΅ ΡΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΈ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ devops-ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° ansible ΠΈΠ»ΠΈ puppet
- panda Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java ΠΈ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ - Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ Π»ΡΠ³ΠΊΠΎΡΡΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈ Π²ΡΡΠ΄ Π»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ 1-2 Π΄Π½Π΅ΠΉ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Π² ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. master-password Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΠΈΠ±ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π»ΠΈΠ±ΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
Π Π½Π°Π·Π²Π°Π½ΠΈΠΈ: ΠΎΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΠ· ΠΈΠ³ΡΡ ΡΠ»ΠΎΠ²: Kung Fu Panda -> Config Panda (config-panda) -> ΠΏΡΠΎΡΡΠΎ Panda.
- Π‘ΠΊΠ°ΡΠ°ΡΡ ΡΠ±ΠΎΡΠΊΡ (TBD)
- Π Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π² ΠΏΠ°ΠΏΠΊΡ /opt/panda
- Π‘ΠΎΠ·Π΄Π°ΡΡ symlink Π½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»
sudo ln -s /opt/panda/bin/panda.sh /usr/local/bin/panda
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ~/.panda.properties ΡΠΊΠ°Π·Π°Π² Π² Π½ΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- config_folder - ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ -
.
- ssh_user, ssh_pass - ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ssh-ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π° ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
- ssh_key_path (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) - ΠΏΡΡΡ Π΄ΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ³ΠΎ ssh ΠΊΠ»ΡΡΠ°.
- master_pass - ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ/Π΄Π΅ΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
- env - Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π·Π΄Π΅ΡΡ Π΅Π³ΠΎ ΠΈΠΌΡ.
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
sudo yum install -y git java maven
- ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git clone https://bitbucket.org/just-ai/panda.git
- ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
cd panda
- Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
mvn clean package -P DEV
- Π‘ΠΎΠ·Π΄Π°ΡΡ symlink Π½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»
sudo ln -s `pwd`/target/panda/bin/panda.sh /usr/local/bin/panda
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ mvn compile ΠΈΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Build Project Π² IDEA. ΠΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ mvn package Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ~/.panda.properties ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°"
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Panda.
- ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ - Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅. ΠΡΠΈΠΌΠ΅ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ: ΡΠ΅ΡΡ, ΡΡΠ΅ΠΉΠ΄ΠΆ, ΠΏΡΠΎΠ΄, ΠΏΡΠΎΠ΄-Π΄Π»Ρ-ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠΎΠΉ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ env.yml, ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
- Π₯ΠΎΡΡ - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π₯ΠΎΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ env.yml Π² ΡΠ΅ΠΊΡΠΈΠΈ hosts ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: name - ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΈΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Ρ ΠΎΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ env.yml ΠΈ fqdn.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ) - ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈΠ»ΠΈ Π½Π΅ΠΊΠ°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Ρ ΠΎΡΡ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: nginx, postgres, ΠΠ Π² postgres'Π΅, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ firewall'Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ firewall-trusted-env, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ Ρ ΠΎΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ°ΡΡΠ΅Π΄-Π·ΠΎΠ½Ρ), ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ:
- ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ pg01x)
- ΡΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ postgresql)
- Ρ ΠΎΡΡ (ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΊΠ° ΠΈΠΌΡΠ½ Ρ ΠΎΡΡΠΎΠ²)
- Π¨Π°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° - ΡΡΠΎ "ΠΊΠΎΠ΄" ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠ½ΡΠΈΠ³-ΠΌΠ°ΠΏΠ°, Π½Π°Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ/Π·Π°ΠΏΡΡΠΊΠ°/ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠΎΡΠ½Π΅Π²Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΠΏΠΊΠ° ./example Π² ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈ. ΠΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ config, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ panda. Π’.ΠΊ. ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ config_folder = .
ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ panda ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ ./example ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ config_folder Π² ΡΠ°ΠΉΠ»Π΅ ~/.panda.properties.
Π ΠΏΠ°ΠΏΠΊΠ΅ ./example/Components Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Components/docker-prepare - ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎΠΊΠ΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ docker-prepare ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° env.yml. Π ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΡ Π²Π΅ΡΠ½ΡΠΌΡΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π² ./example/* (ΠΊΡΠΎΠΌΠ΅ Components) ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ test. ΠΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π·Π°Π΄Π°ΡΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ env ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠ°Π½Π΄Π°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ, Π²Π΅Π΄Ρ ΠΏΠΎ ΡΡΡΠΈ, ΠΏΠ°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² config ΠΈ env ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΠ°ΠΉΠ» env.yml
ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΠ» env.yml. Π Π°Π·Π±Π΅ΡΡΠΌ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΡ (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ΅ΠΊΡΠΈΠΉ Π² env.yml Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ, Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ hosts ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, Π² Π΄ΡΡΠ³ΠΈΡ - ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π°).
Π ΡΠ΅ΠΊΡΠΈΠΈ hosts ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΎΡΡΠΎΠ² Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ Π°Π»ΠΈΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² env.yml Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ»Ρ ΠΊΠ°ΠΆΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° Π·Π°Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- name - ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΈΠΌΡ, Π°Π»ΠΈΠ°Ρ
- fqdn - fully qualified domain name - ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ip-Π°Π΄ΡΠ΅Ρ
- props - ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΠΎΡΡΠ° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ
ΠΠ°Π»Π΅Π΅, Π² ΡΠ΅ΠΊΡΠΈΠΈ components Π·Π°Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- id - id - ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ. Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: us__app__tomcat01x, Π³Π΄Π΅ us - Π»ΠΎΠΊΠ°ΡΠΈΡ, app - ΡΠΎΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, tomcat - ΠΈΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΠ°, 01 - Π½ΠΎΠΌΠ΅Ρ, x - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» * ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
panda.sh -env prod reload us__app__tomcat*
- ΡΠΎΠΎΠ±ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΡΠ΅Ρtomcat
Π²us
. - component - ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ Π² Components
- host - ΠΈΠΌΡ Ρ ΠΎΡΡΠ°, ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΡΠ½, ΠΈΠ»ΠΈ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅Ρ. ΠΠ°Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΎΡΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, '*' - ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² ΡΠ΅ΠΊΡΠΈΠΈ hosts.
- props - ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π·Π°Π΄Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· ${props.xxx}. ΠΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΠΈΡ props ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ component.yml ΠΈ Π² ΡΠ΅ΠΊΡΠΈΠΈ hosts.
- config - ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΠΏΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΡΠ° ΠΏΠ°ΠΏΠΊΠ° ΡΠΊΠ°Π·Π°Π½Π°, ΡΠΎ ΠΏΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ½Π°ΡΠ°Π»Π° ΡΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ config ΠΈ Π·Π°ΠΏΠΈΡΠ΅Ρ ΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°Π΄Π°Π½Π½Π°Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ config ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΉ.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π° env.yml - ΡΠ΅ΠΊΡΠΈΡ props, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² Π»ΡΠ±ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°Ρ .
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ /Components, ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠ°ΠΉΠ» component.yml, ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠ°ΠΏΠΊΠΈ config - Ρ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΊΠ° scripts, Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»Π° component.yml
Π€Π°ΠΉΠ» component.yml ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ:
- props - Π·Π°Π΄Π°ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
- commands - Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²
- configMap - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ², Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
props:
port: 1210
prometheusPort: 1215
healthCheck: true
Π ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΊΠ°ΠΊ ${props.port}
. Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² env.yml Π² ΡΠ΅ΠΊΡΠΈΠΈ components ΠΈΠ»ΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ props ΡΠ°ΠΉΠ»Π° env.yml
Π ΡΠ΅ΠΊΡΠΈΠΈ commands ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΊΠΎΠΌΠΌΠ°Π½Π΄ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
commands:
script: control.sh
commands:
deploy:
cmd: ./deploy.sh
Π ΠΏΠΎΠ»Π΅ commands.script
- Π·Π°Π΄Π°ΡΡΡΡ ΡΠΊΡΠΈΠΏΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π½ΠΈΡ
Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠΈΠΈ commands. Π ΠΏΠΎΠ»Π΅ commands.commands
- ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ deploy. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ ΡΠΊΡΠΈΠΏΡΡ ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ start/stop ΠΈ Ρ.ΠΏ.
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΠΏΠΊΠΈ scripts Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
configMap:
- source: application.yml
target: /etc/justai/botserver/application.yml
mkdirs: true
user: botserver
- source: botserver.cfg
target: /etc/justai/botserver/botserver.cfg
user: botserver
optional: true
Π ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π·Π°Π΄Π°ΡΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ config Π½Π° Π½ΡΠΆΠ½ΡΠ΅ ΠΏΡΡΠΈ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° configMap ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- source - ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ config
- target - ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
- mkdirs - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ
- user - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠ».
- mode - Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠΌΠΈΡΡΠΈΡΠΌΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠ»
- directory - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ ΠΏΠ°ΠΏΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΎ Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ source Π² ΠΏΠ°ΠΏΠΊΡ target
- optional - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ°ΠΉΠ» ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Ρ.Π΅. Π²ΡΠΊΠΈΠ΄ΡΠ²Π°ΡΡ Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ panda ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: render, push, deploy ΠΈ pull. ΠΠΈΠΆΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ, Π° Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ: panda.sh -env test-htz pull
, Π»ΠΈΠ±ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ~/.panda.properties env=test-htz
(ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°)
ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ id ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ id ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΡ *. ΠΡΠ»ΠΈ id ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
panda.bat -env <environment> render [component-id]
ΠΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΠΏΠ°ΠΏΠΊΡ <config>/<env>/!render/<host>/<component-id>
panda.bat -env <environment> push [component-id]
ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡ, Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ) Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ
Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ ~/panda/<component-id>
ΠΈ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΏΠΎ Π½ΡΠΆΠ½ΡΠΌ ΠΏΡΡΡΠΌ, ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π² configMap
.
cm.bat -env <environment> deploy [component-id]
ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ deploy ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ render ΠΈ push. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
- Π² ΡΠ°Π·Π΅ render Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ control.sh (ΠΈΠ»ΠΈ deploy.sh, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΊΠ°Π·Π°Π½ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°)
- Π² ΡΠ°Π·Π΅ push ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ, Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°Π΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
- Π² ΡΠ°Π·Π΅ deploy ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΡΡΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π»ΠΈΠ±ΠΎ
control.sh deploy
Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎdeploy.sh
, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
cm.bat -env <environment> pull [component-id]
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ) ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ
Π² ΠΏΠ°ΠΏΠΊΡ config/<env>/!pull/<host>/<component-id>
.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ deploy ΠΈ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠΊΡΠΈΠΏΡΠ΅ control.sh
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ°Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΡΡΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Ρ systemctl
.
- reload
- start
- stop
- restart
panda.bat -env test encrypt MY_PASSWORD
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ master_pass
Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³Π΅ (~/.panda.properties).
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² env.yml Π² Π²ΠΈΠ΄Π΅:
components:
- id: app
props:
db_password: SECRET:<ΡΡΡΠΎΠΊΠ° ΠΈΠ· encrypt>
panda.bat -env test decrypt <ΡΡΡΠΎΠΊΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ encrypt>
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ encrypt.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Ρ ΠΎΡΡΠΎΠ², Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠΈΡ Ρ ΠΎΡΡΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Π² grafana.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ prometheus ΠΈ grafana Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ./example, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ test, ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ Π½ΠΎΠ΄
- Π½Π° Π²ΡΠ΅Ρ Π½ΠΎΠ΄Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ docker ΠΈ firewalld
- Π²ΡΠ΅ Π½ΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ Π·ΠΎΠ½Ρ firewalld
- Π½Π° ΡΠ·Π»Π΅ infra01 ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°: prometheus/grafana
- Π½Π° Π²ΡΠ΅Ρ ΡΠ·Π»Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ node-exporter ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ
ΠΠ»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ panda
- Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ Ρ ΠΎΡΡΠΈΠ½Π³Π΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° Π½ΠΈΡ CentOS 7
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° sudo. ΠΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π΄Π²Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΡΡ
ΡΠ»Π°Π³Π°: NOPASSWD ΠΈ !requiretty. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
panda ALL=(ALL) NOPASSWD: ALL Defaults:panda !requiretty
- ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² ~/.panda.properties ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: ssh_user=<ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ> ssh_pass=<ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>
- ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅ΡΠ° Π²Π°ΡΠΈΡ Ρ ΠΎΡΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ env.yml
- Π² ΠΏΠ°ΠΏΠΊΠ΅
./example
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρpanda -env test deploy -y
- Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ dns Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ²:
- prometheus.somecompany.org
- grafana.somecompany.org
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ prometheus/grafana ΠΏΠΎ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΊΡΡΡΡ basic-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ, Π»ΠΎΠ³ΠΈΠ½: mon-admin/mon-admin
- Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
- ΡΡΠ³ΠΈ - Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π·ΠΎΠ½/Ρ ΠΎΡΡΠΎΠ²/ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
- ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΠΎΠΊ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- dependsOn
- ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΈ ΡΠ»Π°Π³ continue
- ΡΠ΅ΠΌΠΏΠ»Π΅ΠΉΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²)
- ΡΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ )
- Π΄Π΅ΠΉΡΡΠ²ΠΈΡ diff, status, check
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° zones/namespaces