БглобявамС нашия Nginx с няколко команди

ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
Казвам сС Π‘Π΅Ρ€Π³Π΅ΠΉ, работя ΠΊΠ°Ρ‚ΠΎ инфраструктурСн ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π² API Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° tinkoff.ru.

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ говоря Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ сС сблъска Π½Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ ΠΏΡ€ΠΈ изготвянСто Π½Π° Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Π±Π°Π»Π°Π½ΡΡŒΠΎΡ€ΠΈ Nginx Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΈ Π·Π° инструмСнта, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° прСодолСя ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ тях.

Nginx Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ сС прокси ΡΡŠΡ€Π²ΡŠΡ€. Π Π°Π·ΠΏΠΎΠ»Π°Π³Π° с голям Π±Ρ€ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ пълСн списък. ВсСки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π°Π»Π°Π³Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ изисквания към функционалността Π½Π° балансира ΠΈ вСрсията Π½Π° Nginx (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° http/2 ΠΈ grpc proxying), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΡΡŠΡΡ‚Π°Π²Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

Π‘ΠΈΡ…ΠΌΠ΅ искали Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²Π° вСрсия с нСобходимия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° Linux дистрибуция. Π’ нашия случай Ρ‚ΠΎΠ²Π° са систСми, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° deb ΠΈ rpm. ΠžΠΏΡ†ΠΈΡΡ‚Π° с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π΅ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° Π² Ρ‚Π°Π·ΠΈ статия.

ИскамС Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ функционалността Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π±Π°Π»Π°Π½ΡΡŒΠΎΡ€ΠΈ. И Ρ‚ΡƒΠΊ Π²Π΅Π΄Π½Π°Π³Π° възниква Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚: ΠΊΠ°ΠΊ Π΄Π° сС постигнС Ρ‚ΠΎΠ²Π°, ΠΊΠ°Ρ‚ΠΎ сС Ρ…Π°Ρ€Ρ‡Π°Ρ‚ възмоТно Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ рСсурси? ΠžΡ‰Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° настроим процСса Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΊΡ€Π°Π΅Π½ Π±Ρ€ΠΎΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° deb/rpm ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° ОБ.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ:

  • НС Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° Nginx.
  • Няма ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
  • Π ΡŠΡ‡Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚Π½Π΅ΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΎ досадно.
  • Няма описаниС ΠΊΠ°ΠΊ сС сглобява Ρ‚ΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΎΠ½ΠΎΠ²Π° ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Nginx.

Π—Π° Π΄Π° сС Ρ€Π΅ΡˆΠ°Ρ‚ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, възниква нСобходимостта ΠΎΡ‚ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄ спСцификация Π² Ρ‡Π΅Ρ‚ΠΈΠΌ ΠΎΡ‚ Ρ‡ΠΎΠ²Π΅ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Π΄Π° сглобява Nginx ΠΏΠ°ΠΊΠ΅Ρ‚ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° функционалност въз основа Π½Π° нСя.

НС Π½Π°ΠΌΠΈΡ€Π°ΠΉΠΊΠΈ подходящ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° нас Π² нСобятността Π½Π° Github, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° създадСм наш собствСн инструмСнт - 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 систСми ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ с Ρ‚ΠΎΠ²Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Teamcity ΠΈΠ»ΠΈ Gitlab CI.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ спСцификацията сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Git, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° сС стартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. ΠΠΎΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° рСвизията Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с брояча Π·Π° стартиранС Π½Π° компилация.
Π‘ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° Π΄Π° бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ Π΄ΠΎ Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Nexus, Artifactory ΠΈ Ρ‚.Π½.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ прСдимство Π΅, Ρ‡Π΅ конфигурационният Ρ„Π°ΠΉΠ» Π½Π° yaml ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΡΠ²ΡŠΡ€Π·Π°Π½ към Ansible ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³Π° систСма Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΎΡ‚Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вСрсията ΠΈ Ρ‚ΠΈΠΏΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ искамС Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΠΌ.

Какво слСдва?

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½. Π•Ρ‚ΠΎ Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠ°ΠΊΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

  • НиС Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° конфигурация, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ я ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ възмоТно Π½Π°ΠΉ-проста. НС искатС Π΄Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ хиляда ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° само ΠΎΡ‚ Π΄Π²Π°, Π° останалитС пасват ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π’ΠΎΠ²Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° компилация (сСга ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» src/config.py), инсталационСн ΠΏΡŠΡ‚ ΠΈ стартиращ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π».
  • ДобавямС ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ.
  • Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ пСрсонализирана ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ github.com/nginx-modules/nginx_upstream_check_module ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ корСкция Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° вСрсия)
  • ДобавянС Π½Π° тСстовС:
    • ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π΅ инсталиран ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.
    • Nginx ΠΈΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° вСрсия ΠΈ Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π»Π°Π³ΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
    • Π‘ΡŠΠ·Π΄Π°Π²Π°Ρ‚ сС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ ΠΈ Ρ‚.Π½.

Но ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ инструмСнт сСга ΠΈ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚Π΅ подобрСния - github.com/TinkoffCreditSystems/Nginx-builder Π΄ΠΎΠ±Ρ€Π΅ дошли!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€