Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ

Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ

рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдЯреЗрд░рд╛рдлрд░реНрдордорд╛ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ рднрдиреЗрд░ рд╣реЗрд░реНрдиреЗрдЫреМрдВ, рд░ рдмрд┐рд╕реНрддрд╛рд░реИ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдкрдирд┐ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВред VMware рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдбрдорд╛ тАФ рд╣рд╛рдореА рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рддреАрдирд╡рдЯрд╛ VM рддрдпрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ: рдкреНрд░реЛрдХреНрд╕реА, рдлрд╛рдЗрд▓ рднрдгреНрдбрд╛рд░рдг рд░ CMSред

рд╕рдмреИ рдХреБрд░рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд┐рд╕реНрддреГрдд рд░ рддреАрди рдЪрд░рдгрд╣рд░реВрдорд╛:

1. Terraform - рд╡рд┐рд╡рд░рдг, рд▓рд╛рдн рд░ рдШрдЯрдХ

рдЯреЗрд░рд╛рдлрд░реНрдо рдХреЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рднрд░реНрдЪреБрдЕрд▓ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдирд┐рд░реНрдорд╛рдг рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ IaC (рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░-рдПрдЬ-рдХреЛрдб) рдЙрдкрдХрд░рдг рд╣реЛред

рд╣рд╛рдореАрд▓реЗ рдЙрдкрдХрд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдиреЛрдЯ рдЧрд░реНрдпреМрдВ:

  • рдирдпрд╛рдБ рднрд╛рдбрд╛рд╡рд╛рд▓рд╣рд░реВрдХреЛ рддреИрдирд╛рддреА рдЧрддрд┐ (рдЕрдиреБрдХреВрд▓ рднрд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг)ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдирдпрд╛рдБ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдЫрдиреН, рдердк "рдХреНрд▓рд┐рдХрд╣рд░реВ" рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд░реНрдерди рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрд▓реЗ рдирдпрд╛рдБ рд╕реНрд░реЛрддрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред Terraform рдХреЛ рд╕рд╛рде, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдЫрдиреН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ OS рдмрдиреНрдж рдЧрд░реНрдиреЗ рд░ рднрд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрди рдмрдврд╛рдЙрдиреЗ) рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд░реНрдерди рд╡рд╛ рдореЗрд╕рд┐рди рдЖрдлреИ рдмрдиреНрдж рдирдЧрд░реАред

  • рд╕рдХреНрд░рд┐рдпрддрд╛ рдпреЛрдЬрдирд╛рдХреЛ рддрддреНрдХрд╛рд▓ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдирдпрд╛рдБ рдЯреЗрдиреЗрдиреНрдЯред рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдХреЛрдбрдХреЛ рд╡рд┐рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ рдХреЗ рдердкрд┐рдиреЗрдЫ рд░ рдХреБрди рдХреНрд░рдордорд╛, рд╕рд╛рдереИ рдХреБрди рдЕрдиреНрддрд┐рдо рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпреЛ рд╡рд╛ рддреНрдпреЛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╡рд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрд╕рдБрдЧ рдЬрдбрд╛рди рднрдПрдХреЛ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╣реБрдиреЗрдЫ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

  • рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред рддрдкрд╛рдИрдВ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Amazon рд░ Google Cloud рджреЗрдЦрд┐ VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдЬреА рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛, IaaS, SaaS рд░ PaaS рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рднрд┐рддреНрд░ рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИред

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

  • рдбреЗрдореЛ рд╕реНрдЯреНрдпрд╛рдиреНрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдпреЛрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкрд░реАрдХреНрд╖рдг рд░ рдбрд┐рдмрдЧрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ред рддрдкрд╛рдИрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдЯреНрдпрд╛рдиреНрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрд░ рд╕реНрд░реЛрддрд╣рд░реВ рддрддреНрдХрд╛рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд░ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

"рдЯреЗрд░рд╛рд░рд┐рдпрдо" рдЯреЗрд░рд╛рдлрд╛рд░реНрдо

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

рдкреНрд░рджрд╛рдпрдХрд╣рд░реВред 

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

рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдПрдХ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╕рдВрд╕рд╛рдзрди (рд╕реНрд░реЛрдд рд╡рд┐рд╡рд░рдг)ред

рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдгрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд▓реЗрдЯрдлрд░реНрдо рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕реНрддреИ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВред 

рддрдкрд╛рдИрдВрд▓реЗ VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХ рдкреНрд░рджрд╛рдпрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд рд╡рд┐рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ vCloud рдирд┐рд░реНрджреЗрд╢рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рд╣реЛрд╕реНрдЯрд┐рдЩ рдкреНрд░рджрд╛рдпрдХрд╕рдБрдЧ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдпреЛ рд╡рд┐рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрд╕реНрдЯрд┐рдЩ рдкреНрд░рджрд╛рдпрдХрдорд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ рдиреЗрдЯрд╡рд░реНрдХ рдЬрдбрд╛рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВред

рдпреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рд░ рдорд░реНрдорддрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред рдПрдХрдЪреЛрдЯрд┐ рддрдкрд╛рдИрдВрд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╕реНрд░реЛрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ SSH рдорд╛рд░реНрдлрдд рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд░ рдЬрдбрд╛рди рдЧрд░реНрди, рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ рдЧрд░реНрди, рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд░ рдЪрд▓рд╛рдЙрди рдкреНрд░рд╛рд╡рдзрд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред 

рдЗрдирдкреБрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ред

рдЗрдирдкреБрдЯ рдЪрд░ - рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдХрд╛рд░рдХрд╛ рдмреНрд▓рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЗрдирдкреБрдЯ рдЪрд░ред 

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

рд░рд╛рдЬреНрдпрд╣рд░реБ.

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

рд░рд╛рдЬреНрдпрд╣рд░реВрдХреЛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рдмрдЪрдд рдЧрд░реНрди рдердкрд┐рдПрдХреЛ рд╕реНрд░реЛрддрд╣рд░реВ рд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рддреБрд▓рдирд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рд░рд╛рдЬреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ terraform.tfstate рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рдпреЛ рдЯреЛрд▓реА рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдЯрд╛рдврд╛рдХреЛ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред

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

2. рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдирд┐рд░реНрдорд╛рдг

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

рд╣рд╛рдореА рдХреЛрдб рд▓реЗрдЦреНрдиреЗрдЫреМрдВ рд░ рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗрдЫреМрдВ VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХрдорд╛ рдмрд╛рджрд▓рд╣рд░реВред рд╣рд╛рдореНрд░рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕рдВрдЧрдарди рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдзрд┐рдХрд╛рд░ рднрдПрдХреЛ рдЦрд╛рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫрдиреНред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ VMware рдХреНрд▓рд╛рдЙрдбрдорд╛ рд╕рдорд╛рди рдЕрдзрд┐рдХрд╛рд░ рднрдПрдХреЛ рдЦрд╛рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдмрд╛рдЯ рдХреЛрдб рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЬрд╛рдЙ!

рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рдЬрд╕рдорд╛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдлрд╛рдЗрд▓рд╣рд░реВ рд░рд╛рдЦрд┐рдиреЗрдЫред

mkdir project01

рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдШрдЯрдХрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВред Terraform рд▓реЗ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд╡рд░реНрдгрдирдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╕рдореНрдмрдиреНрдзрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫред рдлрд╛рдЗрд▓рд╣рд░реВ рдЖрдлреИрдВрд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдЙрджреНрджреЗрд╢реНрдпрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдирд╛рдо рджрд┐рди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, network.tf - рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

рд╣рд╛рдореНрд░реЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХрд╛ рдШрдЯрдХрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ:

рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреАред

main.tf - рднрд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдг - рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ, рднрд░реНрдЪреБрдЕрд▓ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ;

network.tf - рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ NAT рд░ рдлрд╛рдпрд░рд╡рд╛рд▓ рдирд┐рдпрдорд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдг;

variables.tf - рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЪрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреА;

vcd.tfvars - VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХ рдореЛрдбреНрдпреБрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрд▓ рдорд╛рдирд╣рд░реВред

Terraform рдорд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рднрд╛рд╖рд╛ рдШреЛрд╖рдгрд╛рддреНрдордХ рдЫ рд░ рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдХреНрд░рдо рдлрд░рдХ рдкрд░реНрджреИрди, рдкреНрд░реЛрднрд┐рдЬрдирд░ рдмреНрд▓рдХрд╣рд░реВ рдмрд╛рд╣реЗрдХ, рдХрд┐рдирднрдиреЗ рдпрд╕ рдмреНрд▓рдХрдорд╛ рд╣рд╛рдореА рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рддрдпрд╛рд░ рдЧрд░реНрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреЗ рдЖрджреЗрд╢рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫреМрдВ рд░ рддрд┐рдиреАрд╣рд░реВ рдХреНрд░рдордмрджреНрдз рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреЗрдЫрдиреНред

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

<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {

# Block body

<IDENTIFIER> = <EXPRESSION> # Argument

}

рдмреНрд▓рдХрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди, рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ HCL (HashiCorp рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рднрд╛рд╖рд╛) рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ; JSON рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рддрдкрд╛рдЗрдБ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ рдкрдвреНрдиреБрд╣реЛрд╕реН.

рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди, variables.tf рд░ vcd.tfvars

рдкрд╣рд┐рд▓реЗ, VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХ рдореЛрдбреНрдпреБрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдЪрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреА рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред рдкрд╣рд┐рд▓реЗ, variables.tf рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

variables.tf рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рдордЧреНрд░реАред

variable "vcd_org_user" {

  description = "vCD Tenant User"

}

variable "vcd_org_password" {

  description = "vCD Tenant Password"

}

variable "vcd_org" {

  description = "vCD Tenant Org"

}

variable "vcd_org_vdc" {

  description = "vCD Tenant VDC"

}

variable "vcd_org_url" {

  description = "vCD Tenant URL"

}

variable "vcd_org_max_retry_timeout" {

  default = "60"

}

variable "vcd_org_allow_unverified_ssl" {

  default = "true"

}

variable "vcd_org_edge_name" {

  description = "vCD edge name"

}

variable "vcd_org_catalog" {

  description = "vCD public catalog"

}

variable "vcd_template_os_centos7" {

  description = "OS CentOS 7"

  default = "CentOS7"

}

variable "vcd_org_ssd_sp" {

  description = "Storage Policies"

  default = "Gold Storage Policy"

}

variable "vcd_org_hdd_sp" {

  description = "Storage Policies"

  default = "Bronze Storage Policy"

}

variable "vcd_edge_local_subnet" {

  description = "Organization Network Subnet"

}

variable "vcd_edge_external_ip" {

  description = "External public IP"

}

variable "vcd_edge_local_ip_nginx" {}

variable "vcd_edge_local_ip_bitrix" {}

variable "vcd_edge_local_ip_nextcloud" {}

variable "vcd_edge_external_network" {}

рдЪрд░ рдорд╛рдирд╣рд░реВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рджрд╛рдпрдХрдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред

  • vcd_org_user тАФ рд╕рдВрдЧрдарди рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдзрд┐рдХрд╛рд░ рд╕рд╣рд┐рддрдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо,

  • vcd_org_password тАФ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб,

  • vcd_org тАФ рд╕рдВрд╕реНрдерд╛рдХреЛ рдирд╛рдо,

  • vcd_org_vdc тАФ рднрд░реНрдЪреБрдЕрд▓ рдбрд╛рдЯрд╛ рдХреЗрдиреНрджреНрд░рдХреЛ рдирд╛рдо,

  • vcd_org_url - API URL,

  • vcd_org_edge_name тАФ рднрд░реНрдЪреБрдЕрд▓ рд░рд╛рдЙрдЯрд░рдХреЛ рдирд╛рдо,

  • vcd_org_catalog тАФ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднрдПрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХреЛ рдирд╛рдо,

  • vcd_edge_external_ip тАФ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдареЗрдЧрд╛рдирд╛,

  • vcd_edge_external_network тАФ рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдирд╛рдо,

  • vcd_org_hdd_sp тАФ HDD рднрдгреНрдбрд╛рд░рдг рдиреАрддрд┐рдХреЛ рдирд╛рдо,

  • vcd_org_ssd_sp тАФ SSD рднрдгреНрдбрд╛рд░рдг рдиреАрддрд┐рдХреЛ рдирд╛рдоред

рд░ рд╣рд╛рдореНрд░реЛ рдЪрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  • vcd_edge_local_ip_nginx тАФ NGINX рд╕рдБрдЧ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ IP рдареЗрдЧрд╛рдирд╛,

  • vcd_edge_local_ip_bitrix - 1C рдХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ IP рдареЗрдЧрд╛рдирд╛: Bitrix,

  • vcd_edge_local_ip_nextcloud тАФ Nextcloud рдХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ IP рдареЗрдЧрд╛рдирд╛ред

рджреЛрд╕реНрд░реЛ рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рде рд╣рд╛рдореАрд▓реЗ vcd.tfvars рдлрд╛рдЗрд▓рдорд╛ VMware vCloud рдирд┐рд░реНрджреЗрд╢рдХ рдореЛрдбреНрдпреБрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рдЪрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдЫреМрдВ: рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рдЖрдлреНрдиреИ рдХреНрд▓рд╛рдЙрдб mClouds, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрд░реНрдХреЛ рдкреНрд░рджрд╛рдпрдХрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдорд╛рдирд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред 

vcd.tfvars рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рдордЧреНрд░реАред

vcd_org_url = "https://vcloud.mclouds.ru/api"

vcd_org_user = "orgadmin"

vcd_org_password = "*"

vcd = "org"

vcd_org_vdc = "orgvdc"

vcd_org_maxretry_timeout = 60

vcd_org_allow_unverified_ssl = true

vcd_org_catalog = "Templates"

vcd_templateos_centos7 = "CentOS7"

vcd_org_ssd_sp = "Gold Storage Policy"

vcd_org_hdd_sp = "Bronze Storage Policy"

vcd_org_edge_name = "MCLOUDS-EDGE"

vcd_edge_external_ip = "185.17.66.1"

vcd_edge_local_subnet = "192.168.110.0/24"

vcd_edge_local_ip_nginx = "192.168.110.1"

vcd_edge_local_ip_bitrix = "192.168.110.10"

vcd_edge_local_ip_nextcloud = "192.168.110.11"

vcd_edge_external_network = "NET-185-17-66-0"

рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди, network.tfред

рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН, рдЕрдм рд╣рд╛рдореА рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЬрдбрд╛рди рдпреЛрдЬрдирд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрдиреЗрдЫреМрдВ - рдкреНрд░рддреНрдпреЗрдХ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд▓рд╛рдИ рдирд┐рдЬреА IP рдареЗрдЧрд╛рдирд╛ рддреЛрдХреНрдиреЗ рд░ рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкреЛрд░реНрдЯрд╣рд░реВрд▓рд╛рдИ "рдлрд░реНрд╡рд╛рд░реНрдб" рдЧрд░реНрди рдЧрдиреНрддрд╡реНрдп NAT рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рдЧрд░реНрди, рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ IP рдареЗрдЧрд╛рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдкрд╣реБрдБрдЪ рд╕реЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред

Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗTerraform рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рднрдЗрд░рд╣реЗрдХреЛ рдЫ

рд╣рд╛рдореА net_lan01 рдирд╛рдордХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧреЗрдЯрд╡реЗ: 192.168.110.254, рд░ рдареЗрдЧрд╛рдирд╛ рд╕реНрдкреЗрд╕: 192.168.110.0/24ред

рд╣рд╛рдореА рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВред

resource "vcd_network_routed" "net" {

  name = "net_lan01"

  edge_gateway = var.vcd_org_edge_name

  gateway = "192.168.110.254"

  dns1 = "1.1.1.1"

  dns2 = "8.8.8.8"

 static_ip_pool {

start_address = "192.168.110.1"

end_address = "192.168.110.253"

  }

}

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

рд╣рд╛рдореА рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ VM рдкрд╣реБрдБрдЪрдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рдпрдорд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВред

resource "vcd_nsxv_firewall_rule" "fw_internet_access" {

  edge_gateway   = var.vcdorgedgename

  name = "Internet Access"

  source {

gateway_interfaces = ["internal"]

  }

  destination {

gateway_interfaces = ["external"]

  }

  service {

protocol = "any"

  }

  depends_on = [vcdnetworkrouted.net]

}

рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ vcdnetworkrouted.net рдмреНрд▓рдХ рдкреНрд░рд╢реЛрдзрди рдЧрд░реЗрдкрдЫрд┐, рд╣рд╛рдореА vcdnsxvfirewallrule рдмреНрд▓рдХ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЕрдЧрд╛рдбрд┐ рдмрдвреНрдЫреМрдВред, рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рднрд░ рдкрд░реНрдЫред рд╣рд╛рдореА рдпреЛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдХрд┐рдирднрдиреЗ рдХреЗрд╣реА рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд╣рд┐рдЪрд╛рди рд╣реБрди рд╕рдХреНрдЫред

рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдмрд╛рдЯ рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдирд┐рдпрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ SSH рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ IP рдареЗрдЧрд╛рдирд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫреМрдВред рдХреБрдиреИ рдкрдирд┐ рдЗрдиреНрдЯрд░рдиреЗрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд╡реЗрдм рд╕рд░реНрднрд░рдорд╛ рдкреЛрд░реНрдЯ 80 рд░ 443 рдорд╛ рдкрд╣реБрдБрдЪ рдЫ, рд░ 90.1.15.1 рдХреЛ IP рдареЗрдЧрд╛рдирд╛ рднрдПрдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ рднрд░реНрдЪреБрдЕрд▓ рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ SSH рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЫред

рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдмрд╛рдЯ рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реНред

resource "vcd_nsxv_firewall_rule" "fwnatports" {

  edge_gateway   = var.vcd_org_edge_name

  name = "HTTPs Access"

  source {

gateway_interfaces = ["external"]

  }

  destination {

  gateway_interfaces = ["internal"]

  }

  service {

protocol = "tcp"

port = "80"

  }

  service {

protocol = "tcp"

port = "443"

  }

  depends_on = [vcd_network_routed.net]

}

resource "vcd_nsxv_firewall_rule" "fw_nat_admin_ports" {

  edge_gateway   = var.vcd_org_edge_name

  name = "Admin Access"

  source {

  ip_addresses = [ "90.1.15.1" ]

  }

  destination {

  gateway_interfaces = ["internal"]

  }

  service {

protocol = "tcp"

port = "58301"

  }

  service {

protocol = "tcp"

port = "58302"

  }

  service {

protocol = "tcp"

port = "58303"

  }

  depends_on = [vcd_network_routed.net]

}

рд╣рд╛рдореА рдХреНрд▓рд╛рдЙрдб рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХрдмрд╛рдЯ рдЗрдиреНрдЯрд░рдиреЗрдЯ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕реНрд░реЛрдд NAT рдирд┐рдпрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ:

рд╣рд╛рдореА рд╕реНрд░реЛрдд NAT рдирд┐рдпрдорд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВред

resource "vcd_nsxv_snat" "snat_local" {

edge_gateway = var.vcd_org_edge_name

  network_type = "ext"

  network_name = var.vcdedgeexternalnetwork

  original_address   = var.vcd_edge_local_subnet

translated_address = var.vcd_edge_external_ip

  depends_on = [vcd_network_routed.net]

}

рд░ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд▓рдХрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреВрд░рд╛ рдЧрд░реНрди, рд╣рд╛рдореА рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдмрд╛рдЯ рд╕реЗрд╡рд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЧрдиреНрддрд╡реНрдп NAT рдирд┐рдпрдорд╣рд░реВ рдердкреНрдЫреМрдВ:

рдЧрдиреНрддрд╡реНрдп NAT рдирд┐рдпрдорд╣рд░реВ рдердкреНрджреИред

resource "vcd_nsxv_dnat" "dnat_tcp_nginx_https" {
edge_gateway = var.vcd_org_edge_name
network_name = var.vcd_edge_external_network
network_type = "ext"

  description = "NGINX HTTPs"

original_address = var.vcd_edge_external_ip
original_port = 443

translated_address = var.vcd_edge_local_ip_nginx
translated_port = 443
protocol = "tcp"

depends_on = [vcd_network_routed.net]
}
resource "vcd_nsxv_dnat" "dnat_tcp_nginx_http" {
edge_gateway = var.vcd_org_edge_name
network_name = var.vcd_edge_external_network
network_type = "ext"

description = "NGINX HTTP"

original_address = var.vcd_edge_external_ip
original_port = 80

translated_address = var.vcd_edge_local_ip_nginx
translated_port = 80
protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Nginx рдЕрдиреНрддрд░реНрдЧрдд SSH рд╕рд░реНрднрд░рдорд╛ рдкреЛрд░реНрдЯ рдЕрдиреБрд╡рд╛рджрдХреЛ рд▓рд╛рдЧрд┐ NAT рдирд┐рдпрдо рдердкреНрдиреБрд╣реЛрд╕реНред

resource "vcd_nsxv_dnat" "dnat_tcp-nginx_ssh" {
edge_gateway = var.vcd_org_edge_name
network_name = var.vcd_edge_external_network
network_type = "ext"

description = "SSH NGINX"

original_address = var.vcd_edge_external_ip
original_port = 58301

translated_address = var.vcd_edge_local_ip_nginx
translated_port = 22
protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

1C-Bitrix рд╕рдБрдЧ SSH рд╕рд░реНрднрд░рдорд╛ рдкреЛрд░реНрдЯ рдЕрдиреБрд╡рд╛рджрдХреЛ рд▓рд╛рдЧрд┐ NAT рдирд┐рдпрдо рдердкреНрдиреБрд╣реЛрд╕реНред

resource "vcd_nsxv_dnat" "dnat_tcp_bitrix_ssh" {
edge_gateway = var.vcd_org_edge_name
network_name = var.vcd_edge_external_network
network_type = "ext"

description = "SSH Bitrix"

original_address = var.vcd_edge_external_ip
original_port = 58302

translated_address = var.vcd_edge_local_ip_bitrix
translated_port = 22
protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Nextcloud рдХреЛ рд╕рд╛рде SSH рд╕рд░реНрднрд░рдорд╛ рдкреЛрд░реНрдЯ рдЕрдиреБрд╡рд╛рджрдХреЛ рд▓рд╛рдЧрд┐ NAT рдирд┐рдпрдо рдердкреНрдиреБрд╣реЛрд╕реНред

resource "vcd_nsxv_dnat" "dnat_tcp_nextcloud_ssh" {
edge_gateway = var.vcd_org_edge_name
network_name = var.vcd_edge_external_network
network_type = "ext"

description = "SSH Nextcloud"

original_address = var.vcd_edge_external_ip
original_port = 58303 translated_address = var.vcd_edge_local_ip_nextcloud
translated_port = 22
protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Main.tf рднрд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди

рд╣рд╛рдореАрд▓реЗ рд▓реЗрдЦрдХреЛ рд╕реБрд░реБрдорд╛ рдпреЛрдЬрдирд╛ рдЧрд░реЗрдЭреИрдВ, рд╣рд╛рдореА рддреАрди рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рддрд┐рдиреАрд╣рд░реВ "рдЕрддрд┐рдерд┐ рдЕрдиреБрдХреВрд▓рди" рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрдпрд╛рд░ рд╣реБрдиреЗрдЫрдиреНред рд╣рд╛рдореАрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХрд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рд╣рд╛рдореА рдиреЗрдЯрд╡рд░реНрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВ, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗрдЫред

vApp рдХреЛ рд╡рд░реНрдгрди рдЧрд░реМрдВ рдЬрд╕рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреЗрдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдиред

Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗрднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди

рдПрдЙрдЯрд╛ vApp рдХрдиреНрдЯреЗрдирд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ vApp рд░ VM рд▓рд╛рдИ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд╣рд╛рдореА рдкрдирд┐ рдирд┐рд░реНрднрд░_on рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдердкреНрдЫреМрдВ:

рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН

resource "vcd_vapp" "vapp" {
name = "web"
power_on = "true" depends_on = [vcd_network_routed.net]

}

рд╡рд┐рд╡рд░рдгрдХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ

resource "vcd_vapp_vm" "nginx" {

vapp_name = vcd_vapp.vapp.name

name = "nginx"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_nginx

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "32768"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

VM рд╡рд┐рд╡рд░рдгрдорд╛ рдореБрдЦреНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ:

  • рдирд╛рдо - рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рдирд╛рдо,

  • vappname - рдирдпрд╛рдБ VM рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ vApp рдХреЛ рдирд╛рдо,

  • catalogname / templatename - рдХреНрдпрд╛рдЯрд▓рдЧ рдирд╛рдо рд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд╛рдо,

  • рднрдгреНрдбрд╛рд░рдг рдкреНрд░реЛрдлрд╛рдЗрд▓ - рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рднрдгреНрдбрд╛рд░рдг рдиреАрддрд┐ред

рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд▓рдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ:

  • рдкреНрд░рдХрд╛рд░ - рдЬрдбрд╛рди рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рдХрд╛рд░,

  • рдирд╛рдо - VM рд▓рд╛рдИ рдЬрдбрд╛рди рдЧрд░реНрди рдХреБрди рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ,

  • isprimary - рдкреНрд░рд╛рдердорд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдПрдбрд╛рдкреНрдЯрд░,

  • ipallocation_mode тАФ MANUAL / DHCP / POOL рдареЗрдЧрд╛рдирд╛ рдЖрд╡рдВрдЯрди рдореЛрдб,

  • ip - рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд▓рд╛рдЧрд┐ IP рдареЗрдЧрд╛рдирд╛, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред

override_template_disk block:

  • sizeinmb тАФ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдмреБрдЯ рдбрд┐рд╕реНрдХ рдЖрдХрд╛рд░

  • рднрдгреНрдбрд╛рд░рдг_рдкреНрд░реЛрдлрд╛рдЗрд▓ - рдбрд┐рд╕реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рднрдгреНрдбрд╛рд░рдг рдиреАрддрд┐

Nextcloud рдлрд╛рдЗрд▓ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд╡рд┐рд╡рд░рдгрдХреЛ рд╕рд╛рде рджреЛрд╕реНрд░реЛ VM рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ

resource "vcd_vapp_vm" "nextcloud" {

vapp_name = vcd_vapp.vapp.name

name = "nextcloud"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_nextcloud

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "32768"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

resource "vcd_vm_internal_disk" "disk1" {

vapp_name = vcd_vapp.vapp.name

vm_name = "nextcloud"

bus_type = "paravirtual"

size_in_mb = "102400"

bus_number = 0

unit_number = 1

storage_profile = var.vcd_org_hdd_sp

allow_vm_reboot = true

depends_on = [ vcd_vapp_vm.nextcloud ]

}

vcdvminternal_disk рдЦрдгреНрдбрдорд╛ рд╣рд╛рдореА рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ рдЬреЛрдбрд┐рдПрдХреЛ рдирдпрд╛рдБ рднрд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХрдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред

vcdvminternaldisk рдмреНрд▓рдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:

  • bustype - рдбрд┐рд╕реНрдХ рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдХрд╛рд░

  • sizeinmb - рдбрд┐рд╕реНрдХ рдЖрдХрд╛рд░

  • busnumber / unitnumber - рдПрдбрд╛рдкреНрдЯрд░ рдорд╛ рдЬрдбрд╛рди рд╕реНрдерд╛рди

  • рднрдгреНрдбрд╛рд░рдг_рдкреНрд░реЛрдлрд╛рдЗрд▓ - рдбрд┐рд╕реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рднрдгреНрдбрд╛рд░рдг рдиреАрддрд┐

Bitrix рдорд╛ рдирд╡реАрдирддрдо VM рд╡рд░реНрдгрди рдЧрд░реМрдВ

resource "vcd_vapp_vm" "bitrix" {

vapp_name = vcd_vapp.vapp.name

name = "bitrix"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_bitrix

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "81920"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

OS рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджреИ рд░ рдердк рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рдиреЗрдЯрд╡рд░реНрдХ рддрдпрд╛рд░ рдЫ, рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред рд╣рд╛рдореНрд░реЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдЖрдпрд╛рдд рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╣рд╛рдореА рдкреНрд░реЛрднрд┐рдЬрдирд░ рдмреНрд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░ рдЬрд╡рд╛рдлрджреЗрд╣реА рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рд╛рд╡рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

рдУрдПрд╕ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗ рд░ рдкреНрд░реЛрднрд┐рдЬрдирд░ рдмреНрд▓рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CMS Bitrix рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╕рд░реА рдЪрд▓рд╛рдЙрдиреЗ рднрдиреЗрд░ рд╣реЗрд░реМрдВред

рдкрд╣рд┐рд▓реЗ, CentOS рдЕрдкрдбреЗрдЯ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реМрдВред

resource "null_resource" "nginx_update_install" {

provisioner "remote-exec" {

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.nginx.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58301"

timeout = "30s"

}

inline = [

"yum -y update && yum -y upgrade",

"yum -y install wget nano epel-release net-tools unzip zip" ]

}

}

}

рдЕрд╡рдпрд╡рд╣рд░реВрдХреЛ рдкрджрдирд╛рдо:

  • provisioner "remote-exec" - рдЯрд╛рдврд╛рдХреЛ рдкреНрд░рд╛рд╡рдзрд╛рди рдмреНрд▓рдХ рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН

  • рдЬрдбрд╛рди рдмреНрд▓рдХрдорд╛ рд╣рд╛рдореА рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдХрд╛рд░ рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ:

  • рдкреНрд░рдХрд╛рд░ - рдкреНрд░реЛрдЯреЛрдХрд▓, рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рдорд╛ SSH;

  • рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ - рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо;

  • рдкрд╛рд╕рд╡рд░реНрдб - рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдбред рд╣рд╛рдореНрд░реЛ рдХреЗрд╕рдорд╛, рд╣рд╛рдореА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ vcdvappvm.nginx.customization[0].admin_password рдорд╛ рджреЗрдЦрд╛рдЙрдБрдЫреМрдВ, рдЬрд╕рд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдкрдиреНрди рдкрд╛рд╕рд╡рд░реНрдб рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫред

  • рд╣реЛрд╕реНрдЯ - рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рд╣реНрдп рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛;

  • рдкреЛрд░реНрдЯ - рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрд░реНрдЯ, рдЬреБрди рдкрд╣рд┐рд▓реЗ DNAT рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ;

  • рдЗрдирд▓рд╛рдЗрди - рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░рд┐рдиреЗ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕ рдЦрдгреНрдбрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░рд┐рдиреЗрдЫред

рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛, 1C-Bitrix рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдирд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реМрдВред рдпреЛрдЬрдирд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░рд┐рдгрд╛рдордХреЛ рдЖрдЙрдЯрдкреБрдЯ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореА рдмреНрд▓рдХ рд╡рд░реНрдгрди:

1C-Bitrix рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рд╡рд░реНрдгрди рдЧрд░реМрдВред

provisioner "file" {

source = "prepare.sh"

destination = "/tmp/prepare.sh"

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.nginx.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58301"

timeout = "30s"

}

}

provisioner "remote-exec" {

inline = [

"chmod +x /tmp/prepare.sh", "./tmp/prepare.sh"

]

}

рд░ рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ Bitrix рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред

1C-Bitrix рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред

resource "null_resource" "install_update_bitrix" {

provisioner "remote-exec" {

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.bitrix.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58302"

timeout = "60s"

}

inline = [

"yum -y update && yum -y upgrade",

"yum -y install wget nano epel-release net-tools unzip zip",

"wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh -O /tmp/bitrix-env.sh",

"chmod +x /tmp/bitrix-env.sh",

"/tmp/bitrix-env.sh"

]

}

}

рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг! рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ SELinux рд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрднрдПрди рднрдиреЗ рд▓рд┐рдкрд┐рд▓реЗ рдХрд╛рдо рдирдЧрд░реНрди рд╕рдХреНрдЫ! рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ bitrix-env.sh рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CMS 1C-Bitrix рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╡рд┐рд╕реНрддреГрдд рд▓реЗрдЦ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, oo рддрдкрд╛рдИрдВ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧ рд▓реЗрдЦ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН.

3. рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдг

Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗрдореЛрдбреНрдпреБрд▓ рд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрджреИ

рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдПрдХ рд╕рд╛рдзрд╛рд░рдг "рдЬреЗрдиреНрдЯрд▓рдореНрдпрд╛рди рдХрд┐рдЯ" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ: Windows 10 OS рднрдПрдХреЛ рд▓реНрдпрд╛рдкрдЯрдк рд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрдмрд╛рдЯ рд╡рд┐рддрд░рдг рдХрд┐рдЯ terraform.ioред рдЕрдирдкреНрдпрд╛рдХ рдЧрд░реМрдВ рд░ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реБрд░реБ рдЧрд░реМрдВ: terraform.exe init

рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд░ рд╕рдЮреНрдЬрд╛рд▓ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд╡рд░реНрдгрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдЬрд╣рд╛рдБ рд╣рд╛рдореА рдХреЗ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗрдЫ рд░ рдХрд╕рд░реА рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЬреЛрдбрд┐рдиреЗрдЫ рднрдиреЗрд░ рджреЗрдЦреНрди рд╕рдХреНрдЫреМрдВред

  1. рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН - terraform plan -var-file=vcd.tfvars.

  2. рдирддрд┐рдЬрд╛ рдкрд╛рдЙрдБрдЫреМрдВ - Plan: 16 to add, 0 to change, 0 to destroy. рдЕрд░реНрдерд╛рддреН рдпреЛ рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ резрем рд╡рдЯрд╛ рд╢реНрд░реЛрддрд╣рд░реБ рд╕реГрдЬрдирд╛ рд╣реБрдиреЗрдЫрдиреН ред

  3. рд╣рд╛рдореА рдХрдорд╛рдгреНрдбрдорд╛ рдпреЛрдЬрдирд╛ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ - terraform.exe apply -var-file=vcd.tfvars.

рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреЗрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реЗрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░реЛрднрд┐рдЬрдирд░ рдЦрдгреНрдб рднрд┐рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреЗрдЫ - OS рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдиреЗрдЫ рд░ CMS Bitrix рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдиреЗрдЫред

рдЬрдбрд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ

рдпреЛрдЬрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрдкрдЫрд┐, рд╣рд╛рдореА рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рда рдлрд╛рд░рдордорд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ, рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдирд┐рдореНрди рд░реВрдкрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рдЦрдгреНрдб рдврд╛рдБрдЪрд╛ рдЧрд░реНрдиреЗрдЫреМрдВ:

output "nginxpassword" {

 value = vcdvappvm.nginx.customization[0].adminpassword

}

рд░ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдмрддрд╛рдЙрдБрдЫ:

Outputs: nginx_password = F#4u8!!N

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдердк рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рд░ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рднрдПрдХрд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдкрд╛рдЙрдБрдЫреМрдВред рд╕рдмреИ рддрдпрд╛рд░ рдЫ!

рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдЫ рднрдиреЗ рдХреЗ рд╣реБрдиреНрдЫ?

рей.резред рдЕрд╡рд╕реНрдерд┐рдд рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд╕рд╛рде рдЯреЗрд░рд╛рдлрд╛рд░реНрдо рдХрд╛рдо рдЧрд░реНрджреИ

рдпреЛ рд╕рд░рд▓ рдЫ, рддрдкрд╛рдИрд▓реЗ рд╣рд╛рд▓рдХреЛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ vApp рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЖрдпрд╛рдд рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрдпрд╛рдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

VAPP рд╕реНрд░реЛрдд рд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реМрдВред

resource "vcd_vapp" "Monitoring" {

name = "Monitoring"

org = "mClouds"

vdc = "mClouds"

}

resource "vcd_vapp_vm" "Zabbix" {

name = "Zabbix"

org = "mClouds"

vdc = "mClouds"

vapp = "Monitoring"

}

рдЕрд░реНрдХреЛ рдЪрд░рдг рдврд╛рдБрдЪрд╛рдорд╛ vApp рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрди рд╣реЛ vcdvapp.<vApp> <org>.<orgvdc>.<vApp>рдХрд╣рд╛рдБ:

  • vApp - vApp рдирд╛рдо;

  • org тАФ рд╕рдВрд╕реНрдерд╛рдХреЛ рдирд╛рдо;

  • org_vdc тАФ рднрд░реНрдЪреБрдЕрд▓ рдбрд╛рдЯрд╛ рдХреЗрдиреНрджреНрд░рдХреЛ рдирд╛рдоред

Terraform рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗVAPP рд╕реНрд░реЛрдд рдЧреБрдгрд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрджреИ

рдврд╛рдБрдЪрд╛рдорд╛ VM рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реМрдВ: vcdvappvm.<VM> <org>.<orgvdc>.<vApp>.<VM>, рдЬрд╕рдорд╛:

  • VM - VM рдирд╛рдо;

  • vApp - vApp рдирд╛рдо;

  • org тАФ рд╕рдВрд╕реНрдерд╛рдХреЛ рдирд╛рдо;

  • orgvdc рднрд░реНрдЪреБрдЕрд▓ рдбрд╛рдЯрд╛ рдХреЗрдиреНрджреНрд░рдХреЛ рдирд╛рдо рд╣реЛред

рдЖрдпрд╛рдд рд╕рдлрд▓ рднрдпреЛ

C:UsersMikhailDesktopterraform>terraform import vcd_vapp_vm.Zabbix mClouds.mClouds.Monitoring.Zabbix

vcd_vapp_vm.Zabbix: Importing from ID "mClouds.mClouds.Monitoring.Zabbix"...

vcd_vapp_vm.Zabbix: Import prepared!

Prepared vcd_vapp_vm for import

vcd_vapp_vm.Zabbix: Refreshing state... [id=urn:vcloud:vm:778f4a89-1c8d-45b9-9d94-0472a71c4d1f]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

рдЕрдм рд╣рд╛рдореА рдирдпрд╛рдБ рдЖрдпрд╛рддрд┐рдд рд╕реНрд░реЛрдд рд╣реЗрд░реНрди рд╕рдХреНрдЫреМрдВ:

рдЖрдпрд╛рддрд┐рдд рд╕реНрд░реЛрдд

> terraform show

...

# vcd_vapp.Monitoring:

resource "vcd_vapp" "Monitoring" {

guest_properties = {}

href = "https://vcloud.mclouds.ru/api/vApp/vapp-fe5db285-a4af-47c4-93e8-55df92f006ec"

id = "urn:vcloud:vapp:fe5db285-a4af-47c4-93e8-55df92f006ec"

ip = "allocated"

metadata = {}

name = "Monitoring"

org = "mClouds"

status = 4

status_text = "POWERED_ON"

vdc = "mClouds"

}

тАж

# vcd_vapp_vm.Zabbix:

resource "vcd_vapp_vm" "Zabbix" {

computer_name = "Zabbix"

cpu_cores = 1

cpus = 2

expose_hardware_virtualization = false

guest_properties = {}

hardware_version = "vmx-14"

href = "https://vcloud.mclouds.ru/api/vApp/vm-778f4a89-1c8d-45b9-9d94-0472a71c4d1f"

id = "urn:vcloud:vm:778f4a89-1c8d-45b9-9d94-0472a71c4d1f"

internal_disk = [

{

bus_number = 0

bus_type = "paravirtual"

disk_id = "2000"

iops = 0

size_in_mb = 122880

storage_profile = "Gold Storage Policy"

thin_provisioned = true

unit_number = 0

},

]

memory = 8192

metadata = {}

name = "Zabbix"

org = "mClouds"

os_type = "centos8_64Guest"

storage_profile = "Gold Storage Policy"

vapp_name = "Monitoring"

vdc = "mClouds"

customization {

allow_local_admin_password = true

auto_generate_password = true

change_sid = false

enabled = false

force = false

join_domain = false

join_org_domain = false

must_change_password_on_first_login = false

number_of_auto_logons = 0

}

network {

adapter_type = "VMXNET3"

ip_allocation_mode = "DHCP"

is_primary = true

mac = "00:50:56:07:01:b1"

name = "MCLOUDS-LAN01"

type = "org"

}

}

рдЕрдм рд╣рд╛рдореАрд▓реЗ рдкрдХреНрдХреИ рдкрдирд┐ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВ - рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ (рдЕрд╡рд╕реНрдерд┐рдд рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдЖрдпрд╛рдд) рдкреВрд░рд╛ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВ рд░ рдЯреЗрд░рд╛рдлрд░реНрдорд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рдмреИ рдореБрдЦреНрдп рдмреБрдБрджрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реЗрдХрд╛ рдЫреМрдВред 

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

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

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

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