Redis: Sentinel β bind 0.0.0.0, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ localhost ΠΈ announce-ip
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Sentinel Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» bind 0.0.0.0, ΡΡΠΎ Π±Ρ ΠΈΠ½ΡΡΠ°Π½ΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΌ IP. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠ΅Ρ-Ρ ΠΎΡΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Sentinel. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ β ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ,β¦
https://rtfm.co.ua/redis-sentinel-bind-0-0-0-0-problema-s-localhost-i-announce-ip/
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Sentinel Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» bind 0.0.0.0, ΡΡΠΎ Π±Ρ ΠΈΠ½ΡΡΠ°Π½ΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΌ IP. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠ΅Ρ-Ρ ΠΎΡΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Sentinel. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ β ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ,β¦
https://rtfm.co.ua/redis-sentinel-bind-0-0-0-0-problema-s-localhost-i-announce-ip/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | DevOps-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»ΡΡΠ°ΠΈ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
Redis: Sentinel β bind 0.0.0.0, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ localhost ΠΈ announce-ip
Sentinel discovery, ΡΠ΅ΡΡ ΠΈ IP-Π°Π΄ΡΠ΅ΡΠ°. ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ IP ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Sentinel ΠΈ Redis master Π½ΠΎΠ΄Ρ.
Go: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Github ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Slack. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π² Go. ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΡ Ρ Golang.
ΠΠ°Π΄Π°ΡΠ° β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ ΠΈΠ· Jenkins ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π² Github. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ , ΠΈ Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ β ΡΠ»Π°ΡΡ Π°Π»Π΅ΡΡ Π² Slack. ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡ ΡΠΈΠΏ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Ρβ¦
https://rtfm.co.ua/go-proverka-spiska-publichnyx-repozitoriev-v-github-i-uvedomleniya-v-slack-sravnenie-spiskov-v-go-pervyj-opyt-s-golang/
ΠΠ°Π΄Π°ΡΠ° β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ ΠΈΠ· Jenkins ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π² Github. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ , ΠΈ Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ β ΡΠ»Π°ΡΡ Π°Π»Π΅ΡΡ Π² Slack. ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡ ΡΠΈΠΏ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Ρβ¦
https://rtfm.co.ua/go-proverka-spiska-publichnyx-repozitoriev-v-github-i-uvedomleniya-v-slack-sravnenie-spiskov-v-go-pervyj-opyt-s-golang/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Go: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Github ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Slack. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π² Go. ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΡ Ρ Golang.
ΠΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Go Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Github Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ Π² Slack. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π² Go.
Arch Linux: Albion Online β Unable to preload the following plugins: libSDL2-2.0.so.0
Π Π΅ΡΠΈΠ» ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Π² Albion Online. ΠΠ½Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· Steam, Π½ΠΎ Ρ Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°Π» ΡΠ°Π½ΡΡΠ΅ (Π° ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½Π° Π²ΠΎΠΎΠ±ΡΠ΅ Free to Play), ΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, ΠΈ Ρ ΡΠΎΠΉ ΡΡΡΡΠΊΠΎΠΉ Π½Π΅Π»ΡΠ·Ρ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡ Π² ΠΈΠ³ΡΡ, ΡΠΊΠ°ΡΠ°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Steam. ΠΠΊΠ΅ΠΉ β Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΡΠ°ΠΉΡΠ° https://albiononline.com/ru/download, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ, ΠΈ: 17:55:10 [setevoy@setevoy-arch-pc ~/Games/AlbionOnline]./Albion-Online...Found path: /home/setevoy/Games/AlbionOnline/game_x64/Albion-OnlineMono path[0] = '/home/setevoy/Games/AlbionOnline/game_x64/Albion-Online_Data/Managed'Mono config path = '/home/setevoy/Games/AlbionOnline/game_x64/Albion-Online_Data/Mono/etc'Preloaded 'ScreenSelector.so'Preloaded 'libAkSoundEngine.so'Preloaded 'libeasyanticheat.so'Unable to preload the following plugins:libSDL2-2.0.so.0 Π€Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libSDL2-2.0.so.0 Π΅ΡΡΡ Π² Steam β /home/setevoy/.local/share/Steam/ubuntu12_64/libSDL2-2.0.so.0,β¦
https://rtfm.co.ua/arch-linux-albion-online-unable-to-preload-the-following-plugins-libsdl2-2-0-so-0/
Π Π΅ΡΠΈΠ» ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Π² Albion Online. ΠΠ½Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· Steam, Π½ΠΎ Ρ Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°Π» ΡΠ°Π½ΡΡΠ΅ (Π° ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½Π° Π²ΠΎΠΎΠ±ΡΠ΅ Free to Play), ΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, ΠΈ Ρ ΡΠΎΠΉ ΡΡΡΡΠΊΠΎΠΉ Π½Π΅Π»ΡΠ·Ρ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡ Π² ΠΈΠ³ΡΡ, ΡΠΊΠ°ΡΠ°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Steam. ΠΠΊΠ΅ΠΉ β Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΡΠ°ΠΉΡΠ° https://albiononline.com/ru/download, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ, ΠΈ: 17:55:10 [setevoy@setevoy-arch-pc ~/Games/AlbionOnline]./Albion-Online...Found path: /home/setevoy/Games/AlbionOnline/game_x64/Albion-OnlineMono path[0] = '/home/setevoy/Games/AlbionOnline/game_x64/Albion-Online_Data/Managed'Mono config path = '/home/setevoy/Games/AlbionOnline/game_x64/Albion-Online_Data/Mono/etc'Preloaded 'ScreenSelector.so'Preloaded 'libAkSoundEngine.so'Preloaded 'libeasyanticheat.so'Unable to preload the following plugins:libSDL2-2.0.so.0 Π€Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libSDL2-2.0.so.0 Π΅ΡΡΡ Π² Steam β /home/setevoy/.local/share/Steam/ubuntu12_64/libSDL2-2.0.so.0,β¦
https://rtfm.co.ua/arch-linux-albion-online-unable-to-preload-the-following-plugins-libsdl2-2-0-so-0/
Albion Online | The Fantasy Sandbox MMORPG
Forge your own path in this sandbox MMORPG. Craft, trade, conquer, and leave your mark on the world of Albion.
Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 4 β Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ansible ΡΠΎΠ»ΠΈ
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Redis ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redis Sentinel Π΄Π»Ρ Π΅Π³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈ: Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 1 β ΠΎΠ±Π·ΠΎΡ. Replication vs Sharding. Sentinel vs Cluster. Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ Redis Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 2 β Master-Slave ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΈ Redis Sentinel Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 3 β redis-py ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Redis Sentinel ΠΈΠ· Python Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°β¦
https://rtfm.co.ua/redis-replikaciya-chast-4-napisanie-ansible-roli/
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Redis ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redis Sentinel Π΄Π»Ρ Π΅Π³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈ: Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 1 β ΠΎΠ±Π·ΠΎΡ. Replication vs Sharding. Sentinel vs Cluster. Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ Redis Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 2 β Master-Slave ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΈ Redis Sentinel Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 3 β redis-py ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Redis Sentinel ΠΈΠ· Python Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°β¦
https://rtfm.co.ua/redis-replikaciya-chast-4-napisanie-ansible-roli/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | DevOps-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»ΡΡΠ°ΠΈ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
Redis: ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΡ 4 β Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ansible ΡΠΎΠ»ΠΈ
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Ansible ΡΠΎΠ»ΠΈ Π΄Π»Ρ Redis-ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ Π΄Π²ΡΠΌΡ ΡΠ»Π΅ΠΉΠ²Π°ΠΌΠΈ, ΠΏΠ»ΡΡ Redis Sentinel Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
Jenkins: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Github-ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½Ρ: ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±Ρ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΠΎΠ² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ°ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π΅ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ, Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² Slack. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Go Π΅ΡΡΡ Π² ΠΏΠΎΡΡΠ΅ Go: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Github ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π²β¦
https://rtfm.co.ua/jenkins-proverka-publichnyx-repozitoriev-github-organizacii/
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½Ρ: ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±Ρ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΠΎΠ² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ°ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π΅ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ, Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² Slack. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Go Π΅ΡΡΡ Π² ΠΏΠΎΡΡΠ΅ Go: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Github ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π²β¦
https://rtfm.co.ua/jenkins-proverka-publichnyx-repozitoriev-github-organizacii/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Jenkins: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Github-ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π½Π° Go: Docker-ΡΠ°ΠΉΠ» Π΄Π»Ρ Go, Jenkins Π΄ΠΆΠΎΠ±Π° Π΄Π»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°.
Authy: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Multi-Factor Authentication Π΄Π»Ρ Github ΠΈ AWS
Π£Π²Π΅ΡΠ΅Π½, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MFA β Multi-Factor Authentication ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ . ΠΠ»Ρ 2FA (2-Factor Authentication) Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ TOTP β Time-based One-time Password, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΠ΄Ρ Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ. Π‘Π°ΠΌΡΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Google Authenticator, Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ. ΠΡΠΊΠ°Π» Π½Π° Π΄Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρβ¦
https://rtfm.co.ua/authy-nastrojka-multi-factor-authentication-dlya-github-i-aws/
Π£Π²Π΅ΡΠ΅Π½, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MFA β Multi-Factor Authentication ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ . ΠΠ»Ρ 2FA (2-Factor Authentication) Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ TOTP β Time-based One-time Password, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΠ΄Ρ Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ. Π‘Π°ΠΌΡΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Google Authenticator, Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ. ΠΡΠΊΠ°Π» Π½Π° Π΄Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρβ¦
https://rtfm.co.ua/authy-nastrojka-multi-factor-authentication-dlya-github-i-aws/
Golang: ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ
Π― ΡΠΆΠ΅ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» ΠΏΠΎΡΡ ΠΏΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² C β C: ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ, Π½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ, Π΄Π° ΠΈ Π‘ΠΈ Π²ΡΡ-ΡΠ°ΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Go, Ρ ΠΎΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ β ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΅. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ? ΠΡΠ°ΡΠΊΠΎ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉβ¦
https://rtfm.co.ua/golang-ukazateli-podrobnyj-razbor/
Π― ΡΠΆΠ΅ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» ΠΏΠΎΡΡ ΠΏΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² C β C: ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ, Π½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ, Π΄Π° ΠΈ Π‘ΠΈ Π²ΡΡ-ΡΠ°ΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Go, Ρ ΠΎΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ β ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΅. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ? ΠΡΠ°ΡΠΊΠΎ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉβ¦
https://rtfm.co.ua/golang-ukazateli-podrobnyj-razbor/
Linux: GPG-ΠΊΠ»ΡΡΠΈ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ pass ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ· KeePass
pass β ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π΄Π»Ρ Linux/UNIX, Π½Π°Π²Π΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°ΡΠ΅ΠΉΡΠΈΡ . Π₯ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ ΡΠΈΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GPG-ΠΊΠ»ΡΡΠ°. Π Arch Linux Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, Π² Debian ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡ apt ΠΈΠ· Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²: sudo apt install pass Π macOS β Ρ ΠΏΠΎΠΌΠΎΡΡΡ Homebrew: brew install pass Π₯ΠΎΡΡ Ρ ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΡ, ΡΡΠΎβ¦
https://rtfm.co.ua/linux-gpg-klyuchi-menedzher-parolej-pass-i-import-iz-keepass/
pass β ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π΄Π»Ρ Linux/UNIX, Π½Π°Π²Π΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°ΡΠ΅ΠΉΡΠΈΡ . Π₯ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ ΡΠΈΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GPG-ΠΊΠ»ΡΡΠ°. Π Arch Linux Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, Π² Debian ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡ apt ΠΈΠ· Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²: sudo apt install pass Π macOS β Ρ ΠΏΠΎΠΌΠΎΡΡΡ Homebrew: brew install pass Π₯ΠΎΡΡ Ρ ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΡ, ΡΡΠΎβ¦
https://rtfm.co.ua/linux-gpg-klyuchi-menedzher-parolej-pass-i-import-iz-keepass/
Bitwarden: ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° self-hosted Π²Π΅ΡΡΠΈΠΈ Π½Π° AWS EC2
ΠΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Bitwarden ΠΊΠ°ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌ ΠΏΠΎ ΡΠΎΠ»ΡΠΌ ΠΈ/ΠΈΠ»ΠΈ ACL. Π’.Π΅. Pass ΠΈ/ΠΈΠ»ΠΈ KeePass β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ β Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π° Π²ΡΡΠΊΠΈΠ΅ 1Password/LastPass Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ²ΠΎΠΉβ¦
https://rtfm.co.ua/bitwarden-menedzher-parolej-organizacii-ustanovka-self-hosted-versii-na-aws-ec2/
ΠΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Bitwarden ΠΊΠ°ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌ ΠΏΠΎ ΡΠΎΠ»ΡΠΌ ΠΈ/ΠΈΠ»ΠΈ ACL. Π’.Π΅. Pass ΠΈ/ΠΈΠ»ΠΈ KeePass β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ β Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π° Π²ΡΡΠΊΠΈΠ΅ 1Password/LastPass Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ²ΠΎΠΉβ¦
https://rtfm.co.ua/bitwarden-menedzher-parolej-organizacii-ustanovka-self-hosted-versii-na-aws-ec2/
AWS: MariaDB RDS β kill: You are not owner of thread
ΠΠΌΠ΅Π΅ΡΡΡ AWS RDS Ρ MariaDB. ΠΡΠΈΠ±ΠΊΠ° ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ Π½ΠΈ Π΄Π»Ρ AWS RDS, Π½ΠΈ Π΄Π»Ρ MariaDB. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ±ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ β RDS ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ: MariaDB [(none)]> kill 759;ERROR 1095 (HY000): You are not owner of thread 759 Π Π΅ΡΠ΅Π½ΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ mysql.rds_kill(): MariaDB [(none)]> SHOW CREATE PROCEDURE mysql.rds_killG*************************** 1. row ***************************Procedure: rds_killsql_mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONCreate Procedure: CREATE DEFINER=`rdsadmin`@`localhost` PROCEDURE `rds_kill`(IN thread BIGINT)READS SQL DATADETERMINISTICBEGINDECLARE l_user varchar(16);DECLARE l_host varchar(64);DECLARE foo varchar(255);SELECT user, host INTO l_user, l_hostFROM information_schema.processlistWHERE id = thread;IF l_user = "rdsadmin" and l_host like "localhost%" THENselect `ERROR (RDS): CANNOT KILL RDSADMIN SESSION` into foo;ELSEIF l_user = "rdsrepladmin" THENselect `ERROR (RDS): CANNOT KILL RDSREPLADMIN SESSION` into foo;ELSEKILL thread;END IF;END ΠΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Ρ: MariaDB [(none)]> CALL mysql.rds_kill(761);Query OK, 0 rows affected (0.00 sec) ΠΠ»Ρ Azure MySQL ΠΈΠΌΠ΅Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° mysql.az_kill(). ΠΠΎΡΠΎΠ²ΠΎ.
https://rtfm.co.ua/aws-mariadb-rds-kill-you-are-not-owner-of-thread/
ΠΠΌΠ΅Π΅ΡΡΡ AWS RDS Ρ MariaDB. ΠΡΠΈΠ±ΠΊΠ° ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ Π½ΠΈ Π΄Π»Ρ AWS RDS, Π½ΠΈ Π΄Π»Ρ MariaDB. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ±ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ β RDS ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ: MariaDB [(none)]> kill 759;ERROR 1095 (HY000): You are not owner of thread 759 Π Π΅ΡΠ΅Π½ΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ mysql.rds_kill(): MariaDB [(none)]> SHOW CREATE PROCEDURE mysql.rds_killG*************************** 1. row ***************************Procedure: rds_killsql_mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONCreate Procedure: CREATE DEFINER=`rdsadmin`@`localhost` PROCEDURE `rds_kill`(IN thread BIGINT)READS SQL DATADETERMINISTICBEGINDECLARE l_user varchar(16);DECLARE l_host varchar(64);DECLARE foo varchar(255);SELECT user, host INTO l_user, l_hostFROM information_schema.processlistWHERE id = thread;IF l_user = "rdsadmin" and l_host like "localhost%" THENselect `ERROR (RDS): CANNOT KILL RDSADMIN SESSION` into foo;ELSEIF l_user = "rdsrepladmin" THENselect `ERROR (RDS): CANNOT KILL RDSREPLADMIN SESSION` into foo;ELSEKILL thread;END IF;END ΠΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Ρ: MariaDB [(none)]> CALL mysql.rds_kill(761);Query OK, 0 rows affected (0.00 sec) ΠΠ»Ρ Azure MySQL ΠΈΠΌΠ΅Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° mysql.az_kill(). ΠΠΎΡΠΎΠ²ΠΎ.
https://rtfm.co.ua/aws-mariadb-rds-kill-you-are-not-owner-of-thread/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | DevOps-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»ΡΡΠ°ΠΈ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
AWS: MariaDB RDS β kill: You are not owner of thread
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ "You are not owner of thread" Π² AWS RDS MariaDB ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ kill
AWS: VPC peering DNS resolution ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ DNS Π΄Π»Ρ OpenVPN AS
ΠΠΌΠ΅Π΅ΡΡΡ VPC Ρ OpenVPN. ΠΡΠ° VPC ΡΠ΅ΡΠ΅Π· VPC Peering ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ VPC Π² Π½Π°ΡΠ΅ΠΌ AWS-Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ DNS ΠΈΠΌΡΠ½ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅, Π° Π½Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ IP, ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ dnsmasq Π½Π° Ρ ΠΎΡΡΠ΅ Ρ VPN-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» /etc/dnsmasq.hosts, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ IP Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Π² ΠΏΠΎΡΡΠ΅β¦
https://rtfm.co.ua/aws-vpc-peering-dns-resolution-i-nastrojki-dns-dlya-openvpn-as/
ΠΠΌΠ΅Π΅ΡΡΡ VPC Ρ OpenVPN. ΠΡΠ° VPC ΡΠ΅ΡΠ΅Π· VPC Peering ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ VPC Π² Π½Π°ΡΠ΅ΠΌ AWS-Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ DNS ΠΈΠΌΡΠ½ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅, Π° Π½Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ IP, ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ dnsmasq Π½Π° Ρ ΠΎΡΡΠ΅ Ρ VPN-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» /etc/dnsmasq.hosts, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ IP Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Π² ΠΏΠΎΡΡΠ΅β¦
https://rtfm.co.ua/aws-vpc-peering-dns-resolution-i-nastrojki-dns-dlya-openvpn-as/
Sentry: Π·Π°ΠΏΡΡΠΊ self-hosted Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° AWS EC2
ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Cloud-based Π²Π΅ΡΡΠΈΠ΅ΠΉ Sentry, Π½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ Π΄Π΅Π½Ρ ΠΈΡΡΠ΅ΡΠΏΠ°Π»ΠΈ Π»ΠΈΠΌΠΈΡ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄-ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎ ΡΡΡΠΈ, ΠΎΡΡΠ°Π»Π°ΡΡ Π±Π΅Π· ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ°Π²Π½ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Sentry Π½Π° ΡΠ²ΠΎΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΏΠΎΠ²ΠΎΠ΄. Π ΠΏΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΡΡΠΊ Sentry Ρ Docker Compose, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² Python. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Sentry. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ AWS EC2,β¦
https://rtfm.co.ua/sentry-zapusk-self-hosted-versii-sistemy-monitoringa-oshibok-na-aws-ec2/
ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Cloud-based Π²Π΅ΡΡΠΈΠ΅ΠΉ Sentry, Π½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ Π΄Π΅Π½Ρ ΠΈΡΡΠ΅ΡΠΏΠ°Π»ΠΈ Π»ΠΈΠΌΠΈΡ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄-ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎ ΡΡΡΠΈ, ΠΎΡΡΠ°Π»Π°ΡΡ Π±Π΅Π· ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ°Π²Π½ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Sentry Π½Π° ΡΠ²ΠΎΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΏΠΎΠ²ΠΎΠ΄. Π ΠΏΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΡΡΠΊ Sentry Ρ Docker Compose, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² Python. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Sentry. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ AWS EC2,β¦
https://rtfm.co.ua/sentry-zapusk-self-hosted-versii-sistemy-monitoringa-oshibok-na-aws-ec2/
Debian: Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ unattended-upgrades ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· AWS SES
ΠΠ°ΠΊΠ΅Ρ unattended-upgrades Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° Debian/Ubuntu. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Python-ΡΠΊΡΠΈΠΏΡ (1500 ΡΡΡΠΎΠΊ), ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² /usr/bin/unattended-upgrade (ΠΏΡΠΈ ΡΡΠΎΠΌ /usr/bin/unattended-upgrades ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΎΠΌ Π½Π° /usr/bin/unattended-upgrade). ΠΠ½Π°Π»ΠΎΠ³ Π΄Π»Ρ CentsOS/RHEL β yum-cron. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ: sudo apt -y install unattended-upgrades ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π°ΡΡΡΠΎΠ΅ΠΊ β /etc/apt/apt.conf.d/50unattended-upgrades, Π² Π½ΡΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠΈΠΏ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΌΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/apt/apt.conf.d/20auto-upgrades, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΡΡΠ½ΡΡ,β¦
https://rtfm.co.ua/debian-avtomaticheskie-obnovleniya-s-pomoshhyu-unattended-upgrades-i-otpravka-pochty-cherez-aws-ses/
ΠΠ°ΠΊΠ΅Ρ unattended-upgrades Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° Debian/Ubuntu. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Python-ΡΠΊΡΠΈΠΏΡ (1500 ΡΡΡΠΎΠΊ), ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² /usr/bin/unattended-upgrade (ΠΏΡΠΈ ΡΡΠΎΠΌ /usr/bin/unattended-upgrades ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΎΠΌ Π½Π° /usr/bin/unattended-upgrade). ΠΠ½Π°Π»ΠΎΠ³ Π΄Π»Ρ CentsOS/RHEL β yum-cron. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ: sudo apt -y install unattended-upgrades ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π°ΡΡΡΠΎΠ΅ΠΊ β /etc/apt/apt.conf.d/50unattended-upgrades, Π² Π½ΡΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠΈΠΏ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΌΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/apt/apt.conf.d/20auto-upgrades, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΡΡΠ½ΡΡ,β¦
https://rtfm.co.ua/debian-avtomaticheskie-obnovleniya-s-pomoshhyu-unattended-upgrades-i-otpravka-pochty-cherez-aws-ses/
OpenVPN: Letβs Encrypt DNS verification ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π² OpenVPN Access Server
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ OpenVNP Access Server, ΡΠΌ. OpenVPN: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° SSL ΠΈ hostname. ΠΡΠΎΡΠ»ΠΎ ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°, ΡΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΎΡ Letβs Encrypt Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ, Π½Π°Π΄ΠΎ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ (ΡΠΌ. Prometheus: Alertmanager ΠΈ blackbox-exporter β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ SSL ΠΈ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² Slack). ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΌΠ½Π΅ ΡΡ Π΅ΠΌΡ Ρ webroot, Π½ΠΎ OpenVPN ASβ¦
https://rtfm.co.ua/openvpn-lets-encrypt-dns-verification-i-obnovlenie-sertifikata-v-openvpn-access-server/
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ OpenVNP Access Server, ΡΠΌ. OpenVPN: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° SSL ΠΈ hostname. ΠΡΠΎΡΠ»ΠΎ ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°, ΡΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΎΡ Letβs Encrypt Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ, Π½Π°Π΄ΠΎ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ (ΡΠΌ. Prometheus: Alertmanager ΠΈ blackbox-exporter β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ SSL ΠΈ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² Slack). ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΌΠ½Π΅ ΡΡ Π΅ΠΌΡ Ρ webroot, Π½ΠΎ OpenVPN ASβ¦
https://rtfm.co.ua/openvpn-lets-encrypt-dns-verification-i-obnovlenie-sertifikata-v-openvpn-access-server/
AWS: ΡΠΎΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ IAM ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, EC2 IAM Roles ΠΈ Jenkins
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π» IAM-ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² AWS, ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ», ΡΡΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ°: ΠΠΎ ΡΡΡ Π²ΡΡΠ°Π» Π²ΠΎΠΏΡΠΎΡ: Ρ ΠΎΡΠΎΡΠΎ, Π·Π°Π΄Π°ΡΡ ΠΊΠ»ΡΡΠ°ΠΌ expire, ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π² AWS IAM β ΡΡΠΎ ΠΎΠ΄Π½ΠΎβ¦ ΠΠΎ ΡΡΠΈ ΠΊΠ»ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² Jenkins-Π΄ΠΆΠΎΠ±Π°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΡΠΎΠ²ΠΈΠΆΠ΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· Ansible ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρβ¦
https://rtfm.co.ua/aws-rotaciya-klyuchej-iam-polzovatelej-ec2-iam-roles-i-jenkins/
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π» IAM-ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² AWS, ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ», ΡΡΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ°: ΠΠΎ ΡΡΡ Π²ΡΡΠ°Π» Π²ΠΎΠΏΡΠΎΡ: Ρ ΠΎΡΠΎΡΠΎ, Π·Π°Π΄Π°ΡΡ ΠΊΠ»ΡΡΠ°ΠΌ expire, ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π² AWS IAM β ΡΡΠΎ ΠΎΠ΄Π½ΠΎβ¦ ΠΠΎ ΡΡΠΈ ΠΊΠ»ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² Jenkins-Π΄ΠΆΠΎΠ±Π°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΡΠΎΠ²ΠΈΠΆΠ΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· Ansible ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρβ¦
https://rtfm.co.ua/aws-rotaciya-klyuchej-iam-polzovatelej-ec2-iam-roles-i-jenkins/
Jenkins: Π·Π°ΠΏΡΡΠΊ PHPUnit ΠΈΠ· Codeception ΠΏΠΎ Pull Reguest Π² Github ΠΈ Allure-ΡΠ΅ΠΏΠΎΡΡΡ
ΠΠ°Π΄Π°ΡΠ° β Π·Π°ΠΏΡΡΠΊΠ°ΡΡ PHPUnit Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ΄Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°. Π‘Π°ΠΌ PHPUnit Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈΠ· Codeception. ΠΠ°Π΄Π°ΡΠ° Π² Jenkins Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡΡΡ ΠΈΠ· Github, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Pull Request β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Github Pull-Request Builder ΠΏΠ»Π°Π³ΠΈΠ½. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΡΡΡΡΠΎΠ² ΠΎ ΡΠ΅ΡΡΠ°Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Allure. Jenkins Π·Π°ΠΏΡΡΠ΅Π½ Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² Π§ΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡβ¦
https://rtfm.co.ua/jenkins-zapusk-phpunit-iz-codeception-po-pull-reguest-v-github-i-allure-reporty/
ΠΠ°Π΄Π°ΡΠ° β Π·Π°ΠΏΡΡΠΊΠ°ΡΡ PHPUnit Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ΄Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°. Π‘Π°ΠΌ PHPUnit Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈΠ· Codeception. ΠΠ°Π΄Π°ΡΠ° Π² Jenkins Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡΡΡ ΠΈΠ· Github, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Pull Request β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Github Pull-Request Builder ΠΏΠ»Π°Π³ΠΈΠ½. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΡΡΡΡΠΎΠ² ΠΎ ΡΠ΅ΡΡΠ°Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Allure. Jenkins Π·Π°ΠΏΡΡΠ΅Π½ Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² Π§ΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡβ¦
https://rtfm.co.ua/jenkins-zapusk-phpunit-iz-codeception-po-pull-reguest-v-github-i-allure-reporty/
SonarQube: Π·Π°ΠΏΡΡΠΊ Π² Docker ΠΈ Π²ΡΠ·ΠΎΠ² ΠΈΠ· Jenkins Pipeline
ΠΠ°Π΄Π°ΡΠ° β Π·Π°ΠΏΡΡΡΠΈΡΡ SonarQube, ΡΡΠΎ Π±Ρ Jenkins Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠ΄Π°. Jenkins ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Docker, Π±ΠΈΠ»Π΄Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠΆΠ΅ Docker. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° SonarQube ΠΈΠ· Docker Compose, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ SonarQube Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Elastisearch (ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½Π°ΡΡΡΠ°Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΠΉΠ½Π΅ΡΠΎΠ²: 1 ΡΠ΅ΡΠ²ΠΈΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ). ΠΡΠΈ ΡΡΠΎΠΌβ¦
https://rtfm.co.ua/sonarqube-zapusk-v-docker-i-vyzov-iz-jenkins-pipeline/
ΠΠ°Π΄Π°ΡΠ° β Π·Π°ΠΏΡΡΡΠΈΡΡ SonarQube, ΡΡΠΎ Π±Ρ Jenkins Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠ΄Π°. Jenkins ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Docker, Π±ΠΈΠ»Π΄Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠΆΠ΅ Docker. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° SonarQube ΠΈΠ· Docker Compose, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ SonarQube Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Elastisearch (ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½Π°ΡΡΡΠ°Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΠΉΠ½Π΅ΡΠΎΠ²: 1 ΡΠ΅ΡΠ²ΠΈΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ). ΠΡΠΈ ΡΡΠΎΠΌβ¦
https://rtfm.co.ua/sonarqube-zapusk-v-docker-i-vyzov-iz-jenkins-pipeline/
SonarQube: ΠΎΡΠΈΠ±ΠΊΠ° βSCM provider autodetection failedβ
ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ²Π΅ΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° SonarQube, ΡΠΌ ΠΏΠΎΡΡ SonarQube: Π·Π°ΠΏΡΡΠΊ Π² Docker ΠΈ Π²ΡΠ·ΠΎΠ² ΠΈΠ· Jenkins Pipeline. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΠΎ Π² Π΄Π°ΡΠ±ΠΎΡΠ΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°: SCM provider autodetection failed. Please use βsonar.scm.providerβ to define SCM of your project, or disable the SCM Sensor in the project settings. Π ΠΎΠ½ΠΎ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² Π»ΠΎΠ³Π°Ρ Π±ΠΈΠ»Π΄Π° Π² Jenkins.β¦
https://rtfm.co.ua/sonarqube-oshibka-scm-provider-autodetection-failed/
ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ²Π΅ΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° SonarQube, ΡΠΌ ΠΏΠΎΡΡ SonarQube: Π·Π°ΠΏΡΡΠΊ Π² Docker ΠΈ Π²ΡΠ·ΠΎΠ² ΠΈΠ· Jenkins Pipeline. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΠΎ Π² Π΄Π°ΡΠ±ΠΎΡΠ΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°: SCM provider autodetection failed. Please use βsonar.scm.providerβ to define SCM of your project, or disable the SCM Sensor in the project settings. Π ΠΎΠ½ΠΎ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² Π»ΠΎΠ³Π°Ρ Π±ΠΈΠ»Π΄Π° Π² Jenkins.β¦
https://rtfm.co.ua/sonarqube-oshibka-scm-provider-autodetection-failed/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | DevOps-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»ΡΡΠ°ΠΈ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
SonarQube: ΠΎΡΠΈΠ±ΠΊΠ° βSCM provider autodetection failedβ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ "SCM provider autodetection failed" Π² SonarQube.
NGINX: ΠΌΡΠ»ΡΡΠΈ-Π±ΡΠ°Π½Ρ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ NGINX map ΠΈ HTTP Headers
ΠΠΌΠ΅Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ LEMP β NGINX, PHP-FPM. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Yii-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΈΠ· Jenkins Ansible-ΡΠΎΠ»ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ synchronize Π½Π° Ρ ΠΎΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /data/projects/prjectname/frontend/web, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ root Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ Π²ΠΈΡΡΡΠ°Π»Ρ ΠΎΡΡΠ° NGINX. ΠΠ°Π΄Π°ΡΠ°: ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΈΠ· Jenkins ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π±ΡΠ°Π½ΡΠ΅ΠΉ β Π½Π° Ρ ΠΎΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡβ¦
https://rtfm.co.ua/nginx-multi-branch-deploj-prilozheniya-s-ispolzovaniem-nginx-map-i-http-headers/
ΠΠΌΠ΅Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ LEMP β NGINX, PHP-FPM. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Yii-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΈΠ· Jenkins Ansible-ΡΠΎΠ»ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ synchronize Π½Π° Ρ ΠΎΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /data/projects/prjectname/frontend/web, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ root Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ Π²ΠΈΡΡΡΠ°Π»Ρ ΠΎΡΡΠ° NGINX. ΠΠ°Π΄Π°ΡΠ°: ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΈΠ· Jenkins ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π±ΡΠ°Π½ΡΠ΅ΠΉ β Π½Π° Ρ ΠΎΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡβ¦
https://rtfm.co.ua/nginx-multi-branch-deploj-prilozheniya-s-ispolzovaniem-nginx-map-i-http-headers/
AWS: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° S3 Cross-Region Replication ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ CDN Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΡΠΎΠ»ΠΈ CDN-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π±ΡΠ΄ΡΡ CloudFront ΠΈ CloudFlare, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π΅ AWS S3 ΠΊΠΎΡΠ·ΠΈΠ½Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ (cdn.cfr.example.com => CloudFront ΠΈ cdn.cfl.example.com => CloudFlare). Π§ΡΠΎ Π±Ρ Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ±Π΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π΄Π²Π°ΠΆΠ΄Ρ β ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΡΠ·ΠΈΠ½Π°ΠΌΠΈ β ΡΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ AWS Simple Sorageβ¦
https://rtfm.co.ua/aws-nastrojka-s3-cross-region-replication-i-udalenie-fajlov-pri-replikacii/
Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ CDN Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΡΠΎΠ»ΠΈ CDN-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π±ΡΠ΄ΡΡ CloudFront ΠΈ CloudFlare, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π΅ AWS S3 ΠΊΠΎΡΠ·ΠΈΠ½Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ (cdn.cfr.example.com => CloudFront ΠΈ cdn.cfl.example.com => CloudFlare). Π§ΡΠΎ Π±Ρ Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ±Π΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π΄Π²Π°ΠΆΠ΄Ρ β ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΡΠ·ΠΈΠ½Π°ΠΌΠΈ β ΡΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ AWS Simple Sorageβ¦
https://rtfm.co.ua/aws-nastrojka-s3-cross-region-replication-i-udalenie-fajlov-pri-replikacii/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
AWS: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° S3 Cross-Region Replication ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ S3 Cross-Region Replication ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΡΠ·ΠΈΠ½Π°ΠΌΠΈ AWS S3 ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
Kubernetes: Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ, ΡΠ°ΡΡΡ 1 β Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΠ±Π·ΠΎΡ
ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ API-Π±Π΅ΠΊΠ΅Π½Π΄ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP Yii-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ LEMP β Linux/NGINX/PHP-FPM/MySQL. ΠΡΠΈΡΠ»Π° ΠΏΠΎΡΠ° ΠΈ Π½Π°ΠΌ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Kubernetes (AWS EKS). Π ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ ΡΠ΅ΡΠΈΠΈ β Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Kubernetes, ΡΡΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈβ¦
https://rtfm.co.ua/kubernetes-znakomstvo-chast-1-arxitektura-i-osnovnye-komponenty-obzor/
ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ API-Π±Π΅ΠΊΠ΅Π½Π΄ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP Yii-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ LEMP β Linux/NGINX/PHP-FPM/MySQL. ΠΡΠΈΡΠ»Π° ΠΏΠΎΡΠ° ΠΈ Π½Π°ΠΌ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Kubernetes (AWS EKS). Π ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ ΡΠ΅ΡΠΈΠΈ β Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Kubernetes, ΡΡΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈβ¦
https://rtfm.co.ua/kubernetes-znakomstvo-chast-1-arxitektura-i-osnovnye-komponenty-obzor/
RTFM: Linux, DevOps ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | DevOps-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»ΡΡΠ°ΠΈ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
Kubernetes: Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ, ΡΠ°ΡΡΡ 1 β Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΠ±Π·ΠΎΡ
ΠΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Kubernetes