Terraform kullanımı

Terraform OpenStack sağlayıcısını bir uygulama kimlik bilgisinin dosyalarıyla yapılandırın ve Terraform ile bir projede kaynak oluşturup yönetin.

Terraform, projenizin kaynaklarını OpenStack sağlayıcısı (terraform-provider-openstack/openstack) üzerinden yönetir. Sağlayıcı, clouds.yaml dosyasından okuduğu bir uygulama kimlik bilgisiyle giriş yapar; bu nedenle Terraform dosyalarınız gizli anahtarı içermez.

Başlamadan önce

  • Terraform’u yükleyin.
  • Projede Tam erişim profiliyle bir uygulama kimlik bilgisi oluşturun ve clouds.yaml ile main.tf dosyalarını indirin. Bkz. Uygulama kimlik bilgisi oluşturma.
  • Bir ekibin veya CI işlem hattının çalıştırdığı Terraform için işlem hattı başına bir tane olmak üzere bir servis hesabı kimlik bilgisi kullanın. Kişisel bir kimlik bilgisi, sahibi kuruluşunuzdan ayrıldığında veya projedeki rolünü kaybettiğinde çalışmayı bırakır.

Sağlayıcıyı yapılandırma

main.tf ve clouds.yaml dosyalarını aynı klasöre koyun ya da clouds.yaml dosyasını ~/.config/openstack/ klasörüne koyun. Konsolun ürettiği main.tf dosyası şöyle görünür:

main.tf
terraform {
  required_providers {
    openstack = {
      source  = "terraform-provider-openstack/openstack"
      version = "~> 3.4"
    }
  }
}

provider "openstack" {
  cloud = "bulutistan"
}

# Read-only check that the credential works: the project it is bound to.
data "openstack_identity_auth_scope_v3" "current" {
  name = "current"
}

output "project_id" {
  value = data.openstack_identity_auth_scope_v3.current.project_id
}

cloud = "bulutistan", clouds.yaml içindeki aynı adlı girdiyi seçer. Bölge ve uç nokta da bu dosyadan gelir.

Doğrulama

Yapılandırmayı kontrol etme
terraform init
terraform apply

terraform apply, kimlik bilgisinin bağlı olduğu projenin ID’si olan project_id değerini yazdırır. Yapılandırma yalnızca veri okur; bu nedenle hiçbir şey oluşturmaz.

Kaynak oluşturma

Bu örnek bir ağ, bir alt ağ ve her yerden HTTPS’ye izin veren bir kurala sahip bir güvenlik grubu oluşturur. Örneği main.tf dosyasına ekleyin ya da veri kaynağını ve çıktıyı bu örnekle değiştirin:

main.tf
resource "openstack_networking_network_v2" "app" {
  name = "tf-quickstart"
}

resource "openstack_networking_subnet_v2" "app" {
  name       = "tf-quickstart"
  network_id = openstack_networking_network_v2.app.id
  cidr       = "192.168.50.0/24"
  ip_version = 4
}

resource "openstack_networking_secgroup_v2" "web" {
  name        = "tf-quickstart-web"
  description = "HTTPS in"
}

resource "openstack_networking_secgroup_rule_v2" "https" {
  security_group_id = openstack_networking_secgroup_v2.web.id
  direction         = "ingress"
  ethertype         = "IPv4"
  protocol          = "tcp"
  port_range_min    = 443
  port_range_max    = 443
  remote_ip_prefix  = "0.0.0.0/0"
}

output "network_id" {
  value = openstack_networking_network_v2.app.id
}
Yapılandırmayı uygulama ve temizleme
terraform plan
terraform apply
terraform destroy

terraform destroy, oluşturulan kaynakları siler.

Terraform kaynaklarının konsolla ilişkisi

  • Terraform’un oluşturduğu kaynaklar, konsolda gördüğünüz kaynaklarla aynıdır. Projede görünür ve konsolda oluşturduğunuz kaynaklar gibi faturalandırılır.
  • Aboneliğin kotasına ve projenin tahsisine dahil edilir. Tahsisi aşacak bir istek reddedilir. Bkz. Kotalar.

Hangi kaynak türlerini kullanabileceğinizi kontrol etme

Konsoldaki OpenStack API kılavuzu, Terraform sağlayıcısının kaynak türlerini ve bu buluttaki destek durumlarını listeler. Kılavuzu açmak için Kimlik & ErişimOpenStack API erişimi sayfasına gidin ve Kılavuz seçeneğini seçin. Bir kaynak türünü bir yapılandırmada kullanmadan önce orada kontrol edin.

Bu sayfada