เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚

เช† เชฒเซ‡เช–เชฎเชพเช‚ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเชถเซเช‚ เช•เซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชถเซเช‚ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เช†เชชเชฃเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชชเชฃ เชฒเซ‹เชจเซเชš เช•เชฐเซ€เชถเซเช‚. VMware เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ โ€” เช…เชฎเซ‡ เชตเชฟเชตเชฟเชง เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เชคเซเชฐเชฃ VM เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€เชถเซเช‚: เชชเซเชฐเซ‹เช•เซเชธเซ€, เชซเชพเช‡เชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœ เช…เชจเซ‡ CMS.

เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เช…เชจเซ‡ เชคเซเชฐเชฃ เชคเชฌเช•เซเช•เชพเชฎเชพเช‚:

1. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ - เชตเชฐเซเชฃเชจ, เชซเชพเชฏเชฆเชพ เช…เชจเซ‡ เช˜เชŸเช•เซ‹

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช เช•เซ‹เชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ IaC (เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ-เชเช-เช•เซ‹เชก) เชธเชพเชงเชจ เช›เซ‡.

เช…เชฎเซ‡ เชŸเซ‚เชฒ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเชพ เช˜เชฃเชพ เชซเชพเชฏเชฆเชพ เชจเซ‹เช‚เชงเซเชฏเชพ เช›เซ‡:

  • เชจเชตเชพ เชญเชพเชกเซ‚เชคเซ‹เชจเซ€ เชœเชฎเชพเชตเชŸเชจเซ€ เชเชกเชช (เช•เชธเซเชŸเชฎ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชตเชพเชคเชพเชตเชฐเชฃ). เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชตเชงเซ เชจเชตเชพ เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธ เช›เซ‡, เชตเชงเซ "เช•เซเชฒเชฟเช•เซ‹" เชคเช•เชจเซ€เช•เซ€ เชธเชชเซ‹เชฐเซเชŸ เชธเซเชŸเชพเชซเชจเซ‡ เชจเชตเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชŸเซ‡เช•เซเชจเชฟเช•เชฒ เชธเชชเซ‹เชฐเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เชตเช—เชฐ เช…เชฅเชตเชพ เชฎเชถเซ€เชจเชจเซ‡ เชœ เชฌเช‚เชง เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชฆเชฒเซ€ เชถเช•เซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, OS เชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชฌเช‚เชง เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชกเชฟเชธเซเช• เชชเชพเชฐเซเชŸเซ€เชถเชจ เชตเชงเชพเชฐเชตเซเช‚).

  • เชธเช•เซเชฐเชฟเชฏเช•เชฐเชฃ เชฏเซ‹เชœเชจเชพเชจเซ€ เชเชŸเชชเชŸ เชšเช•เชพเชธเชฃเซ€ เชจเชตเชพ เชญเชพเชกเซ‚เชค. เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช•เซ‹เชกเชจเชพ เชตเชฐเซเชฃเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชคเชฐเชค เชœ เชคเชชเชพเชธ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เชถเซเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เช…เชจเซ‡ เช•เชฏเชพ เช•เซเชฐเชฎเชฎเชพเช‚, เชคเซ‡เชฎเชœ เช† เช…เชฅเชตเชพ เชคเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช…เชฅเชตเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‹เชกเชพเชฃเซ‹ เชธเชพเชฅเซ‡เชจเซเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชจเซ‡เชŸเชตเชฐเซเช• เช•เชˆ เช…เช‚เชคเชฟเชฎ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชนเชถเซ‡.

  • เชธเซŒเชฅเซ€ เชตเชงเซ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เช•เซเชฒเชพเช‰เชก เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ. เชคเชฎเซ‡ เชธเชพเชงเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชเชฎเซ‡เชเซ‹เชจ เช…เชจเซ‡ เช—เซ‚เช—เชฒ เช•เซเชฒเชพเช‰เชกเชฅเซ€, VMware vCloud เชกเชฟเชฐเซ‡เช•เซเชŸเชฐ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช–เชพเชจเช—เซ€ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ, IaaS, SaaS เช…เชจเซ‡ PaaS เชธเซ‹เชฒเซเชฏเซเชถเชจเซเชธเชฎเชพเช‚ เชธเซ‡เชตเชพเช“ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

  • เชฌเชนเซเชตเชฟเชง เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพเช“เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเซ‹ เช…เชจเซ‡ เช•เซเชฒเชพเช‰เชก เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพ, เชจเชฟเชฆเชพเชจ เช…เชจเซ‡ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชœ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฆเซ‹เชท เชธเชนเชฟเชทเซเชฃเซเชคเชพ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซ€ เชตเชšเซเชšเซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชตเชฟเชคเชฐเชฃ เช•เชฐเซ‹.

  • เชกเซ‡เชฎเซ‹ เชธเซเชŸเซ‡เชจเซเชก เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชณ เช‰เชชเชฏเซ‹เช— เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชชเชฐเซ€เช•เซเชทเชฃ เช…เชจเซ‡ เชกเซ€เชฌเช—เซ€เช‚เช— เชฎเชพเชŸเซ‡. เชคเชฎเซ‡ เชŸเซ‡เชธเซเชŸเชฟเช‚เช— เชกเชฟเชชเชพเชฐเซเชŸเชฎเซ‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชจเซเชก เชฌเชจเชพเชตเซ€ เช…เชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชธเชฎเชพเช‚เชคเชฐเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชŸเซ‡เชธเซเชŸ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐ, เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชฐเชฟเชธเซ‹เชฐเซเชธ เชฌเชฟเชฒเซเชก เชชเซเชฒเชพเชจ เชฌเชจเชพเชตเซ€เชจเซ‡ เชคเชฐเชค เชœ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชฌเชฆเชฒเซ€ เช…เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ€ เชถเช•เซ‹ เช›เซ‹.

"เชŸเซ‡เชฐเซ‡เชฐเชฟเชฏเชฎ" เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ

เช…เชฎเซ‡ เชŸเซเชฒเชจเชพ เชซเชพเชฏเชฆเชพเช“ เชตเชฟเชถเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚ เชตเชพเชค เช•เชฐเซ€, เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เชคเซ‡เชจเชพ เช˜เชŸเช•เซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเซ€เชค เช•เชฐเซ€เช

เชชเซเชฐเชฆเชพเชคเชพเช“. 

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚, เชฒเช—เชญเช— เช•เซ‹เชˆเชชเชฃ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชธเช‚เชธเชพเชงเชจ เชคเชฐเซ€เช•เซ‡ เชฐเชœเซ‚ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชธเช‚เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ API เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชตเชšเซเชšเซ‡เชจเซเช‚ เชœเซ‹เชกเชพเชฃ เชชเซเชฐเชฆเชพเชคเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ เช…เช‚เชฆเชฐ เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, Azure เช…เชฅเชตเชพ VMware vCloud Director.

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡, เชคเชฎเซ‡ เชตเชฟเชตเชฟเชง เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เชตเชฟเชตเชฟเชง เชชเซเชฐเชฆเชพเชคเชพเช“ เชธเชพเชฅเซ‡ เชตเชพเชฐเซเชคเชพเชฒเชพเชช เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชธเช‚เชธเชพเชงเชจเซ‹ (เชธเช‚เชธเชพเชงเชจ เชตเชฐเซเชฃเชจ).

เชธเช‚เชธเชพเชงเชจเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เชคเชฎเชจเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เช˜เชŸเช•เซ‹เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เช…เชฅเชตเชพ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ. 

เชคเชฎเซ‡ VMware vCloud เชกเชฟเชฐเซ‡เช•เซเชŸเชฐ เชชเซเชฐเชฆเชพเชคเชพ เชฎเชพเชŸเซ‡ เชœเชพเชคเซ‡ เชธเช‚เชธเชพเชงเชจ เชตเชฐเซเชฃเชจ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ vCloud เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เช•เซ‹เชˆเชชเชฃ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช† เชตเชฐเซเชฃเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเชฎเชพเชฐเซ‡ เชฎเชพเชคเซเชฐ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชชเซเชฐเชฆเชพเชคเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เช•เชจเซ‡เช•เซเชถเชจ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

เชœเซ‹เช—เชตเชพเชˆเช“.

เช† เช˜เชŸเช• เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชฌเชจเชพเชตเซเชฏเชพ เชชเช›เซ€ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเชพ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เช…เชจเซ‡ เชœเชพเชณเชตเชฃเซ€ เชฎเชพเชŸเซ‡ เช‘เชชเชฐเซ‡เชถเชจ เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชเช•เชตเชพเชฐ เชคเชฎเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฐเชฟเชธเซ‹เชฐเซเชธ เชฌเชจเชพเชตเซ€ เชฒเซ‹ เชคเซ‡ เชชเช›เซ€, เชคเชฎเซ‡ SSH เชฆเซเชตเชพเชฐเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ, เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพ เช…เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเซ‹เช—เชตเชพเชˆเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. 

เช‡เชจเชชเซเชŸ เช…เชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เชšเชฒเซ‹.

เช‡เชจเชชเซเชŸ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ - เช•เซ‹เชˆเชชเชฃ เชฌเซเชฒเซ‹เช• เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เช‡เชจเชชเซเชŸ เชšเชฒ. 

เช†เช‰เชŸเชชเซเชŸ เชšเชฒเซ‹ เชคเชฎเชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเซเชฏเชพ เชชเช›เซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชฌเชšเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เช…เชจเซ‡ เช…เชจเซเชฏ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชฎเชพเช‚ เช‡เชจเชชเซเชŸ เชšเชฒ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเซ‹เชตเชฟเชเชจเชฐเซเชธ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚.

เชฐเชพเชœเซเชฏเซ‹.

เชธเซเชŸเซ‡เชŸเซเชธ เชซเชพเช‡เชฒเซ‹ เชชเซเชฐเชฆเชพเชคเชพ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช—เซ‹เช เชตเชฃเซ€ เชตเชฟเชถเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฅเชฎ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชตเชฟเชถเซ‡ เช•เซ‹เชˆ เชฎเชพเชนเชฟเชคเซ€ เชนเซ‹เชคเซ€ เชจเชฅเซ€ เช…เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เช•เชพเชฎเช—เซ€เชฐเซ€ เชชเชนเซ‡เชฒเชพเช‚, เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฐเชพเชœเซเชฏเชจเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชตเชฐเซเชฃเชตเซ‡เชฒ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเชพเชฅเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡.

เชฐเชพเชœเซเชฏเซ‹เชจเซ‹ เชฎเซเช–เซเชฏ เช‰เชฆเซเชฆเซ‡เชถเซเชฏ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชธเชฐเซเชœเชจ เช…เชจเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธเชจเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเชจเชพเชตเซ‡เชฒเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธเชจเชพ เชธเชฎเซ‚เชนเชจเซ‡ เชธเชพเชšเชตเชตเชพเชจเซ‹ เช›เซ‡.

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เชฐเชพเชœเซเชฏเชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชธเซเชฅเชพเชจเชฟเช• terraform.tfstate เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹, เชŸเซ€เชฎ เชตเชฐเซเช• เชฎเชพเชŸเซ‡ เชฐเชฟเชฎเซ‹เชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชถเช•เซเชฏ เช›เซ‡.

เชคเชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ€ เชฎเชฆเชฆ เชตเชฟเชจเชพ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชฌเชจเชพเชตเซ‡เชฒเชพ เช…เชจเซเชฏ เชธเช‚เชธเชพเชงเชจเซ‹ เชธเชพเชฅเซ‡ เชตเชงเซ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชฐเชพเชœเซเชฏเชฎเชพเช‚ เช†เชฏเชพเชค เชชเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.  

2. เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชจเชฟเชฐเซเชฎเชพเชฃ

เช˜เชŸเช•เซ‹เชจเซ‡ เช…เชฒเช— เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชนเชตเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชฎเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชคเซเชฐเชฃ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชธเชพเชฅเซ‡เชจเซเช‚ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฌเชจเชพเชตเซ€เชถเซเช‚. เชชเซเชฐเชฅเชฎ nginx เชชเซเชฐเซ‹เช•เซเชธเซ€ เชธเชฐเซเชตเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡, เชฌเซ€เชœเซเช‚ เชจเซ‡เช•เซเชธเซเชŸเช•เซเชฒเชพเช‰เชก เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชซเชพเช‡เชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เชคเซเชฐเซ€เชœเซเช‚ CMS Bitrix เชธเชพเชฅเซ‡.

เช…เชฎเซ‡ เช•เซ‹เชก เชฒเช–เซ€เชถเซเช‚ เช…เชจเซ‡ เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเซ€เชถเซเช‚ VMware vCloud เชกเชฟเชฐเซ‡เช•เซเชŸเชฐ เชชเชฐ เชตเชพเชฆเชณเซ‹. เช…เชฎเชพเชฐเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชธเช‚เชธเซเชฅเชพ เชธเช‚เชšเชพเชฒเช• เช…เชงเชฟเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชเช• เชเช•เชพเช‰เชจเซเชŸ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เช…เชจเซเชฏ VMware เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชธเชฎเชพเชจ เช…เชงเชฟเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชเช•เชพเช‰เชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชกเชจเซ‡ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเชพเช“!

เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชจเชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชเช• เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชฌเชจเชพเชตเซ€เช เชœเซ‡เชฎเชพเช‚ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชคเซ€ เชซเชพเชˆเชฒเซ‹ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

mkdir project01

เช†เช—เชณ, เช…เชฎเซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช˜เชŸเช•เซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เช เช›เซ€เช. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชซเชพเชˆเชฒเซ‹เชฎเชพเช‚เชจเชพ เชตเชฐเซเชฃเชจเชจเชพ เช†เชงเชพเชฐเซ‡ เชธเช‚เชฌเช‚เชงเซ‹ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชซเชพเชˆเชฒเซ‹เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡. เชตเชฐเซเชฃเชตเซ‡เชฒ เชฌเซเชฒเซ‹เช•เชจเชพ เชนเซ‡เชคเซเชจเชพ เช†เชงเชพเชฐเซ‡ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชจเชพเชฎ เช†เชชเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, network.tf - เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡.

เช…เชฎเชพเชฐเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเชพ เช˜เชŸเช•เซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเซ€ เช›เซ‡:

เชซเชพเช‡เชฒเซ‹เชจเซ€ เชธเซ‚เชšเชฟ.

main.tf - เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชฎเชพเชŸเซ‡ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ - เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹, เชตเชฐเซเชšเซเชฏเซเช…เชฒ เช•เชจเซเชŸเซ‡เชจเชฐ;

network.tf - เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช…เชจเซ‡ NAT เช…เชจเซ‡ เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเชฟเชฏเชฎเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ;

variables.tf - เชšเชฒเซ‹เชจเซ€ เชฏเชพเชฆเซ€ เช•เซ‡ เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช;

vcd.tfvars - VMware vCloud เชกเชฟเชฐเซ‡เช•เซเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชšเชฒ เชฎเซ‚เชฒเซเชฏเซ‹.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชญเชพเชทเชพ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช• เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเซ‹เชตเชฟเชเชจเชฐ เชฌเซเชฒเซ‹เช•เซเชธ เชธเชฟเชตเชพเชฏ เชฌเซเชฒเซ‹เช•เชจเชพ เช•เซเชฐเชฎเชฎเชพเช‚ เช•เซ‹เชˆ เชซเชฐเช• เชชเชกเชคเซ‹ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เช† เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เช…เชฎเซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชคเซˆเชฏเชพเชฐ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเชพ เช†เชฆเซ‡เชถเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡ เช•เซเชฐเชฎเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชฌเซเชฒเซ‹เช• เชฎเชพเชณเช–เซเช‚.

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

# Block body

<IDENTIFIER> = <EXPRESSION> # Argument

}

เชฌเซเชฒเซ‹เช•เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ HCL (HashiCorp Configuration Language) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; 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 โ€” เชจเซ‡เช•เซเชธเซเชŸเช•เซเชฒเชพเช‰เชก เชธเชพเชฅเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซเช‚ 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 เชธเชฐเชจเชพเชฎเชพ เชฎเชพเชŸเซ‡ เชเช•เซเชธเซ‡เชธ เชธเซ‡เชŸ เช•เชฐเซ€เชถเซเช‚.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เช…เชฎเซ‡ 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เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เช เชœเซ‡เชฎเชพเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชธเซเชฅเชฟเชค เชนเชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เช—เซ‹เช เชตเชฃเซ€.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ

เชšเชพเชฒเซ‹ เชเช• vApp เช•เชจเซเชŸเซ‡เชจเชฐ เชฌเชจเชพเชตเซ€เช. เชœเซ‡เชฅเซ€ เช…เชฎเซ‡ เชคเชฐเชค เชœ vApp เช…เชจเซ‡ VM เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€ เชถเช•เซ€เช, เช…เชฎเซ‡ depends_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 - vApp เชจเซเช‚ เชจเชพเชฎ เช•เซ‡ เชœเซ‡เชฎเชพเช‚ เชจเชตเซเช‚ VM เช‰เชฎเซ‡เชฐเชตเซเช‚,

  • catalogname / templatename - เช•เซ‡เชŸเชฒเซ‹เช— เชจเชพเชฎ เช…เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชจเชพเชฎ,

  • เชธเซเชŸเซ‹เชฐเซ‡เชœ เชชเซเชฐเซ‹เชซเชพเช‡เชฒ - เชกเชฟเชซเซ‰เชฒเซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชจเซ€เชคเชฟ.

เชจเซ‡เชŸเชตเชฐเซเช• เชฌเซเชฒเซ‹เช• เชชเชฐเชฟเชฎเชพเชฃเซ‹:

  • เชชเซเชฐเช•เชพเชฐ - เช•เชจเซ‡เช•เซเชŸเซ‡เชก เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‹ เชชเซเชฐเช•เชพเชฐ,

  • เชจเชพเชฎ โ€” เช•เชฏเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชฅเซ‡ VM เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเซเช‚,

  • isprimary - เชชเซเชฐเชพเชฅเชฎเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชเชกเซ‡เชชเซเชŸเชฐ,

  • ipallocation_mode โ€” เชฎเซ‡เชจเซเชฏเซเช…เชฒ / DHCP / POOL เชธเชฐเชจเชพเชฎเซเช‚ เชซเชพเชณเชตเชฃเซ€ เชฎเซ‹เชก,

  • ip โ€” เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฎเชพเชŸเซ‡ IP เชธเชฐเชจเชพเชฎเซเช‚, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชœเชพเชคเซ‡ เชœ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€เชถเซเช‚.

เช“เชตเชฐเชฐเชพเช‡เชก_เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ_เชกเชฟเชธเซเช• เชฌเซเชฒเซ‹เช•:

  • sizeinmb โ€” เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฎเชพเชŸเซ‡ เชฌเซเชŸ เชกเชฟเชธเซเช• เชฎเชพเชช

  • เชธเซเชŸเซ‹เชฐเซ‡เชœ_เชชเซเชฐเซ‹เชซเชพเชˆเชฒ โ€” เชกเชฟเชธเซเช• เชฎเชพเชŸเซ‡ เชธเช‚เช—เซเชฐเชน เชจเซ€เชคเชฟ

เชšเชพเชฒเซ‹ เชจเซ‡เช•เซเชธเซเชŸเช•เซเชฒเชพเช‰เชก เชซเชพเช‡เชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเชพ เชตเชฐเซเชฃเชจ เชธเชพเชฅเซ‡ เชฌเซ€เชœเซเช‚ 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 โ€” เชกเชฟเชธเซเช•เชจเซเช‚ เช•เชฆ

  • เชฌเชธ เชจเช‚เชฌเชฐ / เชฏเซเชจเชฟเชŸ เชจเช‚เชฌเชฐ - เชเชกเซ‡เชชเซเชŸเชฐเชฎเชพเช‚ เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชพเชจ

  • เชธเซเชŸเซ‹เชฐเซ‡เชœ_เชชเซเชฐเซ‹เชซเชพเชˆเชฒ โ€” เชกเชฟเชธเซเช• เชฎเชพเชŸเซ‡ เชธเช‚เช—เซเชฐเชน เชจเซ€เชคเชฟ

เชšเชพเชฒเซ‹ 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 เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซ€

เชจเซ‡เชŸเชตเชฐเซเช• เชคเซˆเชฏเชพเชฐ เช›เซ‡, เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡. เช…เชฎเชพเชฐเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ€ เช†เชฏเชพเชค เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เช…เชฎเซ‡ เชชเซเชฐเซ‹เชตเชฟเชเชจเชฐ เชฌเซเชฒเซ‹เช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชœเชตเชพเชฌเซ€เชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช…เช—เชพเช‰เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชœเซ‹เช—เชตเชพเชˆ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ 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 เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเซ€เช เช›เซ€เช, เชœเซ‡ เชธเชฟเชธเซเชŸเชฎ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒเชพ เชชเชพเชธเชตเชฐเซเชกเชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

  • เชนเซ‹เชธเซเชŸ - เช•เชจเซ‡เช•เซเชถเชจ เชฎเชพเชŸเซ‡ เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเซเช‚;

  • เชชเซ‹เชฐเซเชŸ โ€” เชœเซ‹เชกเชพเชฃ เชฎเชพเชŸเซ‡เชจเซเช‚ เชชเซ‹เชฐเซเชŸ, เชœเซ‡ เช…เช—เชพเช‰ 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 เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเชพ เชชเชฐ เชตเชฟเช—เชคเชตเชพเชฐ เชฒเซ‡เช–เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชฒเซ‡เช–เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

3. เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช†เชฐเช‚เชญ

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเช—เชˆเชจเซ‹ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชเช• เชธเชฐเชณ "เชœเชจเซเชŸเชฒเชฎเซ‡เชจ เช•เซ€เชŸ" เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช: 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. เชเชŸเชฒเซ‡ เช•เซ‡, เช† เชฏเซ‹เชœเชจเชพ เช…เชจเซเชธเชพเชฐ, 16 เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

  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

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเชจเซ‡ เช…เชฎเชพเชฐเชพ เช†เช—เชณเชจเชพ เช•เชพเชฎ เชฎเชพเชŸเซ‡ เช…เชชเชกเซ‡เชŸเซ‡เชก เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เชชเซเชฐเซ€-เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเชพ เชชเซ…เช•เซ‡เชœ เชธเชพเชฅเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เชเช•เซเชธเซ‡เชธ เชฎเชณเซ‡ เช›เซ‡. เชฌเชงเซเช‚ เชคเซˆเชฏเชพเชฐ เช›เซ‡!

เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚?

3.1. เชนเชพเชฒเชจเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซเช‚ เช•เชพเชฎ เช•เชฐเชตเซเช‚

เชคเซ‡ เชธเชฐเชณ เช›เซ‡, เชคเชฎเซ‡ เช†เชฏเชพเชค เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ 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 โ€” เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเชจเซเช‚ เชจเชพเชฎ.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเช‰เชก เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹