Conas Bonneagar Néal a bhainistiú le Terraform

Conas Bonneagar Néal a bhainistiú le Terraform

San Airteagal seo beimid ag féachaint ar cad atá i Terraform, agus freisin a sheoladh de réir a chéile ár mbonneagar féin sa scamall le VMware — ullmhóimid trí VM chun críocha éagsúla: seachfhreastalaí, stóráil comhad agus CMS.

Maidir le gach rud go mion agus i dtrí chéim:

1. Terraform - cur síos, buntáistí agus comhpháirteanna

Is uirlis IaC (Bonneagar-mar-Cód) é Terraform chun bonneagar fíorúil a thógáil agus a bhainistiú ag baint úsáide as cód.

Thugamar faoi deara go leor buntáistí a bhaineann le bheith ag obair leis an uirlis:

  • Luas imlonnaithe tionóntaí nua (timpeallachtaí fíorúla saincheaptha). Go hiondúil, dá mhéad cliant nua atá ann, is amhlaidh is mó “cliceáil” a chaithfidh foireann tacaíochta theicniúil a dhéanamh chun acmhainní nua a fhoilsiú. Le Terraform, is féidir le húsáideoirí socruithe meaisín fíorúil a athrú (mar shampla, an OS a dhúnadh go huathoibríoch agus an deighilt diosca fíorúil a mhéadú) gan tacaíocht theicniúil a bheith ag teastáil nó an meaisín féin a mhúchadh.

  • Fíorú láithreach ar an bplean gníomhachtaithe Tionónta nua. Ag baint úsáide as an gcur síos ar an gcód bonneagair, is féidir linn a sheiceáil láithreach cad a chuirfear leis agus cén t-ord, chomh maith le cén stát deiridh a bheidh ann nó an meaisín fíorúil nó líonra fíorúil le naisc le meaisíní fíorúla.

  • Cumas cur síos a dhéanamh ar na hardáin scamall is coitianta. Is féidir leat an uirlis a úsáid ó Amazon agus Google Cloud, chuig ardáin phríobháideacha bunaithe ar VMware vCloud Director, ag tairiscint seirbhísí laistigh de réitigh IaaS, SaaS agus PaaS.

  • Bainistigh soláthraithe scamall iolracha agus an bonneagar a dháileadh eatarthu chun caoinfhulaingt lochtanna a fheabhsú, ag baint úsáide as cumraíocht amháin chun acmhainní scamall a chruthú, a dhiagnóiseadh agus a bhainistiú.

  • Úsáid áisiúil chun seastáin taispeána a chruthú le haghaidh tástála bogearraí agus dífhabhtaithe. Is féidir leat seastáin a chruthú agus a aistriú don roinn tástála, bogearraí a thástáil i dtimpeallachtaí éagsúla go comhthreomhar, agus acmhainní a athrú agus a scriosadh láithreach trí phlean tógála acmhainne amháin a chruthú

Terraform "terrarium".

Labhair muid go hachomair faoi na buntáistí a bhaineann leis an uirlis, anois déanaimis é a bhriseadh síos ina chomhpháirteanna

Soláthraithe. 

In Terraform, is féidir beagnach aon chineál bonneagair a léiriú mar acmhainn. Soláthraíonn modúil soláthraithe an nasc idir acmhainní agus an ardán API, rud a ligeann duit acmhainní a chruthú laistigh d'ardán ar leith, mar shampla, Azure nó VMware vCloud Director.

Mar chuid den tionscadal, is féidir leat idirghníomhú le soláthraithe éagsúla ar ardáin éagsúla.

Acmhainní (cur síos ar acmhainn).

Ligeann cur síos ar acmhainní duit comhpháirteanna ardáin a bhainistiú, mar mheaisíní fíorúla nó líonraí. 

Is féidir leat cur síos acmhainne a chruthú don soláthraí VMware vCloud Director féin agus an cur síos seo a úsáid chun acmhainní a chruthú le haon soláthraí óstála a úsáideann vCloud Director. Ní mór duit ach na paraiméadair fíordheimhnithe agus paraiméadair nasc líonra a athrú chuig an soláthraí óstála riachtanach

Soláthraithe.

Leis an gcomhpháirt seo is féidir oibríochtaí a dhéanamh maidir le suiteáil agus cothabháil tosaigh an chórais oibriúcháin tar éis meaisíní fíorúla a chruthú. Nuair a bheidh acmhainn meaisín fíorúil cruthaithe agat, is féidir leat soláthraithe a úsáid chun cumrú agus nascadh trí SSH, an córas oibriúcháin a nuashonrú, agus script a íoslódáil agus a rith. 

Athróga Ionchur agus Aschuir.

Athróga ionchuir - athróga ionchuir d'aon chineál bloc. 

Ceadaíonn athróga aschuir duit luachanna a shábháil tar éis acmhainní a chruthú agus is féidir iad a úsáid mar athróga ionchuir i modúil eile, mar shampla sa bhloc Provideers.

Stáit.

Stórálann comhaid Stáit faisnéis faoi chumraíocht acmhainní ardáin soláthraithe. Nuair a chruthaítear an t-ardán ar dtús, níl aon fhaisnéis faoi acmhainní agus roimh aon oibríocht, déanann Terraform an stát a nuashonrú le fíor-bhonneagar na n-acmhainní a thuairiscítear cheana féin.

Is é príomhchuspóir na stáit a shábháil ar bunch de rudaí na n-acmhainní cruthaithe cheana féin chun comparáid a dhéanamh idir cumraíocht na n-acmhainní agus rudaí breise chun cruthú arís agus arís eile agus athruithe ar an ardán a sheachaint.

De réir réamhshocraithe, stóráiltear faisnéis stáit sa chomhad terraform.tfstate áitiúil, ach más gá, is féidir cianstóráil a úsáid le haghaidh obair foirne.

Is féidir leat freisin acmhainní ardán reatha a allmhairiú isteach sa stát chun idirghníomhú a thuilleadh le hacmhainní eile a cruthaíodh ina dhiaidh sin gan cabhair ó Terraform.  

2. Bonneagar a chruthú

Tá na comhpháirteanna curtha in eagar, anois ag baint úsáide as Terraform cruthóimid bonneagar de réir a chéile le trí mheaisín fíorúla. An chéad cheann leis an seachfhreastalaí nginx suiteáilte, an dara ceann le stóráil comhad bunaithe ar Nextcloud agus an tríú le CMS Bitrix.

Scríobhfaimid cód agus déanfaimid é a fhorghníomhú ag baint úsáide as ár sampla scamaill ar VMware vCloud Director. Faigheann ár n-úsáideoirí cuntas a bhfuil cearta Riarthóir Eagraíochta aige. Má úsáideann tú cuntas leis na cearta céanna i néal VMware eile, is féidir leat an cód a atáirgeadh ónár samplaí. Téigh!

Ar dtús, cruthaimis eolaire dár dtionscadal nua ina gcuirfear comhaid a chuireann síos ar an mbonneagar.

mkdir project01

Ansin, déanaimid cur síos ar na comhpháirteanna bonneagair. Cruthaíonn Terraform caidrimh agus próiseálann comhaid bunaithe ar an gcur síos sna comhaid. Is féidir na comhaid féin a ainmniú bunaithe ar chuspóir na mbloic atá á gcur síos, mar shampla, network.tf - cur síos ar na paraiméadair líonra don bhonneagar.

Chun cur síos a dhéanamh ar chomhpháirteanna ár mbonneagar, chruthaíomar na comhaid seo a leanas:

Liosta comhad.

main.tf - cur síos ar pharaiméadair don timpeallacht fhíorúil - meaisíní fíorúla, coimeádáin fhíorúla;

network.tf - cur síos ar pharaiméadair líonra fíorúil agus rialacha NAT agus Balla Dóiteáin;

athróga.tf - liosta na n-athróg a úsáidimid;

vcd.tfvars - luachanna athraitheacha tionscadail don mhodúl VMware vCloud Director.

Tá teanga na cumraíochta in Terraform dearbhach agus ní hionann ord na mbloic, ach amháin na bloic soláthair, mar gheall ar sa bhloc seo déanaimid cur síos ar na horduithe atá le déanamh agus an bonneagar á ullmhú agus déanfar iad a fhorghníomhú in ord.

Struchtúr bloc.

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

# Block body

<IDENTIFIER> = <EXPRESSION> # Argument

}

Chun cur síos a dhéanamh ar bhlocanna, úsáidtear a theanga ríomhchlárúcháin féin HCL (Teanga Cumraíochta HashiCorp); is féidir cur síos a dhéanamh ar an mbonneagar ag baint úsáide as JSON. Is féidir leat níos mó a fhoghlaim faoin chomhréir léamh ar shuíomh Gréasáin an fhorbróra.

Comhshaol cumraíocht athróg, athróga.tf agus vcd.tfvars

Gcéad dul síos, déanaimis dhá chomhad a chruthú a chuireann síos ar liosta na n-athróg go léir a úsáidtear agus a luachanna don mhodúl VMware vCloud Director. Ar dtús, déanaimis an comhad variables.tf a chruthú.

Ábhar an chomhaid changes.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" {}

Luachanna athraitheacha a fhaighimid ón soláthraí.

  • vcd_org_user — ainm úsáideora le cearta Riarthóir Eagraíochta,

  • vcd_org_password — pasfhocal úsáideora,

  • vcd_org — ainm na heagraíochta,

  • vcd_org_vdc — ainm an ionaid sonraí fíorúil,

  • vcd_org_url - URL API,

  • vcd_org_edge_name — ainm an ródaire fíorúil,

  • vcd_org_catalog — ainm an eolaire le teimpléid meaisín fíorúil,

  • vcd_edge_external_ip — seoladh IP poiblí,

  • vcd_edge_external_network — ainm an líonra sheachtraigh,

  • vcd_org_hdd_sp — ainm an bheartais stórála HDD,

  • vcd_org_ssd_sp — ainm an bheartais stórála SSD.

Agus cuir isteach ár n-athróga:

  • vcd_edge_local_ip_nginx — Seoladh IP an mheaisín fíorúil le NGINX,

  • vcd_edge_local_ip_bitrix - seoladh IP an mheaisín fíorúil le 1C: Bitrix,

  • vcd_edge_local_ip_nextcloud — Seoladh IP an mheaisín fíorúil le Nextcloud.

Leis an dara comhad cruthaímid agus sonraigh muid athróga don mhodúl VMware vCloud Director sa chomhad vcd.tfvars: Meabhraímid gur inár sampla a úsáidimid mClouds scamall féin, má oibríonn tú le soláthraí eile, seiceáil na luachanna leo. 

Ábhar an chomhaid 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"

Cumraíocht líonra, network.tf.

Tá na hathróga timpeallachta socraithe, anois socróimid an scéim um nasc meaisín fíorúil - sannfaimid seoladh IP príobháideach do gach meaisín fíorúil agus úsáidfimid Ceann Scríbe NAT chun na poirt a “chur ar aghaidh” chuig an líonra seachtrach. Chun rochtain ar chalafoirt bhainistíochta a theorannú, socróimid rochtain amháin dár seoladh IP.

Conas Bonneagar Néal a bhainistiú le TerraformLéaráid líonra don ardán Terraform á chruthú

Cruthaímid líonra eagrúcháin fíorúil leis an ainm net_lan01, an geata réamhshocraithe: 192.168.110.254, agus freisin leis an spás seoladh: 192.168.110.0/24.

Déanaimid cur síos ar líonra fíorúil.

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"

  }

}

Cruthaímid rialacha balla dóiteáin a ligeann do mheaisíní fíorúla rochtain a fháil ar an Idirlíon. Laistigh den bhloc seo, beidh rochtain ag gach acmhainn fhíorúil sa scamall ar an Idirlíon:

Déanaimid cur síos ar na rialacha maidir le rochtain VM ar an Idirlíon.

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]

}

Tar éis dúinn an spleáchas a bhunú, tar éis an bloc vcdnetworkrouted.net a phróiseáil, leanfaimid ar aghaidh chun an bloc vcdnsxvfirewallrule a chumrú, trí úsáid a bhaint as ag brath. Bainimid úsáid as an rogha seo toisc go bhféadfaí roinnt spleáchais a aithint go hintuigthe sa chumraíocht.

Ansin, cruthóimid rialacha a cheadóidh rochtain ar chalafoirt ón líonra seachtrach agus a léireoidh ár seoladh IP chun nascadh trí SSH leis na freastalaithe. Tá rochtain ag aon úsáideoir Idirlín ar chalafoirt 80 agus 443 ar an bhfreastalaí gréasáin, agus tá rochtain ag úsáideoir le seoladh IP de 90.1.15.1 ar chalafoirt SSH na freastalaithe fíorúla.

Ceadaigh rochtain ar chalafoirt ón líonra seachtrach.

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]

}

Cruthaímid rialacha Foinse NAT chun rochtain a fháil ar an Idirlíon ó líonra áitiúil néal:

Déanaimid cur síos ar na rialacha Foinse 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]

}

Agus chun cumraíocht an bhloic líonra a chomhlánú, cuirimid rialacha NAT Ceann Scríbe chun rochtain a fháil ar sheirbhísí ón líonra seachtrach:

Rialacha NAT Ceann Scríbe a Chur Leis.

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]

}

Cuir riail NAT le haghaidh aistriúchán poirt leis an bhfreastalaí SSH faoi Nginx.

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]

}

Cuir riail NAT le haghaidh aistriúchán poirt leis an bhfreastalaí SSH le 1C-Bitrix.

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]

}

Cuir riail NAT le haghaidh aistriúchán poirt leis an bhfreastalaí SSH le Nextcloud.

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]

}

Cumraíocht timpeallacht fhíorúil Main.tf

De réir mar a bhí beartaithe againn ag tús an ailt, cruthóimid trí mheaisín fhíorúla. Déanfar iad a ullmhú ag baint úsáide as "Saincheap Aoi". Socróimid na paraiméadair líonra de réir na socruithe a shonraigh muid, agus ginfear an focal faire úsáideora go huathoibríoch.

Déanaimis cur síos ar an vApp ina mbeidh na meaisíní fíorúla suite agus a gcumraíocht.

Conas Bonneagar Néal a bhainistiú le TerraformCumraíocht meaisín fíorúil

Déanaimis coimeádán vApp a chruthú. Ionas gur féidir linn an vApp agus an VM a nascadh láithreach leis an líonra fíorúil, cuirimid an paraiméadar depend_on leis freisin:

Cruthaigh coimeádán

resource "vcd_vapp" "vapp" {
name = "web"
power_on = "true" depends_on = [vcd_network_routed.net]

}

Cruthaímid meaisín fíorúil le cur síos

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

}

}

Príomhpharaiméadair sa chur síos VM:

  • ainm - ainm an mheaisín fíorúil,

  • vappname - ainm an vApp chun VM nua a chur leis,

  • ainm catalóige / teimpléadainm - ainm catalóige agus ainm teimpléid meaisín fíorúil,

  • storageprofile - polasaí stórála réamhshocraithe.

Paraiméadair bloc líonra:

  • cineál — cineál líonra nasctha,

  • ainm — cén líonra fíorúil chun an VM a nascadh leis,

  • isprimary - adapter líonra príomhúil,

  • ipallocation_mode — modh leithdháilte seoltaí MANUAL / DHCP / POOL,

  • ip - seoladh IP don mheaisín fíorúil, sonróimid de láimh é.

override_template_disk bloc:

  • sizeinmb — méid diosca tosaithe don mheaisín fíorúil

  • storage_profile — polasaí stórála don diosca

Cruthaímid an dara VM le cur síos ar stóráil comhad Nextcloud

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 ]

}

Sa rannán vcdvminternal_disk déanfaimid cur síos ar dhiosca fíorúil nua atá ceangailte leis an meaisín fíorúil.

Mínithe ar an mbloc vcdvminternaldisk:

  • bustype - cineál rialtóir diosca

  • sizeinmb — méid diosca

  • busnumber / unitnumber - suíomh nasc sa adapter

  • storage_profile — polasaí stórála don diosca

Déanaimis cur síos ar an VM is déanaí ar Bitrix

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

}

}

An OS a nuashonrú agus scripteanna breise a shuiteáil

Ullmhaítear an líonra, déantar cur síos ar na meaisíní fíorúla. Sula ndéantar ár mbonneagar a allmhairiú, is féidir linn soláthar tosaigh a dhéanamh roimh ré trí úsáid a bhaint as bloic soláthair agus gan úsáid a bhaint as Ansible.

Breathnaímid ar conas an OS a nuashonrú agus an script suiteála CMS Bitrix a reáchtáil ag baint úsáide as an bloc soláthair.

Ar dtús, déanaimis pacáistí nuashonraithe CentOS a shuiteáil.

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" ]

}

}

}

Ainmniú na gcomhpháirteanna:

  • soláthraí “iargúlta-exec” - ceangail an cianbhloc soláthair

  • Sa bhloc ceangail déanaimid cur síos ar an gcineál agus na paraiméadair don nasc:

  • cineál - prótacal, inár gcás SSH;

  • úsáideora — ainm úsáideora;

  • pasfhocal - pasfhocal úsáideora. Inár gcás, dírímid ar an bparaiméadar vcdvappvm.nginx.customization[0].admin_password, a stórálann an focal faire ginte don úsáideoir córais.

  • óstach - seoladh IP seachtrach le haghaidh nasc;

  • port — calafort le haghaidh ceangail, a sonraíodh cheana sna socruithe DNAT;

  • inlíne - liostaigh liosta na n-orduithe a chuirfear isteach. Cuirfear na horduithe isteach in ord mar a léirítear san alt seo.

Mar shampla, déanaimis an script suiteála 1C-Bitrix a fhorghníomhú freisin. Beidh aschur an toraidh scripte ar fáil fad a bheidh an plean ar siúl. Chun an script a shuiteáil, déanaimid cur síos ar an mbloc ar dtús:

Déanaimis cur síos ar shuiteáil 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"

]

}

Agus cuirfimid síos láithreach ar nuashonrú Bitrix.

Sampla de sholáthar 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"

]

}

}

Tábhachtach! Seans nach n-oibreoidh an script mura ndéanann tú SELinux a dhíchumasú roimh ré! Má tá alt mionsonraithe uait maidir le CMS 1C-Bitrix a shuiteáil agus a chumrú ag baint úsáide as bitrix-env.sh, oo is féidir leat bain úsáid as ár n-alt blag ar an suíomh Gréasáin.

3. Túsú bonneagair

Conas Bonneagar Néal a bhainistiú le TerraformModúil agus forlíontáin a thionscnamh

Le haghaidh oibre, bainimid úsáid as “trealamh fear uasal” simplí: ríomhaire glúine le Windows 10 OS agus trealamh dáileacháin ón láithreán gréasáin oifigiúil terraform.io. Déanaimis díphacáil agus tús a chur leis an ordú: terraform.exe init

Tar éis dúinn cur síos a dhéanamh ar an mbonneagar ríomhaireachta agus líonra, seolann muid pleanáil chun ár gcumraíocht a thástáil, áit ar féidir linn a fheiceáil cad a chruthófar agus conas a nascfar é lena chéile.

  1. Rith an t-ordú - terraform plan -var-file=vcd.tfvars.

  2. Faighimid an toradh - Plan: 16 to add, 0 to change, 0 to destroy. Is é sin, de réir an phlean seo, cruthófar 16 acmhainn.

  3. Seolaimid an plean faoi ordú - terraform.exe apply -var-file=vcd.tfvars.

Cruthófar meaisíní fíorúla, agus ansin déanfar na pacáistí atá liostaithe againn a fhorghníomhú laistigh den rannán soláthraí - déanfar an OS a nuashonrú agus déanfar CMS Bitrix a shuiteáil.

Ag fáil faisnéise ceangail

Tar éis an plean a chur i gcrích, ba mhaith linn sonraí a fháil i bhfoirm téacs chun nascadh leis na freastalaithe, le haghaidh seo déanfaimid an rannóg aschuir a fhormáid mar seo a leanas:

output "nginxpassword" {

 value = vcdvappvm.nginx.customization[0].adminpassword

}

Agus insíonn an t-aschur seo a leanas dúinn an pasfhocal don mheaisín fíorúil cruthaithe:

Outputs: nginx_password = F#4u8!!N

Mar thoradh air sin, faighimid rochtain ar mheaisíní fíorúla le córas oibriúcháin nuashonraithe agus pacáistí réamhshuiteáilte dár gcuid oibre breise. Tá gach rud réidh!

Ach cad a tharlóidh má tá bonneagar agat cheana féin?

3.1. Ardán Oibre leis an mbonneagar reatha

Tá sé simplí, is féidir leat meaisíní fíorúla reatha agus a gcoimeádáin vApp a allmhairiú ag baint úsáide as an ordú allmhairithe.

Déanaimis cur síos ar an acmhainn vAPP agus ar an meaisín fíorúil.

resource "vcd_vapp" "Monitoring" {

name = "Monitoring"

org = "mClouds"

vdc = "mClouds"

}

resource "vcd_vapp_vm" "Zabbix" {

name = "Zabbix"

org = "mClouds"

vdc = "mClouds"

vapp = "Monitoring"

}

Is é an chéad chéim eile ná airíonna acmhainní vApp a allmhairiú san fhormáid vcdvapp.<vApp> <org>.<orgvdc>.<vApp>áit:

  • vApp - ainm vApp;

  • org — ainm na heagraíochta;

  • org_vdc — ainm an ionaid sonraí fíorúil.

Conas Bonneagar Néal a bhainistiú le TerraformAiríonna acmhainne vAPP a iompórtáil

Déanaimis airíonna acmhainní VM a allmhairiú san fhormáid: vcdvappvm.<VM> <org>.<orgvdc>.<vApp>.<VM>, ina bhfuil:

  • VM - ainm VM;

  • vApp - ainm vApp;

  • org — ainm na heagraíochta;

  • orgvdc is ainm don ionad sonraí fíorúil.

D'éirigh leis an allmhairiú

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.

Anois is féidir linn breathnú ar an acmhainn iompórtáilte nua:

Acmhainn iompórtáilte

> 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"

}

}

Anois tá muid cinnte réidh - táimid ag déanamh leis an bpointe deireanach (allmhairiú isteach sa bhonneagar atá ann cheana féin) agus rinneamar breithniú ar na príomhphointí oibre le Terraform. 

Bhí an uirlis an-áisiúil agus ligeann duit cur síos a dhéanamh ar do bhonneagar mar chód, ag tosú ó mheaisíní fíorúla soláthraí scamall amháin go dtí cur síos ar acmhainní comhpháirteanna líonra.

Ag an am céanna, fágann neamhspleáchas ón gcomhshaol gur féidir oibriú le hacmhainní áitiúla, scamall, agus fiú an t-ardán a bhainistiú. Agus mura bhfuil ardán tacaithe ann agus gur mhaith leat ceann nua a chur leis, is féidir leat do sholáthraí féin a scríobh agus é a úsáid.

Foinse: will.com

Add a comment