เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเจพเจฒ เจ•เจฒเจพเจ‰เจก เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเจพเจฒ เจ•เจฒเจพเจ‰เจก เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจ•เจฟ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจ•เฉ€ เจธเจผเจพเจฎเจฒ เจนเฉˆ, เจ…เจคเฉ‡ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจ†เจชเจฃเจพ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจตเฉ€ เจฒเจพเจ‚เจš เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค VMware เจจเจพเจฒ เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš โ€” เจ…เจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจคเจฟเฉฐเจจ VM เจคเจฟเจ†เจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡: เจชเฉเจฐเฉŒเจ•เจธเฉ€, เจซเจพเจˆเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ…เจคเฉ‡ CMSเฅค

เจนเจฐ เจšเฉ€เจœเจผ เจฌเจพเจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจคเจฟเฉฐเจจ เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš:

1. เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ - เจตเจฐเจฃเจจ, เจซเจพเจ‡เจฆเฉ‡ เจ…เจคเฉ‡ เจญเจพเจ—

เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจ•เฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• IaC (เจ‡เจจเจซเจฐเจพเจธเจŸเจฐเฉฑเจ•เจšเจฐ-เจเจœเจผ-เจ•เฉ‹เจก) เจŸเฉ‚เจฒ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจŸเฉ‚เจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจ•เจˆ เจซเจพเจ‡เจฆเฉ‡ เจจเฉ‹เจŸ เจ•เฉ€เจคเฉ‡ เจนเจจ:

  • เจจเจตเฉ‡เจ‚ เจ•เจฟเจฐเจพเจเจฆเจพเจฐเจพเจ‚ เจฆเฉ€ เจคเจพเจ‡เจจเจพเจคเฉ€ เจฆเฉ€ เจ—เจคเฉ€ (เจ•เจธเจŸเจฎ เจตเจฐเจšเฉเจ…เจฒ เจตเจพเจคเจพเจตเจฐเจฃ)เฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจœเจฟเฉฐเจจเฉ‡ เจœเจผเจฟเจ†เจฆเจพ เจจเจตเฉ‡เจ‚ เจ—เจพเจนเจ• เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจจเจตเฉ‡เจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจคเจ•เจจเฉ€เจ•เฉ€ เจธเจนเจพเจ‡เจคเจพ เจธเจŸเจพเจซ เจจเฉ‚เฉฐ เจ“เจจเฉ‡ เจนเฉ€ เจœเจผเจฟเจ†เจฆเจพ "เจ•เจฒเจฟเจ•" เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจฆเฉ‡ เจจเจพเจฒ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจคเจ•เจจเฉ€เจ•เฉ€ เจธเจนเจพเจ‡เจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจœเจพเจ‚ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ†เจชเจฃเฉ‡ เจ†เจช OS เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจกเจฟเจธเจ• เจญเจพเจ— เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃเจพ) เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

  • เจเจ•เจŸเฉ€เจตเฉ‡เจธเจผเจจ เจชเจฒเจพเจจ เจฆเฉ€ เจคเฉเจฐเฉฐเจค เจคเจธเจฆเฉ€เจ• เจจเจตเจพเจ‚ เจ•เจฟเจฐเจพเจเจฆเจพเจฐเฅค เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจตเจฐเจฃเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เฉ€ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ•เจฟเจธ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš, เจจเจพเจฒ เจนเฉ€ เจ‡เจน เจœเจพเจ‚ เจ‰เจน เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจœเจพเจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจตเจพเจฒเจพ เจตเจฐเจšเฉเจ…เจฒ เจจเฉˆเจŸเจตเจฐเจ• เจ•เจฟเจธ เจ…เฉฐเจคเจฎ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

  • เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจ•เจฒเจพเจ‰เจก เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเฅค เจคเฉเจธเฉ€เจ‚ เจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ Amazon เจ…เจคเฉ‡ Google Cloud เจคเฉ‹เจ‚, VMware vCloud เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจจเจฟเฉฑเจœเฉ€ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจคเฉฑเจ•, IaaS, SaaS เจ…เจคเฉ‡ PaaS เจนเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

  • เจฎเจฒเจŸเฉ€เจชเจฒ เจ•เจฒเจพเจ‰เจก เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ•เจฒเจพเจ‰เจก เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ, เจจเจฟเจฆเจพเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจตเฉฐเจกเฉ‹เฅค

  • เจกเฉˆเจฎเฉ‹ เจธเจŸเฉˆเจ‚เจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจตเจฐเจคเฉ‹เจ‚ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจ…เจคเฉ‡ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจฒเจˆเฅค เจคเฉเจธเฉ€เจ‚ เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจตเจฟเจญเจพเจ— เจฒเจˆ เจธเจŸเฉˆเจ‚เจก เจฌเจฃเจพ เจ…เจคเฉ‡ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจพเจคเจพเจตเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจŸเฉˆเจธเจŸ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ, เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจฌเจฟเจฒเจก เจชเจฒเจพเจจ เจฌเจฃเจพ เจ•เฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฌเจฆเจฒ เจ…เจคเฉ‡ เจฎเจฟเจŸเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

"เจŸเฉ‡เจฐเฉ‡เจฐเฉ€เจ…เจฎ" เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ

เจ…เจธเฉ€เจ‚ เจŸเฉ‚เจฒ เจฆเฉ‡ เจซเจพเจ‡เจฆเจฟเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€, เจนเฉเจฃ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ

เจชเฉเจฐเจฆเจพเจคเจพเฅค 

เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš, เจฒเจ—เจญเจ— เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจตเจœเฉ‹เจ‚ เจฆเจฐเจธเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ API เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจตเจฟเจšเจ•เจพเจฐ เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉเจฐเจฆเจพเจคเจพ เจฎเจพเจกเจฟเจŠเจฒเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, Azure เจœเจพเจ‚ VMware vCloud เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฅค

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ 'เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจจเจพเจฒ เจ—เฉฑเจฒเจฌเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจตเจธเฉ€เจฒเฉ‡ (เจธเจฐเฉ‹เจค เจฆเจพ เจตเจฐเจฃเจจ)เฅค

เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเจพ เจตเฉ‡เจฐเจตเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจญเจพเจ—เจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจœเจพเจ‚ เจจเฉˆเฉฑเจŸเจตเจฐเจ•เฅค 

เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช VMware vCloud เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐ เจชเฉเจฐเจฆเจพเจคเจพ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจตเฉ‡เจฐเจตเจพ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ vCloud เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพ เจจเจพเจฒ เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เจธ เจตเจฐเจฃเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพ เจฒเจˆ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจ…เจคเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ

เจชเฉเจฐเฉ‹เจตเฉ€เจœเจผเจจเจฐเฅค

เจ‡เจน เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฅเจพเจชเจจเจพ เจ…เจคเฉ‡ เจฐเฉฑเจ–-เจฐเจ–เจพเจ… เจฒเจˆ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจธเจฐเฉ‹เจค เจฌเจฃเจพ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ SSH เจฆเฉเจ†เจฐเจพ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจœเฉเฉœเจจ เจฒเจˆ, เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจชเฉเจฐเฉ‹เจตเฉ€เจœเจผเจจเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค 

เจ‡เจจเจชเฉเจŸ เจ…เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเฅค

เจ‡เจจเจชเฉเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ - เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฌเจฒเจพเจ• เจ•เจฟเจธเจฎ เจฒเจˆ เจ‡เจจเจชเฉเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเฅค 

เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจฎเฉ‹เจกเฉ€เจŠเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจจเจชเฉเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจชเฉเจฐเฉ‹เจตเฉ€เจœเจผเจจเจฐ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจšเฅค

เจฐเจพเจœ.

เจธเจŸเฉ‡เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจชเฉเจฐเจฆเจพเจคเจพ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจœเจฆเฉ‹เจ‚ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจฌเจพเจฐเฉ‡ เจ•เฉ‹เจˆ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจพเจฐเจตเจพเจˆ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจŸเฉ‡เจฐเจพเจซเจพเจฐเจฎ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจตเจฐเจฃเจฟเจค เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจ…เจธเจฒ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจฐเจพเจœ เจจเฉ‚เฉฐ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฐเจพเจœเจพเจ‚ เจฆเจพ เจฎเฉเฉฑเจ– เจ‰เจฆเฉ‡เจธเจผ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจตเจพเจฐ-เจตเจพเจฐ เจฐเจšเจจเจพ เจ…เจคเฉ‡ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฒเจˆ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจตเจธเจคเฉ‚เจ†เจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฃเจพเจ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจฌเจšเจพเจ‰เจฃเจพ เจนเฉˆเฅค

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฐเจพเจœ เจฆเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจฅเจพเจจเจ• terraform.tfstate เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจชเจฐ เจœเฉ‡เจ•เจฐ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจŸเฉ€เจฎ เจฆเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจฐเจฟเจฎเฉ‹เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจนเฉ‹เจฐ เจ—เฉฑเจฒเจฌเจพเจค เจ•เจฐเจจ เจฒเจˆ เจฐเจพเจœ เจตเจฟเฉฑเจš เจ†เจฏเจพเจค เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจฆเฉ€ เจฎเจฆเจฆ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฌเจฃเจพเจ เจ—เจ เจธเจจเฅค  

2. เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจธเจฟเจฐเจœเจฃเจพ

เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ›เจพเจ‚เจŸ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจนเฉเจฃ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจธเฉ€เจ‚ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจคเจฟเฉฐเจจ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเจพเจฒ เจ‡เฉฑเจ• เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจชเจนเจฟเจฒเจพ nginx เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจธเจฐเจตเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉˆ, เจฆเฉ‚เจœเจพ Nextcloud 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจซเจพเจˆเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเจพเจฒ เจ…เจคเฉ‡ เจคเฉ€เจœเจพ 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 เจชเจคเจพ: เจฌเจฟเจŸเจฐเจฟเจ•เจธ,

  • 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 เจชเจคเฉ‡ เจฒเจˆ เจชเจนเฉเฉฐเจš เจธเฉˆเจŸ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเจพเจฒ เจ•เจฒเจพเจ‰เจก เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจเจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจกเจพเจ‡เจ—เฉเจฐเจพเจฎ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ…เจธเฉ€เจ‚ 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"

]

}

เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจฌเจฟเจŸเฉเจฐเจฟเจ•เจธ เจ…เจชเจกเฉ‡เจŸ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

1C-เจฌเจฟเจŸเฉเจฐเจฟเจ•เจธ เจชเฉเจฐเฉ‹เจตเจฟเจœเจผเจจเจฟเฉฐเจ— เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃเฅค

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹