рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ Nginx рд▓рд╛рдИ рдХреЗрд╣рд┐ рдХрдорд╛рдгреНрдбрд╣рд░реВрдХреЛ рд╕рд╛рде рдЬрдореНрдорд╛ рдЧрд░реНрдЫреМрдВ

рдирдорд╕реНрддреЗ!
рдореЗрд░реЛ рдирд╛рдо Sergey рд╣реЛ, рдо tinkoff.ru рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ API рдЯреЛрд▓реАрдорд╛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫреБред

рдпрд╕ рд▓реЗрдЦрдорд╛ рдо рд╣рд╛рдореНрд░реЛ рдЯреЛрд▓реАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрджрд╛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБ рдирд┐рдЬрд┐рдирдХреНрд╕ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЙрдкрдХрд░рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрдирд┐ рдмрддрд╛рдЙрдиреЗрдЫреБ рдЬрд╕рд▓реЗ рдорд▓рд╛рдИ рддреА рдордзреНрдпреЗ рдзреЗрд░реИрд▓рд╛рдИ рдЬрд┐рддреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

Nginx рдПрдХ рдмрд╣реБрдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдкреНрд░реЛрдХреНрд╕реА рд╕рд░реНрднрд░ рд╣реЛред рдпрд╕рдорд╛ рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдЫрдиреН, рдпреЛ рдкреВрд░реНрдг рд╕реВрдЪреА рд╣реЛрдЗрдиред рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд░ Nginx рдХреЛ рд╕рдВрд╕реНрдХрд░рдг (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, http/2 рд░ grpc рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐), рд░ рдпрд╕рдХреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

рд╣рд╛рдореА рдирд┐рд╢реНрдЪрд┐рдд рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдЕрдиреНрддрд░реНрдЧрдд рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрдХреЛ рд╕рд╛рде рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА deb- рд░ rpm-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд╣реБрдиреНред рдХрдиреНрдЯреЗрдирд░рдХреЛ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рдпрд╕ рд▓реЗрдЦрдорд╛ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рд╣рд╛рдореА рдЪрд╛рдБрдбреИ рд╣рд╛рдореНрд░реЛ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд░ рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рддреБрд░реБрдиреНрддреИ рдЙрдареНрдЫ: рд╕рдХреЗрд╕рдореНрдо рдереЛрд░реИ рд╕реНрд░реЛрддрд╣рд░реВ рдЦрд░реНрдЪ рдЧрд░реНрджрд╛ рдпреЛ рдХрд╕рд░реА рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрдиреЗ? рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдЕрдЭ рд░рд╛рдореНрд░реЛ рд╣реБрдиреЗрдЫ рддрд╛рдХрд┐ рд╣рд╛рдореА рдЗрдирдкреБрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд░ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рдЗрдЪреНрдЫрд┐рдд OS рдХреЛ рд▓рд╛рдЧрд┐ 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

рдпрд╣рд╛рдБ рд╣рд╛рдореА рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореА 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 рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рдкрдирд┐ рдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рдЖрдЬ рдЕрд╡рд╕реНрдерд┐рдд рдзреЗрд░реИ CI рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ рдпреЛ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЯрд┐рдорд╕рд┐рдЯреА рд╡рд╛ Gitlab CI.

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ Git рднрдгреНрдбрд╛рд░рдорд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдХрд▓рд╛рдХреГрддрд┐рдХреЛ рдирд┐рд░реНрдорд╛рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕реБрд░реВ рд╣реБрдиреНрдЫред рд╕рдВрд╢реЛрдзрди рдирдореНрдмрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд╖реЗрдкрдг рдХрд╛рдЙрдиреНрдЯрд░рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫред
рдЕрд▓рд┐ рдмрдвреА рд╕рдордпрдХреЛ рд╕рд╛рде, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╕реНрдерд╛рдиреАрдп рдкреНрдпрд╛рдХреЗрдЬ рднрдгреНрдбрд╛рд░, рдиреЗрдХреНрд╕рд╕, рдЖрд░реНрдЯрд┐рдлреНрдпрд╛рдХреНрдЯреНрд░реА, рд░ рдпрд╕реНрддреИ рдЕрдиреНрдпрдорд╛ рдкрдард╛рдЗрдиреЗ рдХрд▓рд╛рдХреГрддрд┐ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдПрдЙрдЯрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдЗрджрд╛ рдпреЛ рд╣реЛ рдХрд┐ yaml рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд▓рд╛рдИ Ansible рд╡рд╛ рдЕрд░реНрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ рд╣рд╛рдореАрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░ рд░ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд░ рд▓рд┐рди рд╕рдХреНрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред

рдЕрдм рдХреЗ

рдЖрдпреЛрдЬрдирд╛ рдЕрдЭреИ рдкреВрд░рд╛ рднрдПрдХреЛ рдЫреИрди ред рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдБ:

  • рд╣рд╛рдореА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдЫреМрдВ, рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рдпрд╕рд▓рд╛рдИ рд╕рдХреЗрд╕рдореНрдо рд╕рд░рд▓ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рддрдкрд╛рдИрд▓рд╛рдИ рдХреЗрд╡рд▓ рджреБрдИ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ рддрдкрд╛рдИ рд╣рдЬрд╛рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди, рд░ рдмрд╛рдБрдХреА рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдлрд┐рдЯ рд╣реБрдиреНрдЫред рдпрд╕рдорд╛ рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рди рдлреНрд▓реНрдпрд╛рдЧрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН (рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрдиреНрддрд░рд┐рдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ src/config.py рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ), рд╕реНрдерд╛рдкрдирд╛ рдорд╛рд░реНрдЧ, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реБрд░реБрд╡рд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рд╣рд╛рдореА рд╡рд┐рднрд┐рдиреНрди рдХрд▓рд╛рдХреГрддрд┐ рднрдгреНрдбрд╛рд░рд╣рд░реВрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреНрдпрд╛рдХреЗрдЬ рдкрдард╛рдЙрдиреЗ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдердкреНрджреИрдЫреМрдВред
  • рдореЛрдбреНрдпреБрд▓ рд▓реЛрдб рдЧрд░реНрджрд╛ рдЕрдиреБрдХреВрд▓рди рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди github.com/nginx-modules/nginx_upstream_check_module рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рдкреНрдпрд╛рдЪ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрдкрд░реНрдЫ)
  • рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдердкреНрджреИ:
    • рдкреНрдпрд╛рдХреЗрдЬ рд╕рд╣реА рд░реВрдкрдорд╛ рд╕реНрдерд╛рдкрд┐рдд рдЫред
    • Nginx рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдЫ рд░ рдЖрд╡рд╢реНрдпрдХ рдЭрдгреНрдбрд╛ рд░ рдореЛрдбреНрдпреБрд▓ рд╕рдВрдЧ рдирд┐рд░реНрдорд┐рдд рдЫред
    • рдЖрд╡рд╢реНрдпрдХ рдорд╛рд░реНрдЧрд╣рд░реВ, рдЦрд╛рддрд╛рд╣рд░реВ, рд░ рдпрд╕реНрддреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫред

рддрд░ рддрдкрд╛рдИрдВ рдЕрд╣рд┐рд▓реЗ рдпреЛ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рд╕реБрдзрд╛рд░рд╣рд░реВ рдкрдирд┐ рд╕реБрдЭрд╛рд╡ - github.com/TinkoffCreditSystems/Nginx-builder рд╕реНрд╡рд╛рдЧрдд рдЫ!

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди