ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ²Π°Π½ ΠΈ ΡΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π°Π»ΠΊΠΎΡ ΠΎΠ»ΠΈΠΊ (OPS).
ΠΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΡΠ²Π°ΠΌ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° ESXi Π±Π΅Π· vCenter, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Terraform.
ΠΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ / ΠΏΡΠ΅ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΎΠ½ΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠ°Π΄ΠΈ ΠΌΡΡΠ·Π΅Π» ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΠΈΡ
Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. Π’ΡΡΡΠ΅Π½Π΅ΡΠΎ ΠΌΠΈ ΠΌΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°
ΠΠΈΡΠ»Ρ, ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° Π·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Terraform, Π° ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π·Π½Π°Π΅, ΡΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΠ±Π»Π°ΠΊ, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° IasC (ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄).
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ESXi ΠΊΠ°ΡΠΎ ΡΡΠ΅Π΄Π° Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎ, ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ.
ΠΡΠ°ΠΊΠ²Π°ΠΌ Π²ΡΠΏΡΠΎΡ.
ΠΠ°ΡΠΎ Π΄Π° ΡΠ΅ΡΠ°ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ vCenter Server?
ΠΠΎΠΆΠ΅ΡΠ΅, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½ΠΎ. ΠΡΡΠ²ΠΎ, ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π»ΠΈΡΠ΅Π½Π·, Π²ΡΠΎΡΠΎ, ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΡΠΊ ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π½Π° ΠΌΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΡΡΡΠ²ΡΡ, ΠΈ ΡΡΠ΅ΡΠΎ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΌΠ΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Intel 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
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ
Π’ΠΎΠΉ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° "Π·Π»Π°ΡΠ½ΠΎΡΠΎ" ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π±ΡΠ΄Π΅ΡΠ΅.
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
ΠΡΠΌ ΠΏΠ°ΠΏΠΊΠ° ΠΈΠ·ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π ΠΌΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠ²Π° Π΅ centos 7.
Π’ΡΡΠ±Π²Π° ΡΡΡΠΎ Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»Π°. centos-7-base.json:
variables: ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
iso_urls: ΡΠΊΠ°Π·Π°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ
iso_checksum: ΡΠ΅ΠΊΡΡΠΌΠΌΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°
Π‘Π»Π΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ±ΠΎΡΠΊΠ°ΡΠ°:
/usr/bin/packer build centos-7-base.json
ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΈ ΠΎΡΠ½Π΅ΠΌΠ° 7-8 ΠΌΠΈΠ½ΡΡΠΈ.
Π‘Π»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ-centos7-x86_64 ova ΡΠ°ΠΉΠ»ΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Terraform:
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
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Terraform Π½ΡΠΌΠ° Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π·Π° 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
ΠΡΡΠ²ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.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 ΠΌΠΈΠ½ΡΡΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° Π½ΠΎΠ²Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΎΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΎΡ Π²Π°ΡΠ΅ΡΠΎ Π²ΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΡΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΈ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ!
PS: Π©Π΅ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌ Π½Π° Π³ΡΠ°Π΄ΠΈΠ²Π½Π° ΠΊΡΠΈΡΠΈΠΊΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com