Crear VM-Apache2-con Terraform en Azure[ES]
지형
이것은 플랫폼 개혁으로 대중에게 인프라 시설 건설 과정의 자동화를 실현하는 기능을 제공하였다
Terraform trabaja en torno a estos archivos*.tf*.tfvars y*.tfstate
아치보tf:
이곳은 누베성의 한 곳이다.이것은 복잡한 과정이다.
아치보TFVAR:
이것은 아주 좋은 예다.tf
아치보tfstate:
이것은 지형의 일종이다.미래의 토지 관리와 개발 과정에서 우리는 토지에 대해 재계획을 해야 한다.
Ejempo introductorio crear un recurso:
재귀적 운영 체제:
- 푸른 쿤타
Esta herramienta Esta Disposible para Windows、Mac、Linux
Microsoft 설치 소프트웨어(Microsoft Installer)의 공식 문서 적용
Autenticarse en CLI de Azure
우사르 코만도
az login
구름층의 활동에서 우리는 더 많은 신뢰를 필요로 한다Crear un directorio
"푸른 지형을 배운다"는 에스테 카소의 이사로 HCL(Hashi Corporation Archivo estaráel código escrito)에서
main.tf
을 사용했다.# Configure the Azure provider
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 2.26"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "myTFResourceGroup"
location = "westus2"
}
성명의 중요한 내용은 provider
년 《미국 국가인권선언》과 resource
년 《절망지역 재발성 질병선언》을 포함한다.Inicializar terraform
공사 설계 본사(Dentro del proyecto ejecutar el comando)
terraform init
건축 구조도Generar el plan de ejecución
유럽 공동체
terraform plan
호 결의는 각 회원국의 이익을 확보하기 위한 계획을 통과시켰다Aplicar la configuracion
우리는 계획을 수정하였는데, 수정된 공사는
terraform apply
년에 완공되고, 공사는 yes
년에 완공되며, 공사는 terraform destroy
년에 완공될 것이다Inspeccionar el estado
Ver el grupo de recursos que se han creado mediante terraform
terraform show
Ver en la consola de la nube de Azure
Destruir el recurso
우산도 코만도
yes
번 도로에 있는 철도입니다. 이 도로는 도로로 도로교통안전위원회가 관리하고 terraform plan -out=newplan
번 도로입니다.Cambios en la infraestructura
신사레다와 루에고 지역
terraform apply newplan
년 신사레다와 루에고 지역의 토지 이용 계획에서 이 지역의 토지 이용 총체적 계획 중 토지 이용률이 가장 높다세공다 파트
*아파치의 인터넷 서비스에서 가상의 세계가 푸른 하늘에서 운행되고 있다. 이것은 가상의 세계이다*
Crear un archivo
variables.tf
en que se declara el uso de variables en la creación de los recursos
variable "location" {}
variable "admin_username" {
type = string
description = "Administrator user name for virtual machine"
}
variable "admin_password" {
type = string
description = "Password must meet Azure complexity requirements"
}
variable "prefix" {
type = string
default = "my"
}
variable "tags" {
type = map
default = {
Environment = "Terraform GS"
Dept = "Engineering"
}
}
variable "sku" {
default = {
westus2 = "16.04-LTS"
eastus = "18.04-LTS"
}
}
Crear el archivo
terraform.tfvars
en donde se establecen los valores de las varibles
location = "xxxxx"
prefix = "xx"
admin_username = "xxxxx"
admin_password = "xxxxxxxx"
Crear un archivo
azure-user-data.sh
que tendrá los script iniciales que se ejecutaran en la maquina virtual creada en Azure
#! /bin/bash
sudo apt-get update
sudo apt-get install -y apache2
sudo systemctl start apache2
sudo systemctl enable apache2
echo "<h1>Demp Apache2 from Azure Virtual Machine</h1>" | sudo tee /var/www/html/index.html
Las siguientes configuraciones se realizaran en el archivo
main.tf
Agregar una regla de red que habilite el puerto 80
security_rule {
name = "allow-http"
description = "allow-http"
priority = 110
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "Internet"
destination_address_prefix = "*"
}
델트로 델레소드 레이드resource "azurerm_network_security_group" "nsg" {
name = "myTFNSG"
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
security_rule {
name = "SSH"
priority = 1001
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "22"
source_address_prefix = "*"
destination_address_prefix = "*"
}
security_rule {
name = "allow-http"
description = "allow-http"
priority = 110
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "Internet"
destination_address_prefix = "*"
}
}
Declarar la
data
para leer el archivo de configuracion inicial tambien llamadocloud-init
data "template_file" "linux-vm-cloud-init" {
template = file("azure-user-data.sh")
}
Cargar la
data
en sistema operativo de la maquina virtual, decodificando el archivo anteriormente declarado
os_profile {
computer_name = "myTFVM-kg"
admin_username = var.admin_username
admin_password = var.admin_password
custom_data = base64encode(data.template_file.linux-vm-cloud-init.rendered)
}
Configuración completa del archivo
main.tf
이것은
vm_size = "Standard_B1s"
일의 무료 계약이다Declarar una salida por consola de la ip de la vm creada
output "public_ip_address" {
value = data.azurerm_public_ip.ip.ip_address
}
main.tf
# Configure the Azure provider
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 2.26"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "myTFResourceGroup"
location = "westus2"
tags = {
Environment = "Terraform Getting Started"
Team = "DevOps"
}
}
# Create a virtual network
resource "azurerm_virtual_network" "vnet" {
name = "myTFVnet"
address_space = ["10.0.0.0/16"]
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
}
# Create subnet
resource "azurerm_subnet" "subnet" {
name = "myTFSubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.1.0/24"]
}
# Create public IP
resource "azurerm_public_ip" "publicip" {
name = "myTFPublicIP"
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
allocation_method = "Static"
}
# Create Network Security Group and rule
resource "azurerm_network_security_group" "nsg" {
name = "myTFNSG"
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
security_rule {
name = "SSH"
priority = 1001
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "22"
source_address_prefix = "*"
destination_address_prefix = "*"
}
security_rule {
name = "allow-http"
description = "allow-http"
priority = 110
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "Internet"
destination_address_prefix = "*"
}
}
# Create network interface
resource "azurerm_network_interface" "nic" {
name = "myNIC"
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
ip_configuration {
name = "myNICConfg"
subnet_id = azurerm_subnet.subnet.id
private_ip_address_allocation = "dynamic"
public_ip_address_id = azurerm_public_ip.publicip.id
}
}
data "template_file" "linux-vm-cloud-init" {
template = file("azure-user-data.sh")
}
# Create a Linux virtual machine
resource "azurerm_virtual_machine" "vm" {
name = "myTFVM"
location = "westus2"
resource_group_name = azurerm_resource_group.rg.name
network_interface_ids = [azurerm_network_interface.nic.id]
vm_size = "Standard_B1s"
storage_os_disk {
name = "myOsDisk"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = "Premium_LRS"
}
storage_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = lookup(var.sku, var.location)
version = "latest"
}
os_profile {
computer_name = "myTFVM-kg"
admin_username = var.admin_username
admin_password = var.admin_password
custom_data = base64encode(data.template_file.linux-vm-cloud-init.rendered)
}
os_profile_linux_config {
disable_password_authentication = false
}
}
data "azurerm_public_ip" "ip" {
name = azurerm_public_ip.publicip.name
resource_group_name = azurerm_virtual_machine.vm.resource_group_name
depends_on = [azurerm_virtual_machine.vm]
}
output "public_ip_address" {
value = data.azurerm_public_ip.ip.ip_address
}
*아치워스 호텔*에제크타
terraform plan
terraform apply
- 네.이것은 네트워크 서비스 플랫폼이다. 그것은 소형 서비스 플랫폼이다👏🏼👏🏼
terraform destroy
이것은 매우 좋은 예이다분당 서비스 사이트가 하나 있는데, 그것은 작은 식당이다
Almacenar el estado remoto en Terraform Cloud
백엔드에서 지형 허가증과 지형 이용률을 제거하고estado 데이터와 비교했다.인프라 시설을 건설하는 칸비오스에서 우리는 지형운에 대해 백엔드 개조를 해서 설비의 버전화, 감사와 협력을 실현해야 한다.
Registrarse en Terraform Cloud
Configurar el backend remoto
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 2.26"
}
}
+ backend "remote" {
+ organization = "<ORG_NAME>"
+ workspaces {
+ name = "Example-Workspace"
+ }
+ }
}
provider "azurerm" {
features {}
}
Iniciar sesion en local
terraform login
Ver la cuenta de azure iniciado
az account list
Ver informacion necesaria de la cuenta de azure
az account set --subscription="SUBSCRIPTION_ID"
Copiar las ID en la cloud de terraform
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/SUBSCRIPTION_ID"
Aplicar las configuraciones
terraform apply
Destruir los recursos creados
terraform destroy
지형운은 비교할 수 있고 확정할 수 있는 지형운으로 그 형상과 형상은 지형과 비슷하다.
지형운보험정산사는 현지 지형의 생태 환경에 보호를 제공할 수 있는데 그 기능은 생태 환경을 보호하는 것을 포함한다.
Reference
이 문제에 관하여(Crear VM-Apache2-con Terraform en Azure[ES]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kevingo710/crear-vm-apache2-con-terraform-en-azure-es-7e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)