เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เชเชกเชชเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏ vm ESXi

เชฌเชงเชพเชจเซ‡ เชนเซ‡เชฒเซ‹, เชฎเชพเชฐเซเช‚ เชจเชพเชฎ เช‡เชตเชพเชจ เช›เซ‡ เช…เชจเซ‡ เชนเซเช‚ เช†เชฒเซเช•เซ‹เชนเซ‹เชฒเชฟเช• เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ (OPS) เช›เซเช‚.

เชนเซเช‚ เชคเชฎเชจเซ‡ เชœเชฃเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เชนเซเช‚ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ vCenter เชตเช—เชฐ ESXi เชชเชฐ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเซเช‚ เช›เซเช‚.

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

เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช˜เชฃเชพ เชฒเซ‹เช•เซ‹ เชœเชพเชฃเซ‡ เช›เซ‡ เช•เซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชถเซเช‚ เช›เซ‡, เช…เชจเซ‡ เช•เซ‹เชฃ เชจเชฅเซ€ เชœเชพเชฃเชคเซเช‚, เช† IasC เช•เซ‹เชจเซเชธเซ‡เชชเซเชŸ (เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ).

เชนเซเช‚ เชฎเชพเชฐเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒเชพเชˆเชเซ‡เชถเชจ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเชฐเซ€เช•เซ‡ ESXi เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚. เชคเชฆเซเชฆเชจ เชธเชฐเชณ, เช…เชจเซเช•เซ‚เชณ เช…เชจเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ.
เชนเซเช‚ เชเช• เชชเซเชฐเชถเซเชจเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚.

เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ vCenter เชธเชฐเซเชตเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เชคเซเชฏเชพเชฐเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ?

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

เช‡เชจเซเชŸเซ‡เชฒ NUC เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชธเชฐเซเชตเชฐ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡:

CPU: 2 CPUs x Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
RAM: 8Gb
HDD: 500Gb
ESXi version: ESXi-6.5.0-4564106-standard (VMware, Inc.)

เช…เชจเซ‡ เชคเซ‡เชฅเซ€, เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซเช“ เชชเซเชฐเชฅเชฎ.

เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ esxi เชธเซ‡เชŸ เช•เชฐเซ€เช, เชเชŸเชฒเซ‡ เช•เซ‡, เชซเชพเชฏเชฐเชตเซ‹เชฒ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ VNC เชชเซ‹เชฐเซเชŸ เช–เซ‹เชฒเซ‹.

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เชซเชพเช‡เชฒ เชฒเช–เชตเชพ-เชธเช‚เชฐเช•เซเชทเชฟเชค เช›เซ‡. เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฎเซ‡เชจเชฟเชชเซเชฏเซเชฒเซ‡เชถเชจเซเชธ เชนเชพเชฅ เชงเชฐเซ€เช เช›เซ€เช:

chmod 644 /etc/vmware/firewall/service.xml
chmod +t /etc/vmware/firewall/service.xml
vi /etc/vmware/firewall/service.xml

เชซเชพเช‡เชฒเชจเชพ เช…เช‚เชคเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เชฌเซเชฒเซ‹เช•เชจเซ‡ เชœเซ‹เชกเซ‹:

<service id="1000">
  <id>packer-vnc</id>
  <rule id="0000">
    <direction>inbound</direction>
    <protocol>tcp</protocol>
    <porttype>dst</porttype>
    <port>
      <begin>5900</begin>
      <end>6000</end>
    </port>
  </rule>
  <enabled>true</enabled>
  <required>true</required>
</service>

เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ‹, เชธเชพเชšเชตเซ‹. เช…เชงเชฟเช•เชพเชฐเซ‹ เชชเชพเช›เชพ เชฌเชฆเชฒเซ‹ เช…เชจเซ‡ เชธเซ‡เชตเชพ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹:

chmod 444 /etc/vmware/firewall/service.xml
esxcli network firewall refresh

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

เช†เช—เชณ, เชนเซเช‚ เชเช• เชœ เชธเชฐเซเชตเชฐ เชชเชฐ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชฎเชพเช‚ เชคเชฎเชพเชฎ เช•เชพเชฎ เช•เชฐเซ€เชถ.

เช‰เชคเซเชชเชพเชฆเชจ เชตเชฟเชถเชฟเชทเซเชŸเชคเชพเช“:

OS: Centos 7 x86_64 minimal
RAM: 1GB
HDD: 20GB
Selinux: disable
firewalld: disable

เช†เช—เชณ, เช…เชฎเชจเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡ เชชเซ‡เช•เชฐ, HashiCorp เชจเซเช‚ เช‰เชคเซเชชเชพเชฆเชจ เชชเชฃ.

"เช—เซ‹เชฒเซเชกเชจ" เช‡เชฎเซ‡เชœเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚.

yum install unzip git -y
curl -O https://releases.hashicorp.com/packer/1.5.5/packer_1.5.5_linux_amd64.zip
unzip packer_1.5.5_linux_amd64.zip -d /usr/bin && rm -rf packer_1.5.5_linux_amd64.zip
packer version
Packer v1.5.5

เชšเชพเชฒ เชชเชฐ เชชเซ‡เช•เชฐ เชธเช‚เชธเซเช•เชฐเชฃ เชญเซ‚เชฒ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ RedHat-เช†เชงเชพเชฐเชฟเชค เช เชœ เชจเชพเชฎเชจเซเช‚ เชชเซ‡เช•เซ‡เชœ เชธเชฎเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡.

which -a packer
/usr/sbin/packer

เช‰เช•เซ‡เชฒ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชธเชฟเชฎเชฒเชฟเช‚เช• เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชฅเชตเชพ เชธเช‚เชชเซ‚เชฐเซเชฃ เชชเชพเชฅเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ /usr/bin/packer.

เชนเชตเซ‡ เช†เชชเชฃเชจเซ‡ ovftool เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เชฒเชฟเช‚เช•. เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹, เชธเชฐเซเชตเชฐ เชชเชฐ เชฎเซ‚เช•เซ‹ เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

chmod +x VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle
./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle
Extracting VMware Installer...done.
You must accept the VMware OVF Tool component for Linux End User
License Agreement to continue.  Press Enter to proceed.
VMWARE END USER LICENSE AGREEMENT
Do you agree? [yes/no]:yes
The product is ready to be installed.  Press Enter to begin
installation or Ctrl-C to cancel. 
Installing VMware OVF Tool component for Linux 4.4.0
    Configuring...
[######################################################################] 100%
Installation was successful.

เช…เชฎเซ‡ เช†เช—เชณ เชตเชงเซ€เช เช›เซ€เช.

เช—เซ€เชฅ เชชเชฐ เชฎเซ‡เช‚ เชคเชฎเชจเซ‡ เชœเซ‹เชˆเชคเซ€ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เช›เซ‡.

git clone https://github.com/letnab/create-and-deploy-esxi.git && cd create-and-deploy-esxi

เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‹เชŸเชพ เชคเชฎเชพเชฐเซ‡ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชถเชจ เช•เซ€เชŸ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช† เชธเซ‡เชจเซเชŸเซ‹เชธ 7 เช›เซ‡.

เชคเชฎเชพเชฐเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชชเชฃ เชœเชฐเซ‚เชฐ เช›เซ‡. centos-7-base.json:

variables: ัƒะบะฐะทะฐั‚ัŒ ัะฒะพะธ ะดะฐะฝะฝั‹ะต ะดะปั ะฟะพะดะบะปัŽั‡ะตะฝะธั
iso_urls: ัƒะบะฐะทะฐั‚ัŒ ะฐะบั‚ัƒะฐะปัŒะฝั‹ะน
iso_checksum: ั‡ะตะบััƒะผะผะฐ ะฒะฐัˆะตะณะพ ะพะฑั€ะฐะทะฐ 

เชฌเชงเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชชเช›เซ€, เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชšเชฒเชพเชตเซ‹:

/usr/bin/packer build centos-7-base.json

เชœเซ‹ เชฌเชงเซเช‚ เช—เซ‹เช เชตเซ‡เชฒเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเชพ เชธเซเชตเชšเชพเชฒเชฟเชค เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจเชจเซเช‚ เชšเชฟเชคเซเชฐ เชœเซ‹เชถเซ‹. เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฎเชจเซ‡ 7-8 เชฎเชฟเชจเชฟเชŸ เชฒเซ‡ เช›เซ‡.

เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชธเชซเชณ เชธเชฎเชพเชชเซเชคเชฟ เชชเช›เซ€ เช†เช‰เชŸเชชเซเชŸ-เชชเซ‡เช•เชฐ-เชธเซ‡เชจเซเชŸเซ‹7-x86_64 ova เชซเชพเช‡เชฒ เชธเซเชฅเชฟเชค เชฅเชถเซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

curl -O https://releases.hashicorp.com/terraform/0.12.24/terraform_0.12.24_linux_amd64.zip
unzip terraform_0.12.24_linux_amd64.zip -d /usr/bin/ && rm -rf terraform_0.12.24_linux_amd64.zip
terraform version
Terraform v0.12.24

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเชพเชธเซ‡ ESXi เชฎเชพเชŸเซ‡ เชชเซเชฐเชฆเชพเชคเชพ เชจเชฅเซ€, เชคเชฎเชพเชฐเซ‡ เชเช• เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช…เชฎเซ‡ เชœเชˆเช เช›เซ€เช:

cd /tmp
curl -O https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz && rm -rf go1.14.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
go version go1.14.2 linux/amd64

เช†เช—เชณ, เช…เชฎเซ‡ เชชเซเชฐเชฆเชพเชคเชพ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช:

go get -u -v golang.org/x/crypto/ssh
go get -u -v github.com/hashicorp/terraform
go get -u -v github.com/josenk/terraform-provider-esxi
export GOPATH="$HOME/go"
cd $GOPATH/src/github.com/josenk/terraform-provider-esxi
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-w -extldflags "-static"' -o terraform-provider-esxi_`cat version`
cp terraform-provider-esxi_`cat version` /usr/bin

เช…เชฎเซ‡ เช…เช‚เชคเชฟเชฎ เชฐเซ‡เช–เชพ เชชเชฐ เช›เซ€เช. เชšเชพเชฒเซ‹ เช…เชฎเชพเชฐเซ€ เช›เชฌเซ€เชจเซ‡ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ€เช.

เชšเชพเชฒเซ‹ เชซเซ‹เชฒเซเชกเชฐ เชชเชฐ เชœเชˆเช:

cd /root/create-and-deploy-esxi/centos7

เชธเซŒ เชชเซเชฐเชฅเชฎ, เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ‹ variables.tf. เชคเชฎเชพเชฐเซ‡ ESXi เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชถเชจเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชซเชพเชˆเชฒเชฎเชพเช‚ network_config.cfg เชญเชพเชตเชฟ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชฎเชพเชตเซ‡ เช›เซ‡. เชคเชฎเชพเชฐเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชชเซเชฐเชฎเชพเชฃเซ‡ เชฌเชฆเชฒเซ‹ เช…เชจเซ‡ เชตเชจ-เชฒเชพเชˆเชจเชฐ เชšเชฒเชพเชตเซ‹:

sed -i -e '2d' -e '3i "network": "'$(gzip < network_config.cfg| base64 | tr -d 'n')'",' metadata.json

เชธเชพเชฐเซเช‚, เชซเชพเช‡เชฒเชฎเชพเช‚ main.tf ova เชซเชพเชˆเชฒเชจเซ‹ เชชเชพเชฅ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพเชฎเชพเช‚ เชฌเชฆเชฒเซ‹, เชœเซ‹ เช…เชฒเช— เชนเซ‹เชฏ.

เชธเชคเซเชฏเชจเซ€ เช•เซเชทเชฃ.

terraform init
Initializing the backend...

Initializing provider plugins...

The following providers do not have any version constraints in configuration,
so the latest version was installed.

To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.

* provider.esxi: version = "~> 1.6"
* provider.template: version = "~> 2.1"

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

data.template_file.Default: Refreshing state...
data.template_file.network_config: Refreshing state...

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # esxi_guest.Default will be created
  + resource "esxi_guest" "Default" {
      + boot_disk_size         = (known after apply)
      + disk_store             = "datastore1"
      + guest_name             = "centos7-test"
      + guest_shutdown_timeout = (known after apply)
      + guest_startup_timeout  = (known after apply)
      + guestinfo              = {
          + "metadata"          = "base64text"
          + "metadata.encoding" = "gzip+base64"
          + "userdata"          = "base64text"
          + "userdata.encoding" = "gzip+base64"
        }
      + guestos                = (known after apply)
      + id                     = (known after apply)
      + ip_address             = (known after apply)
      + memsize                = "1024"
      + notes                  = (known after apply)
      + numvcpus               = (known after apply)
      + ovf_properties_timer   = (known after apply)
      + ovf_source             = "/root/create-and-deploy-esxi/output-packer-centos7-x86_64/packer-centos7-x86_64.ova"
      + power                  = "on"
      + resource_pool_name     = (known after apply)
      + virthwver              = (known after apply)

      + network_interfaces {
          + mac_address     = (known after apply)
          + nic_type        = (known after apply)
          + virtual_network = "VM Network"
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

เชธเชฎเชพเชชเซเชค:

terraform apply

เชœเซ‹ เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ 2-3 เชฎเชฟเชจเชฟเชŸเชฎเชพเช‚ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒเซ€ เช›เชฌเซ€เชฎเชพเช‚เชฅเซ€ เชเช• เชจเชตเซเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เช† เชฌเชงเชพเชจเชพ เช‰เชชเชฏเซ‹เช—เซ‹ เชซเช•เซเชค เชคเชฎเชพเชฐเซ€ เช•เชฒเซเชชเชจเชพ เชฆเซเชตเชพเชฐเชพ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช›เซ‡.

เชนเซเช‚ เช† เช‰เชคเซเชชเชพเชฆเชจเซ‹ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เชถเซ‡เชฐ เช•เชฐเชตเชพ เช…เชจเซ‡ เชฎเซเช–เซเชฏ เชฎเซเชฆเซเชฆเชพเช“ เชฌเชคเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹.

เชงเซเชฏเชพเชจ เช†เชชเชตเชพ เชฌเชฆเชฒ เช†เชญเชพเชฐ!

เชชเซ€เชเชธ: เชฎเชจเซ‡ เชฐเชšเชจเชพเชคเซเชฎเช• เชŸเซ€เช•เชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชจเช‚เชฆ เชฅเชถเซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

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