рдЖрдореНрд╣реА рдЖрдордЪреЗ Nginx рджреЛрди рдХрдорд╛рдВрдбрд╕рд╣ рдПрдХрддреНрд░ рдХрд░рддреЛ

рд╣рд╛рдп
рдорд╛рдЭреЗ рдирд╛рд╡ рд╕реЗрд░реНрдЧреЗ рдЖрд╣реЗ, рдореА tinkoff.ru рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ API рдЯреАрдордордзреНрдпреЗ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЕрднрд┐рдпрдВрддрд╛ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ.

рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдмреЕрд▓рдиреНрд╕рд░ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рдЖрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╕рдВрдШрд╛рд▓рд╛ рдЖрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓реЗрди Nginx рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╕рд╛рдареА. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛ рд╕рд╛рдзрдирд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рд╕рд╛рдВрдЧреЗрди рдЬреНрдпрд╛рдиреЗ рдорд▓рд╛ рддреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХрд╛рдВрд╡рд░ рдорд╛рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджрд┐рд▓реА.

Nginx рдПрдХ рдорд▓реНрдЯреАрдлрдВрдХреНрд╢рдирд▓ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдгрд╛рд░рд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ. рдпрд╛рдд рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдореЙрдбреНрдпреВрд▓ рдЖрд╣реЗрдд, рд╣реА рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА рдирд╛рд╣реА. рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд▓реНрдк рдмреЕрд▓рдиреНрд╕рд░рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдЖрдгрд┐ Nginx рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреАрд╡рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, http/2 рдЖрдгрд┐ grpc рдкреНрд░реЙрдХреНрд╕реАрдЪреА рдЙрдкрд╕реНрдерд┐рддреА) рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреА рд░рдЪрдирд╛ рдпрд╛рд╡рд░ рдХрд╛рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рд╛рджрддреЛ.

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд╕рд╣ рдЖрдореНрд╣реА рдПрдХ рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдкрд╛рд╣реВ рдЗрдЪреНрдЫрд┐рддреЛ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдпрд╛ deb- рдЖрдгрд┐ rpm-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗрдд. рдпрд╛ рд▓реЗрдЦрд╛рдд рдХрдВрдЯреЗрдирд░рд╕рд╣ рдкрд░реНрдпрд╛рдп рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реЗрд▓рд╛ рдирд╛рд╣реА.

рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддреНрд╡рд░реАрдд рдмрджрд▓рд╛рдпрдЪреА рдЖрд╣реЗ. рдЖрдгрд┐ рдпреЗрдереЗ рддреНрд╡рд░рд┐рдд рдкреНрд░рд╢реНрди рдЙрджреНрднрд╡рддреЛ: рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдХрдореА рд╕рдВрд╕рд╛рдзрдиреЗ рдЦрд░реНрдЪ рдХрд░рддрд╛рдирд╛ рд╣реЗ рдХрд╕реЗ рдорд┐рд│рд╡рд╛рдпрдЪреЗ? рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗрдЯ рдХрд░рдгреЗ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓ рдЬреЗрдгреЗрдХрд░реБрди рдЖрдореНрд╣реА рдЗрдирдкреБрдЯ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреА рдорд░реНрдпрд╛рджрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХреВ рдЖрдгрд┐ рдЖрдЙрдЯрдкреБрдЯрд╡рд░ рдЗрдЪреНрдЫрд┐рдд OS рд╕рд╛рдареА deb/rpm рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓.

рдкрд░рд┐рдгрд╛рдореА, рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд:

  • Nginx рдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреАрд╕рд╣ рдиреЗрд╣рдореАрдЪ рдкреЕрдХреЗрдЬреЗрд╕ рдирд╕рддрд╛рдд.
  • рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓реНрд╕рд╕рд╣ рдХреЛрдгрддреЗрд╣реА рдкреЕрдХреЗрдЬ рдирд╛рд╣реАрдд.
  • рдореЕрдиреНрдпреБрдЕрд▓реА рдкреЕрдХреЗрдЬ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╡реЗрд│рдЦрд╛рдК рдЖрдгрд┐ рдЕрддреНрдпрдВрдд рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ рдЖрд╣реЗ.
  • рд╣реЗ рдХрд┐рдВрд╡рд╛ рддреЗ 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

рдпреЗрдереЗ рдЖрдореНрд╣реА рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд╕рд╣ Nginx рдЖрд╡реГрддреНрддреА 1.14.2 рд╕рд╣ рдбреЗрдм рдкреЕрдХреЗрдЬ рдкрд╣рд╛рдпрдЪреЗ рдЖрд╣реЗ. рдореЙрдбреНрдпреВрд▓реНрд╕рд╕рд╣ рд╡рд┐рднрд╛рдЧ рдкрд░реНрдпрд╛рдпреА рдЖрд╣реЗ. рддреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛:

  • рдирд╛рд╡
  • рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдХреБрдареЗ рдорд┐рд│реЗрд▓ рдкрддреНрддрд╛:
    • Git рднрд╛рдВрдбрд╛рд░. рддреБрдореНрд╣реА рд╢рд╛рдЦрд╛ рдХрд┐рдВрд╡рд╛ рдЯреЕрдЧ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛.
    • рд╡реЗрдм рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛.
    • рд╕рдВрдЧреНрд░рд╣рдгрд╛рдЪрд╛ рд╕реНрдерд╛рдирд┐рдХ рджреБрд╡рд╛.

рдХрд╛рд╣реА рдореЙрдбреНрдпреВрд▓реНрд╕рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рд▓рдВрдмрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде nginx-auth-ldap рд▓рд╛ libldap2-dev рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореЙрдбреНрдпреВрд▓рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдкрд░реНрдпрд╛рд╡рд░рдг

рдЖрдордЪреНрдпрд╛ рдЯреВрд▓рдордзреНрдпреЗ рддреБрдореНрд╣реА рд╕рдВрдХрд▓рди, рдкреЕрдХреЗрдЬ рдЕрд╕реЗрдВрдмреНрд▓реА рдЖрдгрд┐ рдЗрддрд░ рд╕рд╣рд╛рдпреНрдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╕рд╛рдареА рд╕реНрдерд╛рдкрд┐рдд рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬрд╕рд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдкрдЯрдХрди рдорд┐рд│рд╡реВ рд╢рдХрддрд╛. рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрд╕рд╣ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдпреЗрдереЗ рдЖрджрд░реНрд╢ рдЖрд╣реЗ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЙрдмрдВрдЯреВ рдЖрдгрд┐ рд╕реЗрдВрдЯреЛрд╕рд╛рдареА рдбреЙрдХрд░ рдлрд╛рдЗрд▓реНрд╕рдЪреА рджреЛрди рдЙрджрд╛рд╣рд░рдгреЗ рдЖрдзреАрдЪ рдЖрд╣реЗрдд).

рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдмрд┐рд▓реНрдбрд░рд▓рд╛ рд▓реЙрдиреНрдЪ рдХрд░рддреЛ, рддреНрдпрд╛рдЪреА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡реЗ рдпрд╛рдкреВрд░реНрд╡реА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЖрд╣реЗрдд:

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 рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рд╕рдорд╛рдХрд▓рд┐рдд рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддреЛ. рдЖрдЬ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреЗрдХ рд╕реАрдЖрдп рдкреНрд░рдгрд╛рд▓реАрдВрдкреИрдХреА рдХреЛрдгрддреАрд╣реА рдпрд╛рд╕ рдорджрдд рдХрд░реВ рд╢рдХрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдЯреАрдорд╕рд┐рдЯреА рдХрд┐рдВрд╡рд╛ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛