рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛрдб рдХреА 200,000 рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рдореИрдВрдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛


IaC (рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЗрди рдХреЛрдб) рджреГрд╖реНрдЯрд┐рдХреЛрдг рди рдХреЗрд╡рд▓ рдЙрд╕ рдХреЛрдб рдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдШреЗрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд▓реЗрдХрд░ рдкреНрд░рдмрдВрдзрди рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рддрдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕рдВрднрд╡ рд╣реИ? рд▓реЗрдЦ рдкрдврд╝рддреЗ рд╕рдордп рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред


рд░реВрд╕реА рд╕рдВрд╕реНрдХрд░рдг


рдпрд╣ DevopsConf 2019-05-28 рдкрд░ рдореЗрд░реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд▓реЗрдЦ рд╣реИред



рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪрд╛



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЖрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдЖрдкрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ: "рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ ред" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЛ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реА рддрд░рд╣ рдХреЗ рдПрдХ рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд░реНрдгрди рдбреЗрдирд┐рд╕ рд▓рд┐рд╕реЗрдВрдХреЛ рдиреЗ рдЕрдкрдиреЗ рднрд╛рд╖рдг рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдкреВрд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓реЗрдВ рдФрд░ рд╢рд╛рдВрддрд┐ рд╕реЗ рд╕реЛрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ , рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдПрдХ рдкрддрд▓рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдорд┐рд▓рд╛ред


рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЬреИрд╕реЗ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛрдб рдХреА рддрд░рд╣ рд╣реИ:


  1. рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ : рдЖрдк рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж, рд╡реИрд╕реЗ, рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд┐рд▓реЗрдЧрд╛ред
  2. рд╕рдВрд╕реНрдХрд░рдг : рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рдЖрдпрд╛ рдерд╛ рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛, рдлрд┐рд░ рд╕реЗ, рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрдХ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
  3. рдЗрддрд┐рд╣рд╛рд╕ : рдХрд┐рд╕рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЗрд╕рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ред рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдХреЗрд╡рд▓ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдХреНрдпрд╛ рдХрд░реЗрдВ?


рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╡рд╕рдВрд░рдЪрдирд╛



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


рд╕реВрдЦреА



рднрдВрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рдПрд╕рдбреАрдПрд╕ рдХреЛ рд╕рдордп - рд╕рдордп рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдк-рдХрд╛рд░реНрдп рдерд╛: рд╣рдо рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬ рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЗрд╕реЗ рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ:


  • рдпрд╣рд╛рдБ рдЖрдХрд░ ssh рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
  • рд╡рд╣рд╛рдВ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░реЗрдВред
  • рдпрд╣рд╛рдБ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд╡реАрдХ рд╣реИред
  • рд╡рд╣рд╛рдВ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
  • ...
  • рд▓рд╛рдн!

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



рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдкреНрд░рдерд╛ DRY рд╣реИ (рдбреЛрдВрдЯ рд░рд┐рдкреАрдЯ рдпреЛрд░рд╕реЗрд▓реНрдл)ред рд╡рд┐рдЪрд╛рд░ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдерд╛: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ред рдпрд╛рдиреА рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрдирд╛ рдЕрд▓рдЧ рд╕реЗ рддреИрдирд╛рдд рд╣реИ, рдЕрд▓рдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред


рд╕реАрдПрдлрдПрдо рдХреЗ рд▓рд┐рдП рдареЛрд╕



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


рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд



рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред


рдХреЛрдб рдорд┐рд╢реНрд░рдг рдХрд░рдиреЗ рдФрд░ рдЕрдЦрдВрдб рджрд┐рд╡реНрдп рдкрд╛рд╕реНрддрд╛ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдИрдВрдЯреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк Ansible playbook рдХреЛ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Ansible рднреВрдорд┐рдХрд╛рдПрдБ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред


рдЦреБрд▓реЗ рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд



рдЦреБрд▓реЗрдкрди / рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрддред


  • рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛: рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдПрдВ рдмрдирд╛рдХрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдмрдВрдж: рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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


Liskov рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд



рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЙрд╡ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрддред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдирдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓реА рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП


рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк SOLID рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ CFM рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░, рдбреЗрдЯрд╛рдмреЗрд╕, рдУрдПрд╕, рдЖрджрд┐ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдмреЙрдХреНрд╕рд┐рдВрдЧ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдЧреЗ рдХреЗ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЯреАрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдордиреЗ imjjava рдпрд╛ oraclejava рдХреА рднреВрдорд┐рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреА рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЬрд╛рд╡рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдЪреНрдЪ рднреВрдорд┐рдХрд╛рдПрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ; рд╡реЗ рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рдпрд╣ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрд░реНрдХ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди / рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ Ansible рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЯреАрдо рдХреЗ рднреАрддрд░ рдХреБрдЫ рд╕рдордЭреМрддреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред


рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрд▓рдЧрд╛рд╡ рд╕рд┐рджреНрдзрд╛рдВрдд



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


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдПрдВрд╕реЗрдмрд▓ рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рднреА рднрд┐рдиреНрдирддрд╛рдПрдВ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдФрд░ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрддрд╛ рд╣реИ (рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреЛрд░реНрдЯ 443 рдХреА рдЙрдореНрдореАрдж рд╣реИ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдИрдВрдЯреЛрдВ рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд



рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрддред рдКрдкрд░реА рд╕реНрддрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд░рдг рд╡рд┐рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд░рдг рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рдпрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рдПрдВрдЯреАрдкреИрдЯрд░реНрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред


  1. рдЧреНрд░рд╛рд╣рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рдЬреА рдХреНрд▓рд╛рдЙрдб рдерд╛ред
  2. рдмрд╛рджрд▓ рдХреЗ рдЕрдВрджрд░, рд╣рдордиреЗ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ред
  3. рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЙрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорджреНрджреЗрдирдЬрд░, рдЖрд╡реЗрджрди рдХреА рддреИрдирд╛рддреА рдХреЛ рдмрд╛рдВрдз рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╡реАрдПрдо рдХрд┐рд╕ рд╣рд╛рдЗрдкрд░рд╡рд╛рдЗрдЬрд░ рдкрд░ рдерд╛ред

рдпрд╛рдиреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрд░реНрдХ, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣рд╛рдЗрдкрд░рд╡рд┐рдЬрд╝рд░ рдХреЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рддрдХ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВред рдРрд╕рд╛ рдордд рдХрд░реЛред


рдЗрдВрдЯрд░реЗрдХреНрд╢рди



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


рдмрд╕ рдХрд╛рд░рдХ



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд╕рдИ рд╣реИред рд╡рд╛рд╕реНрдпрд╛ рдХреЛ рдЖрдкрдХреЗ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╡рд╛рд╕рд┐рдпрд╛ рдЕрдЪрд╛рдирдХ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╕ рд╕реЗ рдЯрдХрд░рд╛ рд╕рдХрддреА рд╣реИред рдХрднреА-рдХрднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди, рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рджрд┐рдЦрд╛рд╡реЗ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдЯреАрдо рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдИ рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЯреАрдо рдХреЗ рднреАрддрд░ рдЬреНрдЮрд╛рди рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЬреЛрдбрд╝реА рдЪрдЯрдХрддреА рд╣реИ



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


рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рдПрдХ рдШрдЯрдирд╛ рдХреЙрд▓ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдбреНрдпреВрдЯреА рдкрд░ рд▓реЛрдЧреЛрдВ рдФрд░ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣, рдПрдХ рдиреЗрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреА рд╕реНрдХреНрд░реАрди рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХреА рдЯреНрд░реЗрди рдХреЛ рдЖрд╡рд╛рдЬрд╝ рджреЗрддрд╛ рд╣реИред рдЕрдиреНрдп рдкреНрд░рддрд┐рднрд╛рдЧреА рдиреЗрддрд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдХрдВрд╕реЛрд▓ рд╕реЗ рдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдЬрд╛рд╕реВрд╕реА рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЪреВрдХ рдЧрдП рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирдИ рдЪреАрдЬреЗрдВ рд╕реАрдЦрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХрд╛рдо рдХрд┐рдпрд╛ред


рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛



рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ, рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдХрд╛ рдкреНрд░рд╕рд╛рд░ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


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

рдпрд╣рд╛рдБ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рдореАрдХреНрд╖рдХреЛрдВ рдХреЛ рдЕрдиреБрд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреНред рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЖрдк рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдПрдХ рдирдП рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдЪрдврд╝ рдЬрд╛рдПрдВрдЧреЗред


рдХреЛрдб рд╢реИрд▓реА



рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреНрд╡реИрдмрд▓реНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рд╕рдореАрдХреНрд╖рдХреЛрдВ рдХреА рдЕрдкрдиреА рд╢реИрд▓реА рдереА рдФрд░ рд╕рдореАрдХреНрд╖рдХреЛрдВ рдХреА рд░реЛрдЯреЗрдЯрдмрд┐рд▓рд┐рдЯреА рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛: 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ 4, рдХреИрдорд▓ рдХреИрд╕ рдпрд╛ рд╕реНрдиреЗрдХрдХреЗрд╕ред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред


  • рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдВрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдПрдХ рд╣реА рдЗрдВрдЬреАрдирд┐рдпрд░, рд╕рднреА рд╕реНрдорд╛рд░реНрдЯред рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдкрд╛рджрдХреЛрдВ, рдУрдПрд╕, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ
  • рдпрд╣ рдПрдХ рдмреЙрдЯ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдерд╛ рдЬреЛ рд╕реБрд╕реНрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рд▓рд┐рдВрдЯрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдорд▓реЗ рдкрд╛рдП рдЧрдП рдФрд░ рдХреЛрдб рддрдп рдирд╣реАрдВ рд╣реБрдЖред

рдЧреНрд░реАрди рдмрд┐рд▓реНрдб рдорд╛рд╕реНрдЯрд░



рд╕рдордп рдмреАрдд рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдХрд┐ рдЖрдкрдХреЛ рдРрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЧреБрд░реБ рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рджреЗрдЦрд╛! рд╣рдордиреЗ рдЧреНрд░реАрди рдмрд┐рд▓реНрдб рдорд╛рд╕реНрдЯрд░ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛, рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкреНрд░рдЪрд▓рд┐рдд рд╣реИ:


  • рд╡рд┐рдХрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред
  • рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЯреЗрд╕реНрдЯ рдЪрд▓рддрд╛ рд╣реИред
  • рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдмрд╣реБрдд рджрд░реНрджрдирд╛рдХ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╡рд┐рд╡рд╛рдж рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд▓рдп рдХреЗ рдЕрдиреБрд░реЛрдз рд╢реИрд▓реА рдореЗрдВ рдЕрд╕рд╣рдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд▓рдЧреЗ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╣реЛрдиреЗ рд▓рдЧреАред


IaC рдкрд░реАрдХреНрд╖рдг



рд╕реНрдЯрд╛рдЗрд▓ рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдзрди рдХреА рдХрдореА рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рд╕рд╡рд╛рд▓ рдЬрдЯрд┐рд▓ рдФрд░ рджрд╛рд░реНрд╢рдирд┐рдХ рд╣реИ, рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ рдкреЙрд╡рд░рд╢реЗрд▓ рдкрд░ рдПрдХ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд░ рдерд╛ рдЬреЛ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ => рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╡реАрдПрдо рдмрдирд╛рдП рдЧрдП рдереЗ => рдЧреНрд░рд╛рд╣рдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╕реЗ рдЕрдзрд┐рдХ рдкреИрд╕рд╛ рдЦрд░реНрдЪ рдХрд░рддрд╛ рдерд╛ред рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╣реЛрдЧрд╛ред


рдХреЛрдИ рдпрд╣ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдЯрд┐рд▓ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдП? рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


IaC рдкрд░реАрдХреНрд╖рдг рдкрд┐рд░рд╛рдорд┐рдб



IaC рдкрд░реАрдХреНрд╖рдг: рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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


рдмреИрд╢ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ


рдпрд╣рд╛рдБ рдПрдХ рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдорди рдореЗрдВ рдЖрддреА рд╣реИ:


for i in * ; do cp $i /some/path/$i.bak done 

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рди рд╣реИ? рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИ, рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рд╣реИрдВ, рд╣рдо рдЙрджреНрдзрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 for i in * ; do cp "$i" "/some/path/$i.bak" ; done 

рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛? рдирд╣реАрдВ! рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдпрд╛рдиреА рдЧреНрд▓реЛрдмрд┐рдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред


 find . -type f -exec mv -v {} dst/{}.bak \; 

рдЕрдм рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛? рдирд╣реАрдВ ... рднреВрд▓ рдЧрдП рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо \n рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


 touch x mv x "$(printf "foo\nbar")" find . -type f -print0 | xargs -0 mv -t /path/to/target-dir 

рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг


рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рд╕реЗ рд╕рдорд╕реНрдпрд╛ рддрдм рдкрдХрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрдм рд╣рдо рдЙрджреНрдзрд░рдг рднреВрд▓ рдЧрдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдХрдИ рд╢реЗрд▓рдЪреЗрдХ рдЙрдкрдХрд░рдг рд╣реИрдВ , рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдИрдбреАрдИ рдХреЗ рддрд╣рдд рдЕрдкрдиреЗ рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрдирд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рднрд╛рд╖рд╛рд╕рд╛рдзрди
рдмрдбрд╝реА рдорд╛рд░Shellcheck
рдЧрд╣рд░реЗ рд▓рд╛рд▓ рд░рдВрдЧ рдХрд╛RuboCop
рдЕрдЬрдЧрд░Pylint
ansibleрдЕрдиреАрддрд┐ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡реГрдХреНрд╖

IaC рдкрд░реАрдХреНрд╖рдг: рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ



рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрд╛, рд▓рд┐рдВрдЯрд░ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рднреА рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рд╣рдо рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╢реВрдВрдЯрд┐рдЯ , рдЬреВрдирд┐рдЯ , рдЖрд░рд╕реНрдкреЗрдХ , рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ рддреБрд░рдВрдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?


рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдордиреЗ SOLID рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рд╣рдорд╛рд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдЫреЛрдЯреА рдИрдВрдЯреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрдирдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред


  1. рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдЫреЛрдЯреА рдИрдВрдЯреЛрдВ рдореЗрдВ рдХреБрдЪрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрд╕рд┐рдмрд▓ рднреВрдорд┐рдХрд╛рдПрдБред
  2. рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдорд╛рд╣реМрд▓ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдбреЙрдХрдЯрд░ рд╣реЛ рдпрд╛ рд╡реАрдПрдоред
  3. рд╣рдо рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА Ansible рднреВрдорд┐рдХрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
  4. рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ (рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ)ред
  5. рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдареАрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред

IaC рдкрд░реАрдХреНрд╖рдг: рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг


рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рд╕реАрдПрдлрдПрдо рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реИрдВ? рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрд░реА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


CFMрд╕рд╛рдзрди
AnsibleTestinfra
рдорд╣рд╛рд░рд╛рдЬinspec
рдорд╣рд╛рд░рд╛рдЬServerspec
saltstackрдЧреЙрд╕

Testinfra рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг, рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ test1 , test2 рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ sshusers рд╕рдореВрд╣ рдореЗрдВ рд╣реИрдВ:


 def test_default_users(host): users = ['test1', 'test2' ] for login in users: assert host.user(login).exists assert 'sshusers' in host.user(login).groups 

рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ? рд╕рд╡рд╛рд▓ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рдпрд╣рд╛рдБ 2018-2019 рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрдм рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:



IaC рдкрд░реАрдХреНрд╖рдг рд░реВрдкрд░реЗрдЦрд╛


рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛ рдХреИрд╕реЗ рд╣реИ? рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рдЖрдк рд╕реНрд╡рдпрдВ рд╕рдм рдХреБрдЫ рд▓реЗ рдФрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдФрд░ рдЖрдк рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд╣реАрдВ рд╣реИрдВ:


CFMрд╕рд╛рдзрди
AnsibleрдЕрдгреБ
рдорд╣рд╛рд░рд╛рдЬрдЯреЗрд╕реНрдЯ рдХрд┐рдЪрди
terraformTerratest

2018-2019 рдХреЗ рд▓рд┐рдП рдЧреАрдердм рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:



рдЕрдгреБ рдмрдирд╛рдо Testkitchen



рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдордиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА :


  1. рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ VMs рдмрдирд╛рдПрдБред
  2. рдЕрдиреНрд╕рд┐рдмрд▓ рд░реЛрд▓реНрд╕ рд▓рдЧрд╛рдпреЗрдВред
  3. рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рднрдЧрд╛рдУред

25-35 рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдиреЗ 40-70 рдорд┐рдирдЯ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬреЛ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рдерд╛ред



рдЕрдЧрд▓рд╛ рдХрджрдо рдЬреЗрдирдХрд┐рдВрд╕ / рдбреЙрдХрдЯрд░ / рдПрдВрд╕рд┐рдмрд▓ / рдЕрдгреБ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдерд╛ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ


  1. рд▓рд┐рдВрдЯ рдкреНрд▓реЗрдмреБрдХред
  2. рднреВрдорд┐рдХрд╛рдПрдВ рдирд┐рднрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  3. рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдПрдВ
  4. рдЕрдиреНрд╕рд┐рдмрд▓ рд░реЛрд▓реНрд╕ рд▓рдЧрд╛рдпреЗрдВред
  5. рдЯреЗрд╕реНрдЯрд┐рдирдлреНрд░рд╛ рдХреЛ рджреВрд░ рднрдЧрд╛рдПрдВред
  6. рдЖрд▓рд╕реНрдп рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред


рдПрдХ рджрд░реНрдЬрди рдХреЗ рд▓рд┐рдП 40 рднреВрдорд┐рдХрд╛рдУрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рд╕рдХ рдХреЛ рд▓рдЧрднрдЧ 15 рдорд┐рдирдЯ рд▓рдЧ рдЧрдПред



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


IaC рдкрд░реАрдХреНрд╖рдг: рдПрдХреАрдХрд░рдг рдЯреЗрд╕реНрдЯ



рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд┐рд░рд╛рдорд┐рдб рдХреЗ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рд╡реЗ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ:


  1. рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдЫреЛрдЯреА рдИрдВрдЯреЛрдВ рдореЗрдВ рдХреБрдЪрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдВрд╕рд┐рдмрд▓ рднреВрдорд┐рдХрд╛рдПрдБред
  2. рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдорд╛рд╣реМрд▓ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдбреЙрдХрдЯрд░ рд╣реЛ рдпрд╛ рд╡реАрдПрдоред
  3. рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрдИ рдЕрдВрд╕рдиреАрдп рднреВрдорд┐рдХрд╛рдПрдБ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
  4. рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ (рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ)ред
  5. рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдареАрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореЛрдЯреЗ рддреМрд░ рдкрд░, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдордЧреНрд░ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


IaC рдкрд░реАрдХреНрд╖рдг: рдПрдВрдб рдЯреВ рдПрдВрдб рдЯреЗрд╕реНрдЯ



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



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



рдЗрд╕ рдпреЛрдЬрдирд╛ рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдм рддрдХ рдХрд┐ рдЕрдзреНрдпрдпрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ рдЗрд╕реЗ рдУрдкреЗрдВрд╢рд┐рдлреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред рдХрдВрдЯреЗрдирд░ рд╡рд╣реА рд░рд╣реЗ, рд▓реЗрдХрд┐рди рд▓реЙрдиреНрдЪ рдХрд╛ рдорд╛рд╣реМрд▓ рдмрджрд▓ рдЧрдпрд╛ (рд╣реЗрд▓реЛ DRY рдлрд┐рд░ рд╕реЗ)ред



рд╢реЛрдз рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдЧреЗ рдмрдврд╝рд╛, рдФрд░ рдУрдкрдирд╢рд┐рдлреНрдЯ рдореЗрдВ рдРрд╕реА APB (Ansible Playbook рдмрдВрдбрд▓) рдЪреАрдЬ рдереА рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬреНрдЮрд╛рди рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╛рдиреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдЬреНрдЮрд╛рди рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рдВрджреБ рд╣реИред



рдпрд╣ рд╕рдм рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЬрдм рддрдХ рд╣рдо рдЦреБрдж рдХреЛ рдПрдХ рд╡рд┐рд╖рдо рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рджрдлрди рдирд╣реАрдВ рдХрд░рддреЗ: рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдирддреАрдЬрддрди, рдЬреНрдЮрд╛рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдХрд╣рд╛рдБ рд╣реИред


рдирд┐рд╖реНрдХрд░реНрд╖



рдХреЛрдб рдЬреИрд╕рд╛ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╣реИ


  • рднрдВрдбрд╛рд░ рдореЗрдВ рдХреЛрдбред
  • рд▓реЛрдЧреЛрдВ рдХреА рд╕рд╣рднрд╛рдЧрд┐рддрд╛ред
  • рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдкрд░реАрдХреНрд╖рдгред

рд▓рд┐рдВрдХ

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


All Articles