ΠΡΠΈΠ²Π΅Ρ!
ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ Π‘Π΅ΡΠ³Π΅ΠΉ, ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅Π½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π² API Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° tinkoff.ru.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ° Π½Π°ΡΠΈΡΡ Π΅ΠΊΠΈΠΏ ΠΏΡΠΈ ΠΈΠ·Π³ΠΎΡΠ²ΡΠ½Π΅ΡΠΎ Π½Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π±Π°Π»Π°Π½ΡΡΠΎΡΠΈ
Nginx Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΡΠ΅ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ. Π Π°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»ΠΈ,
ΠΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠ²Π° ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° deb ΠΈ rpm. ΠΠΏΡΠΈΡΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ.
ΠΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π½Π°ΡΠΈΡΠ΅ Π±Π°Π»Π°Π½ΡΡΠΎΡΠΈ. Π ΡΡΠΊ Π²Π΅Π΄Π½Π°Π³Π° Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡΡΡ: ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎΠ²Π°, ΠΊΠ°ΡΠΎ ΡΠ΅ Ρ Π°ΡΡΠ°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ? ΠΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° Π½Π°ΡΡΡΠΎΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΊΡΠ°Π΅Π½ Π±ΡΠΎΠΉ Π²Ρ ΠΎΠ΄Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° 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 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅, Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΡΡΠΊ (Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° 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