GitLab рдФрд░ Ansible рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдХреЛрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде Ansible playbooks рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ GitLab CI рдХреА рд╕рд╛рд░реА рд╢рдХреНрддрд┐ред


GitLab CI рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред GitLab рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдбреЗрдореЛ рдореЗрдВ рд╣рдо Ansible рдХреЛ рд▓реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдареАрдХ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ "рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдореЛ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╕рд┐рдмрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рджреЛ рд░рд╛рдЙрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╣реИ ред


GitLab CI рдХреА рдЦреВрдмреА рдпрд╣ рд╣реИ рдХрд┐ Ansible playbook рд╕реЗ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдФрд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рд░ рдорд╣реАрдиреЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрд╕рдПрдирдПрдордкреА рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ , рд╣рдорд╛рд░реА рдХреЛрдб рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ GitLab.com рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Ansible playbook рдЦреЛрд▓реЗрдВ, рдЬрд╣рд╛рдБ 4 рдХрд╛рд░реНрдп рд╣реИрдВ:


  • рд░рд╛рдЙрдЯрд░ рддрдереНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ - рд░рд╛рдЙрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдереНрдп рдПрдХрддреНрд░ рдХрд░рдирд╛ред
  • рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╕реНрдХрд░рдг - рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╕реНрдХрд░рдг
  • рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
  • SNMP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ - SNMP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдЗрд╕ рдбреЗрдореЛ рдореЗрдВ, рд╣рдо SNMP рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдЯрд╛рд╕реНрдХ рдмреЛрд░реНрдб рд╕реЗ рд╢реБрд░реВ


GitLab рдкрд░ рдХреЛрдИ рднреА рдпреЛрдЬрдирд╛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ: рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде ред рддреЛ, GitLab рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рдкрд╣рд▓рд╛ рдЪрд░рдг рдХрд╛рд░реНрдп-рдмреЛрд░реНрдб рдХреЛ ansible-Demo рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬрд╛рдБрдЪрдирд╛ рд╣реИред рд╕реБрдЧрдореНрдп-рдбреЗрдореЛ рдЯрд╛рд╕реНрдХ рдмреЛрд░реНрдб рдкрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░реНрдп рджреЗрдЦрддреЗ рд╣реИрдВ: рд╕рднреА рд░рд╛рдЙрдЯрд░реЛрдВ рдкрд░ рдПрд╕рдПрдирдПрдордкреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓реЗрдВ ред рдХрд╛рд░реНрдп рдореЗрдВ GitLab рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рд╡рд┐рдХреА рдкреГрд╖реНрда рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ SNMP рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рд░ рдорд╣реАрдиреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рдВрдЪрд╛рд▓рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред



GitLab рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдореЗрдВ рд╣рд░ рдорд╣реАрдиреЗ SNMP рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИред


рдлрд┐рд░ рдЖрдкрдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рджреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдбреЗрдореЛ рдореЗрдВ рдПрд╕рдПрдирдПрдордкреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХрдорд╛рдВрдб рдХрд╛рд░реНрдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЧрд┐рдЯрд▓реИрдм рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред



рдПрд╕рдПрдирдПрдордкреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдПрдиреНрд╕рд┐рдмрд▓ рдкреНрд▓реЗрдмреБрдХ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред


рдлрд┐рд░ рдХрд╛рд░реНрдп рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ, рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЛ рджрд╛рдпреЗрдВ рдкреИрдирд▓ рдкрд░ рдХрд░рдиреЗ рд╕реЗ рдмрджрд▓реЗрдВ рдпрд╛ рдмрд╕ рдПрдХ рдХреЙрд▓рдо рд╕реЗ рджреВрд╕рд░реЗ рдХреЙрд▓рдо рдореЗрдВ рдмреЛрд░реНрдб рдкрд░ рдХрд╛рд░реНрдп рдХреЛ рдЦреАрдВрдЪреЗрдВред


рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдирд╛


рдЕрдм рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рд╕реЗ рдПрдХ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ (WIP) рдзреНрд╡рдЬ рд╣реИ, рддрд╛рдХрд┐ рд╡рд╣ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рди рдЬрд╛рдПред рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо GitLab Web IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ SNMP рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рдореВрд▓реА рд╣реИрдВред


  • CI / CD рдбреЗрдореЛ рд╕реЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВред
  • Ansible playbook рдкрд░ рдЬрд╛рдПрдВред
  • рдПрд╕рдПрдирдПрдордкреА рдЕрдиреБрднрд╛рдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ:
  • рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛рд░реНрдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд GitLab рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ RO рдФрд░ RW рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЗрдиреЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИрдВред

рд╡рдЪрди рджреЗрдирд╛


рдЖрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ SNMP рд▓рд╛рдЗрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдФрд░ рдЕрдм рдЖрдкрдХреЛ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЦреЛрд▓реЗрдВ рдХрд┐ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИред



рд╕рдорд╛рдирд╛рдВрддрд░ рддреБрд▓рдирд╛ рдЙрдкрдХрд░рдг рдиреЗрддреНрд░рд╣реАрди рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рдкрд░рд┐рдгрд╛рдо


рдкрд░рд┐рд╡рд░реНрддрди рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд░реЗрдВрдЧреЗред рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛:


  • рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдЬрд╛рдВрдЪ
  • рдЯреЗрд╕реНрдЯ рдЪрд▓рддрд╛ рд╣реИред
  • рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ / рдХреГрддреНрд░рд┐рдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рд╡рд░реНрддрдиред

рд╣рдо рдПрд╕рдЖрдИрдПрдордкреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреМрдХрд░реА рдХреА рдкреНрд░рдЧрддрд┐ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрддреЗ рд╣реИрдВред



рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреГрддреНрд░рд┐рдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ SNMP рдЕрдкрдбреЗрдЯ рд╕рдлрд▓ рд░рд╣реЗред


рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд▓реЙрдиреНрдЪ рдФрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рдЪреЗрдХрдорд╛рд░реНрдХ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред


рдлрд┐рд░ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рд░рд╛рдЙрдЯрд░реНрд╕ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВред



рдПрд╕рдПрдирдПрдордкреА рдЖрд░рдУ рдФрд░ рдЖрд░рдбрдмреНрд▓реНрдпреВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд░рд╛рдЙрдЯрд░реНрд╕ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ


рдЖрдк рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдг рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЕрдиреБрдореЛрджрди ред рдпрджрд┐ рдЖрдк рдЕрдиреБрдореЛрджрди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред



рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗред


рдЧреБрд░реБ рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг


рдкрд░реАрдХреНрд╖рдг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред


рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░, Resolve Work In Progress рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ Merge рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рдЬрдм рдЖрдк WIP рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЛ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдирдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЙрди рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдЧреА рдЬреЛ рдЖрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкреНрд▓реЗрдмреБрдХ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдг рдкрд░ рдХрд┐рдП рдереЗред


рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рдЧрддрд┐ рдФрд░ рд▓реЙрдЧ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦреЗрдВред рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрд╕рдПрдирдПрдордкреА рд▓рд╛рдЗрдиреЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВред


рдореИрдЬрд┐рдХ рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ


рдпрд╣ рд╕рдм GitLab CI рдХреЗ рдЬрд╛рджреВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЕрдиреБрдХреНрд░рдорд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред


GitLab CI рдХрд╛ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдиреНрдпрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг YAML рдлрд╛рдЗрд▓ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ .gitlab-ci.yml рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ .gitlab-ci.yml ред


рдЗрд╕ рдбреЗрдореЛ рдореЗрдВ .gitlab-ci.yml рдореЗрдВ 3 рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВред


  1. рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рдкрд░рд┐рдирд┐рдпреЛрдЬрди): AWS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ AWS рдореЗрдВ рджреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рддрд╛ рд╣реИред
  2. рдбреЗрдореЛ: рдПрдХ рдкреНрд▓реЗрдмреБрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрд╕рдПрдирдПрдордкреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред
  3. рдирд╖реНрдЯ: рджреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдирдХрд▓реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред

GitLab CI рдПрдХ рдореВрд▓ рдЫрд╡рд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдФрд░ Ansible рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг, рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред



рдПрдХ рд╕рд╛рдзрд╛рд░рдг YAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ GitLab CI рдХреЗ рддреАрди рдЪрд░рдг рд╣реИрдВред



GitLab CI рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЪрд░рдг, рдЬреЛ рдЕрдиреНрд╕рд┐рдмрд▓ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рддрд╛ рд╣реИред


рд╣рдордиреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдк GitLab CI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ Ansible рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GitLab CI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреВрд░реА рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рд╡реАрдбрд┐рдпреЛ:


Source: https://habr.com/ru/post/hi459984/


All Articles