Tere kĂ”igile, minu nimi on Ivan ja ma olen alkohoolik sĂŒsteemihaldur (OPS).
Soovin rÀÀkida, kuidas ma juurutame virtuaalmasinaid ESXi-s ilma vCenterita Terraformi abil.
Sageli on vaja juurutada/uueks luua virtuaalmasinaid teatud rakenduse testimiseks. Laiskuse tÔttu mÔtlesin automatiseerimisele. Otsingud viisid mind suurepÀrase toote juurde ettevÔttelt , .
Arvan, et paljud teavad, mis on Terraform, ja need, kes ei tea, see on rakendus, mis haldab igasugust pilve, infrastruktuuri vÔi teenust, kasutades IasC kontseptsiooni (Infrastruktuur kui kood).
Virtuaaliseerimisena kasutan ESXi-d. See on ĂŒsna lihtne, mugav ja usaldusvÀÀrne.
Eeldan kĂŒsimust.
Miks Terraform, kui saab kasutada vCenter Serverit?
Seda vÔib teha, kuid. Esiteks, see on lisalitsents, teiseks on see toode vÀga ressursinÔudlik, mis lihtsalt ei mahu mu koduserverisse, ja kolmandaks, vÔimalus oma oskusi tÀiustada.
Serverina toimib Intel NUC platvorm:
CPU: 2 CPU-d x Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
RAM: 8Gb
HDD: 500Gb
ESXi versioon: ESXi-6.5.0-4564106-standard (VMware, Inc.)Nii, rÀÀgime kÔigest jÀrjekorras.
Kuni seadistame esxi, avame VNC-pordi tulemĂŒĂŒris.
Vaikimisi on fail kirjutamisest kaitstud. Teeme jÀrgmised toimingud:
chmod 644 /etc/vmware/firewall/service.xml
chmod +t /etc/vmware/firewall/service.xml
vi /etc/vmware/firewall/service.xmlLisame faili lÔppu jÀrgmise ploki:
packer-vnc
inbound
tcp
dst
5900
6000
true
trueVÀlju, salvesta. Muuda Ôigusi tagasi ja taaskÀivita teenus:
chmod 444 /etc/vmware/firewall/service.xml
esxcli network firewall refreshKehtib kuni hosti taaskÀivitamiseni. PÀrast seda peab seda toimingut uuesti kordama.
JÀtkan kogu tööd virtuaalmasinas samal serveril.
Omadused:
OS: Centos 7 x86_64 minimaalne
RAM: 1GB
HDD: 20GB
Selinux: keelatud
firewalld: keelatudEdasi on meil vaja , samuti ettevÔtte HashiCorp toode.
See on vajalik automaatseks "kuldse" kuvandi koostamiseks. Mida me tulevikus kasutame.
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 versioon
Packer v1.5.5Sammul packer versioon vĂ”ib esineda tĂ”rge, kuna RedHat-pĂ”histes sĂŒsteemides vĂ”ib olla pakett, mille nimi on sama.
which -a packer
/usr/sbin/packerProbleemi lahendamiseks vĂ”ib luua sĂŒmboolse lingi vĂ”i kasutada absoluutset teed. /usr/bin/packer.
NĂŒĂŒd vajame ovftool'i. . Laadime alla, paneme serverisse ja installime:
chmod +x VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle
./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle
VMware installeri eraldamine... tehtud.
Peate nÔustuma VMware OVF Tool komponentide lÔppkasutaja litsentsilepinguga Linuxi jaoks, et jÀtkata. Vajutage Enter, et jÀtkata.
VMWARE LĂPPKASUTUSE LITSENTSILEPING
Kas nÔustute? [jah/ei]:jah
Toode on valmis installimiseks. Vajutage Enter, et alustada
installimist vĂ”i Ctrl-C, et tĂŒhistada.
VMware OVF Tool komponentide installimine Linuxi jaoks 4.4.0
Konfigureerimine...
[######################################################################] 100%
Installimine oli edukas.Liigume edasi.
Gitis olen valmistanud kÔik vajaliku.
git clone https://github.com/letnab/create-and-deploy-esxi.git && cd create-and-deploy-esxiKausta iso tuleb panna operatsioonisĂŒsteemi distributsioon. Minu juhul on see centos 7.
Samuti tuleb redigeerida faili centos-7-base.json:
variables: sisestada oma andmed ĂŒhendamiseks
iso_urls: sisestada uusimad
iso_checksum: teie pildi kontrolsumm PÀrast kÔiki muudatusi kÀivitame kogumise:
/usr/bin/packer build centos-7-base.jsonKui kĂ”ik on Ă”igesti seadistatud ja mÀÀratud, nĂ€ete operatsioonisĂŒsteemi automaatse installimise protsessi. See protsess vĂ”tab mul aega 7-8 minutit.
PÀrast eduka lÔpuleviimist asub kaustas output-packer-centos7-x86_64 ova fail.
Paigaldame Terraformi:
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.24Kuna Terraformil pole ESXi jaoks pakkujat, tuleb see kokku panna.
Paigaldame go:
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/amd64SeejÀrel kogume pakkujat:
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/binMeil on finiĆĄijoon ees. Alustame meie pildi rakendamist.
Liigume kausta:
cd /root/create-and-deploy-esxi/centos7Esimene asi, redigeerime faili variables.tf. Tuleb mÀÀrata ĂŒhendus ESXi serveriga.
Failis network_config.cfg sisaldab tulevase virtuaalmasina vĂ”rgu seadistusi. Muudame vastavalt oma vajadustele ja kĂ€ivitame ĂŒhe rea:
sed -i -e '2d' -e '3i "network": "'$(gzip < network_config.cfg| base64 | tr -d 'n')'",' metadata.jsonJa failis main.tf muudame ova faili tee oma omaga, kui see erineb.
TÔe hetk.
terraform init
Backend'i initsialiseerimine...
Pakkujate pluginade initsialiseerimine...
JĂ€rgmistel pakkujatel ei ole konfiguratsioonis versioonipiiranguid,
seega installiti uusim versioon.
Automaatsete uuenduste vÀltimiseks uute peamiste versioonide jaoks, mis vÔivad sisaldada katkestusi,
soovitatakse lisada versioon = "..." piirangud vastavatesse pakkujate plokkidesse konfiguratsioonis,
kus on allolevad soovitatud piirangustringid.
* provider.esxi: version = "~> 1.6"
* provider.template: version = "~> 2.1"
Terraform on edukalt initsialiseeritud!
NĂŒĂŒd vĂ”ite alustada Terraformi kasutamist. Proovige kĂ€ivitada "terraform plan", et nĂ€ha
kÔiki muudatusi, mis on teie infrastruktuuri jaoks vajalikud. KÔik Terraformi kÀsud
peaksid nĂŒĂŒd tööle hakkama.
Kui kunagi seadistate vÔi muudate Terraformi mooduleid vÔi backend-konfiguratsiooni,
tÀitke see kÀsk uuesti, et oma töökaust uuesti initsialiseerida. Kui unustate, teised
kÀsklused tuvastavad selle ja tuletavad teile selle vajaduse meelde.terraform plan
Terraformi seisundi vÀrskendamine mÀlu kaudu enne plaani...
VĂ€rskendatud seisundit kasutatakse selle plaani arvutamiseks, kuid see ei saa
kohalikku ega kaugseisundisse salvestatud.
data.template_file.Default: VĂ€rskendamise olek...
data.template_file.network_config: VĂ€rskendamise olek...
------------------------------------------------------------------------
TÀitmisplaan on genereeritud ja nÀidatud allpool.
Ressursi tegevused on nĂ€idatud jĂ€rgmiste sĂŒmbolitega:
+ loo
Terraform teeb jÀrgmisi toiminguid:
# esxi_guest.Default luuakse
+ resource "esxi_guest" "Default" {
+ boot_disk_size = (teada pÀrast rakendamist)
+ disk_store = "datastore1"
+ guest_name = "centos7-test"
+ guest_shutdown_timeout = (teada pÀrast rakendamist)
+ guest_startup_timeout = (teada pÀrast rakendamist)
+ guestinfo = {
+ "metadata" = "base64text"
+ "metadata.encoding" = "gzip+base64"
+ "userdata" = "base64text"
+ "userdata.encoding" = "gzip+base64"
}
+ guestos = (teada pÀrast rakendamist)
+ id = (teada pÀrast rakendamist)
+ ip_address = (teada pÀrast rakendamist)
+ memsize = "1024"
+ notes = (teada pÀrast rakendamist)
+ numvcpus = (teada pÀrast rakendamist)
+ ovf_properties_timer = (teada pÀrast rakendamist)
+ ovf_source = "/root/create-and-deploy-esxi/output-packer-centos7-x86_64/packer-centos7-x86_64.ova"
+ power = "on"
+ resource_pool_name = (teada pÀrast rakendamist)
+ virthwver = (teada pÀrast rakendamist)
+ network_interfaces {
+ mac_address = (teada pÀrast rakendamist)
+ nic_type = (teada pÀrast rakendamist)
+ virtual_network = "VM Network"
}
}
Plaan: 1 lisand, 0 muutmist, 0 hÀvitamist.
------------------------------------------------------------------------
MÀrkus: te ei mÀÀranud "-out" parameetrit plaani salvestamiseks, seega ei saa Terraform
garanteerida, et neid tegevusi tÀpselt tehakse, kui "terraform apply" kÀivitatakse.
LÔpp:
terraform applyKui kÔik on Ôigesti tehtud, siis 2-3 minuti pÀrast tuuakse vÀlja uus virtuaalmasin varem loodud pildist.
KasutusvÔimalused sellest kÔik on piiratud vaid kujutlusvÔimega.
Ma tahtsin lihtsalt jagada oma teadmisi ja nÀidata pÔhipunkte nende toodetega töötamisel.
AitÀh tÀhelepanu eest!
P.S.: olen konstruktiivse kriitika ĂŒle Ă”nnelik.
Allikas: habr.com
