ΠΠ΄ΡΠ°Π²ΠΎ!
ΠΠΎΠ΅ΡΠΎ ΠΈΠΌΠ΅ Π΅ Π‘Π΅ΡΠ³Π΅Ρ, ΡΠ°Π±ΠΎΡΠ°ΠΌ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅Π½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π²ΠΎ ΡΠΈΠΌΠΎΡ API Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° tinkoff.ru.
ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠΎ ΠΊΠΎΠΈ ΡΠ΅ ΡΠΎΠΎΡΠΈ Π½Π°ΡΠΈΠΎΡ ΡΠΈΠΌ ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π±Π°Π»Π°Π½ΡΠ΅ΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π°
Nginx Π΅ ΠΌΡΠ»ΡΠΈΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ. Π‘Π΅ ΠΎΠ΄Π»ΠΈΠΊΡΠ²Π° ΡΠΎ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ,
ΠΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΠΎΡ ΡΠ΅Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° Linux. ΠΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΎΠ²Π° ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° deb ΠΈ Π²ΡΡΠ΅ΠΆΠΈ Π²ΠΎ ΠΌΠΈΠ½ΡΡΠ°. ΠΠΏΡΠΈΡΠ°ΡΠ° ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π° Π²ΠΎ ΠΎΠ²ΠΎΡ Π½Π°ΠΏΠΈΡ.
Π‘Π°ΠΊΠ°ΠΌΠ΅ Π±ΡΠ·ΠΎ Π΄Π° ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π½Π° Π½Π°ΡΠΈΡΠ΅ Π±Π°Π»Π°Π½ΡΠ΅ΡΠΈ. Π ΡΡΠΊΠ° Π²Π΅Π΄Π½Π°Ρ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅ΡΠΎ: ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎΠ° Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΡΡΠΎΡΠ°Ρ ΡΡΠΎ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΡΠ΅ΡΡΡΡΠΈ? Π£ΡΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΠΊΠΎΠ½Π΅ΡΠ΅Π½ Π±ΡΠΎΡ Π½Π° Π²Π»Π΅Π·Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π° Π½Π° ΠΈΠ·Π»Π΅Π·ΠΎΡ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ deb/rpm Π·Π° ΡΠ°ΠΊΠ°Π½ΠΈΠΎΡ ΠΠ‘.
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π°Ρ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- ΠΠ΅ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΈΠΌΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ Π½Π°ΡΠ½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Nginx.
- ΠΠ΅ΠΌΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
- Π‘ΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΡΠ½ΠΎ Π΅ ΠΎΠ΄Π·Π΅ΠΌΠ° Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄ΠΎΡΠ°Π΄Π½ΠΎ.
- ΠΠ΅ΠΌΠ° ΠΎΠΏΠΈΡ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΅ ΡΠΊΠ»ΠΎΠΏΠ΅Π½ ΠΎΠ²ΠΎΡ ΠΈΠ»ΠΈ ΠΎΠ½ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Nginx.
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ½ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π·Π° Π°Π»Π°ΡΠΊΠ° ΠΊΠΎΡΠ° Π±ΠΈ Π·Π΅ΠΌΠ°Π»Π° ΠΊΠ°ΠΊΠΎ Π²Π»Π΅Π· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ ΡΠΈΡΠ»ΠΈΠ² Π·Π° Π»ΡΡΠ΅ ΠΈ ΡΠ΅ ΡΠΎΡΡΠ°Π²ΠΈ Nginx ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π΅Π³ΠΎ.
ΠΠ΅ Π½Π°ΠΎΡΠ°ΡΡΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π° ΠΎΠΏΡΠΈΡΠ° Π·Π° Π½Π°Ρ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΠΎΡΡΠ° Π½Π° Github, ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½Π° Π°Π»Π°ΡΠΊΠ° -
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠΎ Π½Π°ΡΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ°, ΡΠ°ΠΊΠ°Π²ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠΏΠΈΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΡ ΠΏΠΎΡΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ°Π²ΠΈ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° Git. ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ ΡΠΎΡΠΌΠ°ΡΠΎΡ ΠΏΠΎΠ·Π½Π°Ρ Π·Π° ΡΠ°ΠΊΠ²ΠΈ ΡΠ°Π±ΠΎΡΠΈ - yaml. ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°:
nginx_version: 1.14.1
output_package: deb
modules:
- module:
name: nginx-auth-ldap
git_url: https://github.com/kvspb/nginx-auth-ldap.git
git_branch: master
dependencies:
- libldap2-dev
- module:
name: ngx_http_substitutions_filter_module
git_url: https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
- module:
name: headers-more-nginx-module
web_url: https://github.com/openresty/headers-more-nginx-module/archive/v0.261.zip
- module:
name: nginx-module-vts
git_url: https://github.com/vozlt/nginx-module-vts.git
git_tag: v0.1.18
- module:
name: ngx_devel_kit
git_url: https://github.com/simplresty/ngx_devel_kit.git
git_tag: v0.3.0
- module:
name: ngx_cache_purge
git_url: https://github.com/FRiCKLE/ngx_cache_purge.git
- module:
name: ngx_http_dyups_module
git_url: https://github.com/yzprofile/ngx_http_dyups_module.git
- module:
name: nginx-brotli
git_url: https://github.com/eustas/ngx_brotli.git
git_tag: v0.1.2
- module:
name: nginx_upstream_check_module
git_url: https://github.com/yaoweibin/nginx_upstream_check_module.git
- module:
name: njs
git_url: https://github.com/nginx/njs.git
git_tag: 0.2.5
config_folder_path: nginx
ΠΠ²Π΄Π΅ ΡΠΊΠ°ΠΆΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ deb ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ Nginx Π²Π΅ΡΠ·ΠΈΡΠ° 1.14.2 ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΠΎΡ ΡΠ΅Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ΅Π»ΠΎΡ ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π΅Π½. ΠΠ° ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅:
- ΠΠΌΠ΅.
- ΠΠ΄ΡΠ΅ΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° Π½Π°Π±Π°Π²ΠΈΡΠ΅:
- Git ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ Π³ΡΠ°Π½ΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ·Π½Π°ΠΊΠ°.
- ΠΠ΅Π±-Π²ΡΡΠΊΠ° Π·Π° Π°ΡΡ ΠΈΠ²Π°.
- ΠΠΎΠΊΠ°Π»Π΅Π½ Π»ΠΈΠ½ΠΊ Π΄ΠΎ Π°ΡΡ ΠΈΠ²Π°ΡΠ°.
ΠΠ΅ΠΊΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π±Π°ΡΠ°Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, nginx-auth-ldap Π±Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π° libldap2-dev. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π²Π΅Π΄Π°Ρ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ.
ΠΠΈΠ²ΠΎΡΠ½Π° ΡΡΠ΅Π΄ΠΈΠ½Π°
ΠΠΎ Π½Π°ΡΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΠ·ΠΎ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΡΡΠ΅Π΄ΠΈΠ½Π° ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ°, ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ Π΄ΡΡΠ³ ΠΏΠΎΠΌΠΎΡΠ΅Π½ ΡΠΎΡΡΠ²Π΅Ρ. ΠΠΎΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠΎ ΡΠ΅ ΡΡΠΎ Π²ΠΈ ΡΡΠ΅Π±Π° Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΠΎΠ²Π΄Π΅ (ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Docker Π·Π° ubuntu ΠΈ centos).
ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°, Π³ΠΎ Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ Π³ΡΠ°Π΄ΠΈΡΠ΅Π», ΠΎΡΠΊΠ°ΠΊΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ:
pip3 install -r requirements.txt
./main.py build -f [ΠΊΠΎΠ½ΡΠΈΠ³_ΡΠ°ΠΉΠ»].yaml -r [Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ]
ΠΡΠΎΡΠΎΡ Π½Π° ΡΠ΅Π²ΠΈΠ·ΠΈΡΠ° ΠΎΠ²Π΄Π΅ Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° ΡΠΊΠ»ΠΎΠΏΠΎΠ²ΠΈ. Π’ΠΎΠ° Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π²ΠΎ ΠΌΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ, ΡΡΠΎ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅.
ΠΠ΄ Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ»Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°. ΠΠ²Π΅ Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ:
builder - INFO - Parse yaml file: example.config.yaml
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.14.1.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - Module nginx-auth-ldap will download by branch
builder - INFO - -- Done: nginx-auth-ldap
builder - INFO - -- Done: ngx_http_substitutions_filter_module
builder - INFO - Module headers-more-nginx-module will downloading
builder - INFO - Module nginx-module-vts will download by tag
builder - INFO - -- Done: nginx-module-vts
builder - INFO - Module ngx_devel_kit will download by tag
builder - INFO - -- Done: ngx_devel_kit
builder - INFO - -- Done: ngx_cache_purge
builder - INFO - -- Done: ngx_http_dyups_module
builder - INFO - Downloading dependencies
builder - INFO - Building .deb package
builder - INFO - Running 'dh_make'...
builder - INFO - Running 'dpkg-buildpackage'...
dpkg-deb: building package 'nginx' in '../nginx_1.14.1-1_amd64.deb'.
Π’Π°ΠΊΠ°, ΡΠΎ ΡΠ°ΠΌΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠ° ΠΊΡΠ΅ΠΈΡΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° Nginx, Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ΠΎΠ΄ ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π° ΡΠΊΡΠΈΠΏΡΠ°ΡΠ°.
ΠΠ³ΡΠ°Π΄ΡΠ²Π°ΡΠ΅
ΠΠΈΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ° Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° CI/CD. Π‘Π΅ΠΊΠΎΡ ΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΡΡΠ΅ CI ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Ρ Π΄Π΅Π½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ ΠΎΠ²Π°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π° Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Git, ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° Π½Π° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°. ΠΡΠΎΡΠΎΡ Π½Π° ΡΠ΅Π²ΠΈΠ·ΠΈΡΠ°ΡΠ° Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ ΡΠΎ Π±ΡΠΎΡΠ°ΡΠΎΡ Π·Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ°.
Π‘ΠΎ ΠΌΠ°Π»ΠΊΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΡ Π΄Π° ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ° Π΄ΠΎ Π²Π°ΡΠ΅ΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, Nexus, Artifactory ΠΈΡΠ½.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡ Π΅ ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° yaml ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ ΡΠΎ Ansible ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΡΠΈΡΡΠ΅ΠΌ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΠΈ ΠΎΠ΄ ΡΠ°ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π·Π΅ΠΌΠ΅ΠΌΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° ΠΈ ΡΠΈΠΏΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ ΡΡΠΎ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΠΌΠ΅.
Π¨ΡΠΎ Π΅ ΡΠ»Π΅Π΄Π½ΠΎ
ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ΅ ΡΡΡΠ΅ Π½Π΅ Π΅ Π·Π°Π²ΡΡΠ΅Π½. ΠΠ²Π΅ Π½Π° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠ΅Π³Π°:
- ΠΠ° ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, Π½ΠΎ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ° ΠΎΠ΄ΡΠΆΡΠ²Π°ΠΌΠ΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π°. ΠΠ΅ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΡΠ°Π΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π°ΠΊΠΎ Π²ΠΈ ΡΡΠ΅Π±Π°Π°Ρ ΡΠ°ΠΌΠΎ Π΄Π²Π°, Π° ΠΎΡΡΠ°ΡΠΎΠΊΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°. ΠΠ²Π° Π³ΠΈ Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΎΠ·Π½Π°ΠΊΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° (ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΠΎ Π²Π½Π°ΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° src/config.py), ΠΏΠ°ΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅.
- ΠΠΎΠ΄Π°Π²Π°ΠΌΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π΄ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° Π·Π° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ.
- ΠΠ·Π²ΡΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠ³Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠ΄ΡΠ» (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
github.com/nginx-modules/nginx_upstream_check_module ΠΏΡΠ²ΠΎ ΠΌΠΎΡΠ° Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ Π»Π΅ΠΏΠ΅Π½ΠΊΠ° ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°) - ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ:
- ΠΠ°ΠΊΠ΅ΡΠΎΡ Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½.
- Nginx ΡΠ° ΠΈΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΈ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ Π·Π½Π°ΠΌΠ΅Π½ΡΠ° ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
- Π‘Π΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ΅ΠΊΠΈ, ΡΠΌΠ΅ΡΠΊΠΈ ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΠΌΡ.
ΠΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° ΡΠ΅Π³Π°, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ° -
ΠΠ·Π²ΠΎΡ: www.habr.com