Чтение онлайн

на главную - закладки

Жанры

Шрифт:

./terraform apply -var = "github_token = f7602b82e02efcbae7fc915c16eeee518280cf2a"

Building infrastructure in GCP with Terraform

Each cloud has its own set of services, its own APIs for them. To simplify the transition from one cloud for both employees in terms of learning and rewriting, there are universal libraries that implement the Facade pattern. A facade is understood as a universal API that disrupts the features of the systems behind it.

One representative of the cloud API facades is KOPS. KOPS is a tool for deploying Kubernetes to GCP, AWS and Azure. KOPS is similar to Kubectl – it is a binary, it can create both commands and the YML config, has a similar syntax, but unlike Kubectl, it creates not a POD, but a cluster node. Another example is Terraform, which specializes in deployment by configuration to adhere to the IasC concept.

To create the infrastructure, we need a token, it is created in GCP for the service account to which access is issued. To do this, I went along the path: IAM and administration -> Service accounts -> Create a service account and upon creation I dropped the Owner role (full access for test purposes), created a key with the Create key button in JSON format and renamed the downloaded key to Key. JSON. To describe the infrastructure, I used the documentation www.terraform.io/docs/providers/google/index.html :

(agil7e-aleph-20391) $ cat main.tf

provider "google" {

credentials = "$ {file (" key.json ")}"

project = "agile-aleph-203917"

region = "us-central1"

}

resource "google_compute_instance" "terraform" {

name = "terraform"

machine_type = "n1-standard-1"

zone = "us-central1-a"

boot_disk {

initialize_params {

image = "debian-cloud / debian-9"

}

}

network_interface {

network = "default"

}

}

Let's check the user rights:

(agile-aleph-203917) $ gcloud auth list

Credentialed Accounts

ACTIVE ACCOUNT

* esschtolts@gmail.com

To set the active account, run:

$ gcloud config set account `ACCOUNT`

Let's select the project as the current one (you can create the current one by default):

$ gcloud config set project agil7e-aleph-20391;

(agil7e-aleph-20391) $ ./terraform init | grep success

Terraform has been successfully initialized!

Now let's create one instance in the WEB console, after copying the key to the key.json file in the Terraform directory:

machine_type: "" => "n1-standard-1"

metadata_fingerprint: "" => "<computed>"

name: "" => "terraform"

network_interface. #: "" => "1"

network_interface.0.address: "" => "<computed>"

network_interface.0.name: "" => "<computed>"

network_interface.0.network: "" => "default"

network_interface.0.network_ip: "" => "<computed>"

network_interface.0.network: "" => "default"

project: "" => "<computed>"

scheduling. #: "" => "<computed>"

self_link: "" => "<computed>"

tags_fingerprint: "" => "<computed>"

zone: "" => "us-central1-a"

google_compute_instance.terraform: Still creating … (10s elapsed)

google_compute_instance.terraform: Still creating … (20s elapsed)

google_compute_instance.terraform: Still creating … (30s elapsed)

google_compute_instance.terraform: Still creating … (40s elapsed)

google_compute_instance.terraform: Creation complete after 40s (ID: terraform)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

That's it, we have created a server instance. Now let's remove it:

~ / terraform (agil7e-aleph-20391) $ ./terraform apply

google_compute_instance.terraform: Refreshing state … (ID: terraform)

An execution plan has been generated and is shown below.

Resource actions are indicated with the following symbols:

– destroy

Terraform will perform the following actions:

– google_compute_instance.terraform

Plan: 0 to add, 0 to change, 1 to destroy.

Do you want to perform these actions?

Terraform will perform the actions described above.

Only 'yes' will be accepted to approve.

Enter a value: yes

google_compute_instance.terraform: Destroying … (ID: terraform)

google_compute_instance.terraform: Still destroying … (ID: terraform, 10s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 20s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 30s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 40s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 50s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m0s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m10s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m20s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m30s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m40s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 1m50s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 2m0s elapsed)

google_compute_instance.terraform: Still destroying … (ID: terraform, 2m10s elapsed)

Поделиться:
Популярные книги

Очарованная душа

Роллан Ромен
Проза:
классическая проза
6.00
рейтинг книги
Очарованная душа

Бернард Шоу

Пирсон Хескет
След в истории
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Бернард Шоу

Стеллар. Компиляция. Книги 1-9

Прокофьев Роман Юрьевич
Стеллар
Фантастика:
киберпанк
рпг
постапокалипсис
технофэнтези
5.00
рейтинг книги
Стеллар. Компиляция. Книги 1-9

Две могилы

Престон Дуглас
12. Пендергаст
Детективы:
триллеры
прочие детективы
8.90
рейтинг книги
Две могилы

Философия

Коллектив авторов
Научно-образовательная:
философия
учебники
5.00
рейтинг книги
Философия

"Фантастика 2025-70". Компиляция. Книги 1-31

Волков Николай Владимирович
Фантастика 2025. Компиляция
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Фантастика 2025-70. Компиляция. Книги 1-31

Простые смертные

Митчелл Дэвид Стивен
Интеллектуальный бестселлер. Читает весь мир.
Фантастика:
социально-философская фантастика
7.17
рейтинг книги
Простые смертные

Слово президента

Клэнси Том
8. Джек Райан
Детективы:
политические детективы
6.20
рейтинг книги
Слово президента

Место под солнцем

Марклунд Лиза
Анника Бенгтзон
Детективы:
криминальные детективы
6.00
рейтинг книги
Место под солнцем

Золотой Лис

Смит Уилбур
8. Кортни
Приключения:
прочие приключения
8.22
рейтинг книги
Золотой Лис

Обрыв

Гончаров Иван Александрович
Гончаров И. А. Романы
Проза:
русская классическая проза
5.00
рейтинг книги
Обрыв

Миллион приключений (сборник)

Булычев Кир
15. Отцы-основатели - Русское пространство. Кир Булычев - Собрание сочинений
Фантастика:
научная фантастика
7.00
рейтинг книги
Миллион приключений (сборник)

Игра с огнем

Джейн Анна
2. Мой идеальный смерч
Любовные романы:
современные любовные романы
9.51
рейтинг книги
Игра с огнем

Весь Гамильтон Эдмонд в одном томе

Гамильтон Эдмонд Мур
Абсолют
Фантастика:
боевая фантастика
ужасы и мистика
космическая фантастика
5.00
рейтинг книги
Весь Гамильтон Эдмонд в одном томе