рдкреИрдХрд░, рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдФрд░ Ansible: рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рддреИрдирд╛рддреА рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ



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

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

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

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


рдореБрд░реНрдЧрд┐рдпреЛрдВ рдХреЛ рдирд╛рдо рди рджреЗрдВ




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

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

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

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

рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдереЗ рдЬрд┐рдирдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рддреА рдереА, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреНрдпреВрди рдХрд░рддреЗ рдереЗ рдФрд░ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦрддреЗ рдереЗред рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ, Cthulhu, Aylith, рдФрд░ Dagon рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЙрдЧ рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд░рдВрдкрд░рд╛рдУрдВред

рддрдм рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдиреЗ рджреГрдврд╝рддрд╛ рд╕реЗ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛, рдФрд░ рд▓рд╡рдХреНрд░рд╛рдлреНрдЯ рдФрд░ рд╕реНрдЯрд╛рд░ рдЯреНрд░реЗрдХ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдирд╛рдо рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╡рд╛рджреА "vlg-vlt-vault01.company.ru" рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рджрд┐рдпрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдард╛рдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрди рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

рдмреЗрдХреНрдб рдХреЗрдХ рддрд▓реЗ рд╣реБрдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдпрд╡рд░реНрдзрдХ рд╣реЛрддреЗ рд╣реИрдВ




рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдлреНрд░рд╛рдЗрдб рдмрдирд╛рдо рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рдкрд░реАрдд рд╣реИред рдкрдХреЗ рд╣реБрдП, рдХрд┐, "рдмреЗрдХреНрдб рдХреЗ рдЦрд┐рд▓рд╛рдл рддрд▓рд╛ рд╣реБрдЖ" рд╣реИред

рдлреНрд░рд╛рдЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реЗрдирд┐рд▓рд╛ рдУрдПрд╕ рдЫрд╡рд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдВрдЯреЛрд╕ 7. рдлрд┐рд░, рдУрдПрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ansible, рд╢реЗрдл, рдХрдардкреБрддрд▓реА рдпрд╛ рд╕рд╛рд▓реНрдЯрд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

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

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

рд╣рдо рдУрд╡рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд▓рдкреЗрдЯрдиреЗрд╡рд╛рд▓рд╛



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

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

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

рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреИрдХрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ VM CROC рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ "рдкреНрд░рджрд╛рддрд╛" рдХрд╛рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ - рдкреНрд░рд╛рд╡рдзрд╛рди: рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреЛ рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ Ansible рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреИрдХрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдмреЗрд╕.рдЬрд╕рди рд╕рдВрд░рдЪрдирд╛


рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЦрдВрдб рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

рд╕реНрдкреЙрдЗрд▓рд░
"variables" : {
 "source_ami_name": "{{env SOURCE_AMI_NAME}}",
 "ami_name": "{{env AMI_NAME}}",
 "instance_type": "{{env INSTANCE_TYPE}}",
 "kubernetes_version": "{{env KUBERNETES_VERSION}}",
 "docker_version": "{{env DOCKER_VERSION}}",
 "subnet_id": "",
 "availability_zone": "",
},


рдЗрди рдЪрд░реЛрдВ рдХрд╛ рдореБрдЦреНрдп рд╕реЗрдЯ settings.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рд╡реЗ рдЪрд░ рдЬреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдкреИрдХрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдирдИ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрдВрд╕реЛрд▓ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рд▓реНрдбрд░реНрд╕ рдЕрдиреБрднрд╛рдЧ рд╣реИ:

рд╕реНрдкреЙрдЗрд▓рд░
"builders" : [
 {
  "type": "amazon-ebs",
  "region": "croc",
  "skip_region_validation": true,
  "custom_endpoint_ec2": "https://api.cloud.croc.ru",
  "source_ami": "",
  "source_ami_filter": {
   "filters": {
    "name": "{{user `source_ami_name`}}"
    "state": "available",
    "virtualization-type": "kvm-virtio"
     },
...


рд▓рдХреНрд╖реНрдп рдмрд╛рджрд▓ рдФрд░ рд╡реАрдПрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдзрд┐ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ amazon-ebs рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди CROC рдХреНрд▓рд╛рдЙрдб рдХреЗ рд╕рд╛рде рдкреИрдХрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, custom_endpoint_ec2 рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрддрд╛ рд╕реЗрдЯ рд╣реИред рд╣рдорд╛рд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдЕрдореЗрдЬрд╝реЕрди рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд╛рд╕ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдПрдкреАрдЖрдИ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ - api.cloud.croc.ru рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред

рдпрд╣ рдЕрд▓рдЧ рд╕реЗ source_ami_filter рд╕реЗрдХреНрд╢рди рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣рд╛рдВ VM рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЫрд╡рд┐ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреИрдХрд░ рдХреЛ рдЗрд╕ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдПрдордЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕рдХрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрд░реЛрдд рдПрдПрдордЖрдИ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЪрд░ source_ami_filter рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рд╣реИред рдпрд╣ рдирд╛рдо рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╣реИред settings.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

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

рд╕реНрдкреЙрдЗрд▓рд░
"instance_type": "{{user `instance_type`}}",
"launch_block_device_mappings": [
 {
  "device_name": "disk1",
  "volume_type": "io1",
  "volume_size": "8",
  "iops": "1000",
  "delete_on_termination": "true"
 }
],

Base.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрд╕ рд╡реАрдПрдо рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:

рд╕реНрдкреЙрдЗрд▓рд░
"availability_zone": "{{user `availability_zone`}}",
"subnet_id": "{{user `subnet_id`}}",
"associate_public_ip_address": true,
"ssh_username": "ec2-user",
"ami_name": "{{user `ami_name`}}"


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

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

рдЕрдВрддрд┐рдо рдЦрдВрдб рдореЗрдВ рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ:

рд╕реНрдкреЙрдЗрд▓рд░
"provisioners": [
 {
  "type": "ansible",
  "playbook_file": "playbook.yml",
  "extra_arguments": [
   "--extra-vars",
   "kubernetes_version={{user `kubernetes_version`}}",
   "--extra-vars",
   "docker_version={{user `docker_version`}}"
   ]
  }
]


рдпреЗ рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ, рдЬрд┐рдирдХреЗ рд╕рд╛рде рдкреИрдХрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, ansible рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд playbook_file рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ Ansible рднреВрдорд┐рдХрд╛рдУрдВ рдФрд░ рдЙрди рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рднреВрдорд┐рдХрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдВрдЧреАред рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк extra_arguments рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдХрд┐ Ansible рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдФрд░ рдбреЛрдХрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

CROC Cloud рдХреА рддреИрдпрд╛рд░реА




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

  1. рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдПрдбреНрд░реЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкреИрдХрд░ рдЕрдкрдиреЗ рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рд╕рдлреЗрдж рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
  2. рд╕рдмрдиреЗрдЯ рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕рдмрдиреЗрдЯ рдФрд░ рдорд╛рд╕реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
  3. рд╕рдмрдиреЗрдЯ рдЖрдИрдбреА рдХреЙрдкреА рдХрд░реЗрдВред
  4. рдЗрд╕ рдорд╛рди рдХреЛ рдкреИрдХрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рдмрдиреЗрдЯ_рдЖрдИрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред



рдлрд┐рд░ рдкреИрдХрд░ рдЪрд▓рд╛рдПрдВред рд╡рд╣ рдореВрд▓ рд╡реАрдПрдо рдЫрд╡рд┐ рдкрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕реАрдЖрд░рдУрд╕реА рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рдкрд░ Ansible рднреВрдорд┐рдХрд╛ рдХрд░рддрд╛ рд╣реИред рдирдП VM рдХреЛ "рдЗрдВрд╕реНрдЯреЗрдВрд╕" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ CROC рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред





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

Ansible


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд▓реЗрдмреБрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ Ansible рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Playbook.yml рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдпрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

- hosts: all
  become: true

  roles:
  | - base

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

рдЖрдзрд╛рд░ рднреВрдорд┐рдХрд╛ рдЖрдкрдХреЛ рдПрдХрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред Main.yml рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рднреВрдорд┐рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ:

  1. рд╕рд┐рд╕реНрдЯрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  2. рд╕рд┐рд╕реНрдЯрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  3. рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
  4. рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИред
  5. рдорд╢реАрди рдХреЛ рдбреЗрдорди.рдЬреЙрди.рдЬреЗ 2 рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
  6. Br_netfilter рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
  7. Br_netfilter рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  8. рдЗрд╕рдореЗрдВ рдбреЙрдХрд░ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  9. VM рдореЗрдВ рдбреЙрдХрд░ рдЪрд▓рд╛рддрд╛ рд╣реИред
  10. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЙрдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ var. рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ main.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдбреЙрдХрдЯрд░-рд╕реА рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддреАрди рдкреИрдХреЗрдЬ: рдХреНрдпреВрдмрд▓реЗрдЯ, рдХреБрдмреЗрджрдо рдФрд░ рдХреБрдмреЗрдЯрд▓ред

рдЯреЗрд░рд╛рдлреЙрд░реНрдо - рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪрд╛




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

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

рдкреИрдХрд░ рдХреА рддрд░рд╣, рдпрд╣ рдЙрдкрдХрд░рдг рдПрдбрдмреНрд▓реНрдпреВрдПрд╕, рдЬреАрд╕реАрдкреА, рдЕрд▓реАрдмрд╛рдмрд╛ рдХреНрд▓рд╛рдЙрдб, рдПрдЬрд╝реНрдпреЛрд░, рдУрдкрдирд╕реНрдЯреИрдХ, рд╡реАрдПрдорд╡реЗрдпрд░, рдЖрджрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ


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

  1. main.tf
  2. network.tf
  3. security_groups.tf
  4. master.tf
  5. master.tpl

Main.tf рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


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

provider "aws" {
 endpoints {
  ec2 = "https://api.cloud.croc.ru"
 }

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

resource "tls_private_key" "ssh" {
 algorithm = "RSA"
}
resource "aws_key_pair" "kube" {
 key_name = "terraform"
 public_key = "${tls_private_key.ssh.public_key_openssh}"
}
output "ssh" {
value = "${tls_private_key.ssh.private_key_pem}"
}

Network.tf рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛


рдпрд╣ рдлрд╝рд╛рдЗрд▓ VM рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреЗрдЯрд╡рд░реНрдХ рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ:

рд╕реНрдкреЙрдЗрд▓рд░
data "aws_availability_zones" "az" {
 state = "available"
}
resource "aws_vpc" "kube" {
 cidr_block = "${var.vpc_cidr}"
}
resource "aws_eip" "master" {
 count = "1"
 vpc = true
}
resource "aws_subnet" "private" {
 vpc_id = "${aws_vpc.kube.id}"
 count = "${length(data.aws_availability_zones.az.names)}"
 cidr_block = "${var.private_subnet_cidr_list[count.index]}"
 availability_zone = "${data.aws_availability_zones.az.names[count.index]}"
}


рдЯреЗрд░рд╛рдлреЙрд░реНрдо рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

  • рд╕рдВрд╕рд╛рдзрди - рдХреНрдпрд╛ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ;
  • рдбреЗрдЯрд╛ - рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ Terraform рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрд╕рд╛рдзрди рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ Elastic IP рдПрдбреНрд░реЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрд╣реБрдВрдЪ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдФрд░ рдлрд┐рд▓рд╣рд╛рд▓ рд╕реАрдЖрд░рдУрд╕реА рдореЗрдВ рджреЛ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рдмрдиреЗрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред Aws_subnet рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрддреНрдкрдиреНрди aws_vpc рдХреА рдЖрдИрдбреА рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди, рдЪреВрдВрдХрд┐ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреА рдЖрдИрдбреА рдЕрднреА рднреА рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рд╣рдо aws_vpc.kube.id рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрдирд╛рдП рдЧрдП рд╕рдВрд╕рд╛рдзрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рд╕реЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдмрдирд╛рдП рдЧрдП рд╕рдмрдиреЗрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рдВрдмрд╛рдИ рдЪрд░ (data.aws_avucation_zones.az.names) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдбреЗрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдПрдХреНрд╕реЗрд╕ рдЬрд╝реЛрди рдХреА рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИред

рдЕрдВрддрд┐рдо рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ cidr_block (рдЖрд╡рдВрдЯрд┐рдд рд╕рдмрдиреЗрдЯ) рдФрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдмрдиреЗрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдПрдХ рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ [рдХрд╛рдЙрдВрдЯ рд▓рд┐рдВрдб] рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рд▓реВрдк рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд╕реВрдЪреА рд╕реЗ рдПрдХ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ ред

Security_groups.tf рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


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

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

рджреВрд╕рд░рд╛ рдирд┐рдпрдо ssh рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╡реАрдПрдо рдХреЗ 22 рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

рд╕реНрдкреЙрдЗрд▓рд░
resource "aws_security_group" "kube" {
 vpc_id = "${aws_vpc.kube.id}"
 name   = "kubernetes"
 # Allow all outbound
 egress {
  from_port = 0
  to_port = 0
  protocol = "-1"
  cidr_blocks = ["0.0.0.0/0"]
 }
 # Allow all internal
 ingress {
  from_port = 0
  to_port = 0
  protocol = "-1"
  cidr_blocks = ["${var.vpc_cidr}"]
 }
}
resource "aws_security_group" "ssh" {
 vpc_id = "${aws_vpc.kube.id}"
 name   = "ssh"

 # Allow all inbound
 ingress {
  from_port = 22
  to_port = 22
  protocol = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
 }
}


рдорд╛рд╕реНрдЯрд░ рдиреЛрдбред Master.tf рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


Master.tf рдлрд╝рд╛рдЗрд▓ рдХрдИ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдорд╛рд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

рдЕрдЧрд▓рд╛, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рдФрд░ рдореБрдЦреНрдп .ff рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИред User_data рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреНрд▓рд╛рдЙрдб-рдЗрдирд┐рдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╡реАрдПрдо рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:

рд╕реНрдкреЙрдЗрд▓рд░
resource "aws_instance" "master" {
 count = "1"
 ami = "${var.kubernetes_ami}"
 instance_type = "c3.large"
 disable_api_termination = false
 instance_initiated_shutdown_behavior = "terminate"
 source_dest_check = false
 subnet_id = "${aws_subnet.private.*.id[count.index % length(data.aws_availability_zones.az.names)]}"
 associate_public_ip_address = true
 vpc_security_group_ids = [
  "${aws_security_group.ssh.id}",
  "${aws_security_group.kube.id}",
 ]
 key_name = "${aws_key_pair.kube.key_name}"
 user_data = "${data.template_cloudinit_config.master.rendered}"
 monitoring = "true"
}


рдорд╛рд╕реНрдЯрд░ рдиреЛрдбред рдореЗрдШ рдЗрдирд┐рдЯ


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

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

1. Kubeadm рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЧрдИ рд╣реИрдВ:

#cloud-config

    write_files:
    - path: etc/kubernetes/kubeadm.conf
      owner: root:root
      content:
    ...


2. рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдЙрддреНрдкрдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдХреБрдмреЗрджрдо рдЗрдирд┐рдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЖрд░рдореНрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ, Calico рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ kubectl рд▓рд╛рдЧреВ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

runcmd:
         - sed -i "s/CONTROL_PLANE_IP/$(curl http://169.254.169.254/latest/meta-data-local-ipv4)/g" /etc/kubernetes/kubeadm.conf
         - kubeadm init --config /etc/kubernetes/kubeadm.conf
         - mkdir -p $HOME/.kube
         - sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
         - sudo chown $(id -u):$(id -g) $HOME/.kube/config
         - kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

VM рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реЗрд╖ рдиреЛрдбреНрд╕ рдЗрд╕ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рд╕рд╛рдзрд╛рд░рдг рдиреЛрдбреНрд╕ред node.tf


рдиреЛрдб.рдЯреАрдПрдл рдлрд╛рдЗрд▓ рдорд╛рд╕реНрдЯрд░.рдПрдлрдПрдл рдлрд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрди рднреА рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдиреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдмрдирд╛рдИ рдЧрдИ рдХрд╛рд░реНрдп рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ nodes_count рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИ:

resource "aws_instance" "node" {
 count = "${var.nodes_count}"
 ami = "${var.kubernetes_ami}"
 instance_type = "c3.large"

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

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ


рдЬрдм рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

  • AWS рдореЙрдбреНрдпреВрд▓
  • рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЙрдбреНрдпреВрд▓;
  • рдЯреАрдПрд▓рдПрд╕ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдореБрдЦ рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдпреЗ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:

terraform init terraform/

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

terraform plan -var-file terraform/vars/dev.tfvars terraform/

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Terraform рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, var-file рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ Terraform рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░ рдХреЗ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Vars рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдИ .tfvars рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ Terformform рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред

Dev.tfvars рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░ рд╣реИрдВ:

  • Kubernetes_version (Kubernetes рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг);
  • Kubernetes_ami (AMI рдЫрд╡рд┐ рдЬреЛ рдкреИрдХрд░ рдиреЗ рдмрдирд╛рдИ)ред

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

рдЗрд╕ рд╕реВрдЪреА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

terraform apply -auto-approve -var-file terraform/vars/dev.tfvars terraform/

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

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд░рдЪрдирд╛




Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдмрдВрдзрди рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдХрд╛рд░реНрдп рдиреЛрдбреНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдЪрд╛рд░ рдШрдЯрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  • рдИрдЯреАрд╕реАрдбреА, рдпрд╛рдиреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕
  • рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ;
  • рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рдмрдВрдзрдХ
  • рд╕рдордпрдмрджреНрдзрдХ

рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдкрд░ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:

  • рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА (рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░);
  • рдХреНрдпреВрдмрд▓реЗрдЯ (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░)ред

рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ, рдХреИрд▓рд┐рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧ-рдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрд▓рд╕реНрдЯрд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЖрд░реЗрдЦ

, Kubernetes replicaset.

  1. API-, ETCD. .
  2. API- .
  3. Controller-manager API- , ┬л┬╗, .
  4. Scheduler . ETCD API-.
  5. Kubelet API- Docker .
  6. Docker .
  7. Kubelet API- , .

, Kubernetes , . , , YAML-. , , API-. .

Kubeadm




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

рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рд╕рднреА рдкреНрд░рдореБрдЦ рдХреНрд▓рд╕реНрдЯрд░ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЪрд▓рд╛рдПрдВ
  • рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ, рдЬрд┐рдирдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдШреБрдорд╛рдирд╛ рдФрд░ рдирдП рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ;
  • рдХреНрд▓рд╕реНрдЯрд░ рдШрдЯрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдЕрдкрдЧреНрд░реЗрдб рдФрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб) рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВред

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

рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА


рдпрд╣рд╛рдВ рд╣рдо рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рдЬреА рдХреНрд▓рд╛рдЙрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрд╡рдпрдВ рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ cloud@croc.ru рдкрд░ рд▓рд┐рдЦреЗрдВред

рд╣рдо рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдВрдЧреЗ рдФрд░ рд╕рднреА рдореБрджреНрджреЛрдВ рдкрд░ рд╕рд▓рд╛рд╣ рджреЗрдВрдЧреЗред

рдФрд░ рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рд╕реНрд▓рдо рд╣реЛрдЧрд╛ , рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред CROC рдкреНрд░реЛрдореЛ рдХреЛрдб рдореЗрдВ 10% рдХреА рдЫреВрдЯ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЙрдиреНрдирдд рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реИ ред рдЫреВрдЯ рд╕рдорд╛рди рд╣реИред

рд╕рд╣рдХрд░реНрдореА, рд╣реИрдмрд░рдкрд░реНрд╕рд░ рдХреЛрдб рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ GitHub рд╕реЗ рд╕реНрд░реЛрдд рд▓реЗрдВред

All Articles