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