Инициализации рабочего каталога, содержащего файлы конфигурации Terraform (установка необходимых модулей)
terraform init
Проверка конфигурации на корректность синтаксиса, внутреннюю согласованность модулей итд.
terraform validate
Создание плана выполнения, вывод в консоль действий необходимых для создания конфигурации
terraform plan
Применение изменений, необходимых для создания конфигурации (без запроса)
terraform apply -auto-approve
Удаление управляемой Terraform инфраструктуры (без запроса)
terraform destroy -auto-approve
Поиск ssh-ключа по имени и удаления ключа оп id
curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer <do_key>' 'https://api.digitalocean.com/v2/account/keys?page=1&per_page=999'|jq '.ssh_keys[] | select(.name=="xeonmp22_key1") | .id'
curl -X DELETE -H 'Authorization: Bearer <do_key>' "https://api.digitalocean.com/v2/account/keys/<key_id>"
Запуск playbook с ключом
ansible-playbook -u root -i 'srv.xn.devops.rebrain.srwx.net,' --private-key ~/.ssh/key1 playbooks/playbook.yml
Удаление/Создание конкретного ресурса (ресурс droplet удаляется вместе ресурсом dns)
terraform destroy -target=digitalocean_droplet.web2 -auto-approve
terraform apply -target=digitalocean_droplet.web2 -auto-approve
terraform apply -target=aws_route53_record.www2 -auto-approve
Настройка провайдера Terraform
vim provider.tf
terraform {
required_providers {
digitalocean = {
source = "digitalocean/digitalocean"
#version = ">= 2.8.0"
}
}
}
provider "digitalocean" {
token = var.token
}