Size: a a a

2019 September 02

A

Anatoly in terraform_ru
хмм, странно конечно
источник

A

Anatoly in terraform_ru
я тебе выше кинул пример который у меня работает
источник

A

Anatoly in terraform_ru
да, у меня есть
источник

e

ep4sh in terraform_ru
Привет всем, можно ли поменять терраформом RDS instance type на бегущем экземпляре?  Дефолтом стоит
db.m4.large
ресурсы созданы, меняю, например, на  
db.m4.xlarge
, изменнеия терраформ подхватывает, но по факту ничего не меняется:

# aws_db_instance.app_db will be updated in-place
 ~ resource "aws_db_instance" "app_db" {
       address                               = "app.noname.us-east-1.rds.amazonaws.com"
       allocated_storage                     = 100
       arn                                   = "arn:aws:rds:us-east-1:270615476192:db:app"
       auto_minor_version_upgrade            = true
       availability_zone                     = "us-east-1b"
       backup_retention_period               = 0
       backup_window                         = "06:46-07:16"
       ca_cert_identifier                    = "rds-ca-2015"
       copy_tags_to_snapshot                 = false
       db_subnet_group_name                  = "db-subnetgrp"
       deletion_protection                   = false
       enabled_cloudwatch_logs_exports       = []
       endpoint                              = "app.noname.us-east-1.rds.amazonaws.com:3306"
       engine                                = "mysql"
       engine_version                        = "5.6.41"
       hosted_zone_id                        = "ZZZZZ"
       iam_database_authentication_enabled   = false
       id                                    = "app"
       identifier                            = "app"
     ~ instance_class                        = "db.m4.large" -> "db.m4.xlarge"
       iops                                  = 0
       license_model                         = "general-public-license"
       maintenance_window                    = "mon:08:46-mon:09:16"
       max_allocated_storage                 = 0
       monitoring_interval                   = 0
       multi_az                              = false
       name                                  = "main"
       option_group_name                     = "default:mysql-5-6"
       parameter_group_name                  = "default.mysql5.6"
       password                              = (sensitive value)
       performance_insights_enabled          = false
       performance_insights_retention_period = 0
       port                                  = 3306
       publicly_accessible                   = true
       replicas                              = []
       resource_id                           = "db-O3QHGGJ6HRNK2XQ6U2RJ5D7VPM"
       security_group_names                  = []
       skip_final_snapshot                   = true
       status                                = "available"
       storage_encrypted                     = false
       storage_type                          = "gp2"
       tags                                  = {
           "ApplicationName" = "app"
           "Env"             = "dev"
           "Name"            = "app_dev_db"
           "SystemName"      = "APP"
       }
       username                              = "root"
       vpc_security_group_ids                = [
           "sg-012400d2d49efc357",
       ]
   }


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

aws_db_instance.app_db: Modifying... [id=app]
aws_db_instance.app_db: Still modifying... [id=app, 10s elapsed]
aws_db_instance.app_db: Still modifying... [id=app, 20s elapsed]
aws_db_instance.app_db: Still modifying... [id=app, 30s elapsed]
aws_db_instance.app_db: Modifications complete after 30s [id=app]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed
источник

IM

Iurii Medvedev in terraform_ru
ep4sh
Привет всем, можно ли поменять терраформом RDS instance type на бегущем экземпляре?  Дефолтом стоит
db.m4.large
ресурсы созданы, меняю, например, на  
db.m4.xlarge
, изменнеия терраформ подхватывает, но по факту ничего не меняется:

# aws_db_instance.app_db will be updated in-place
 ~ resource "aws_db_instance" "app_db" {
       address                               = "app.noname.us-east-1.rds.amazonaws.com"
       allocated_storage                     = 100
       arn                                   = "arn:aws:rds:us-east-1:270615476192:db:app"
       auto_minor_version_upgrade            = true
       availability_zone                     = "us-east-1b"
       backup_retention_period               = 0
       backup_window                         = "06:46-07:16"
       ca_cert_identifier                    = "rds-ca-2015"
       copy_tags_to_snapshot                 = false
       db_subnet_group_name                  = "db-subnetgrp"
       deletion_protection                   = false
       enabled_cloudwatch_logs_exports       = []
       endpoint                              = "app.noname.us-east-1.rds.amazonaws.com:3306"
       engine                                = "mysql"
       engine_version                        = "5.6.41"
       hosted_zone_id                        = "ZZZZZ"
       iam_database_authentication_enabled   = false
       id                                    = "app"
       identifier                            = "app"
     ~ instance_class                        = "db.m4.large" -> "db.m4.xlarge"
       iops                                  = 0
       license_model                         = "general-public-license"
       maintenance_window                    = "mon:08:46-mon:09:16"
       max_allocated_storage                 = 0
       monitoring_interval                   = 0
       multi_az                              = false
       name                                  = "main"
       option_group_name                     = "default:mysql-5-6"
       parameter_group_name                  = "default.mysql5.6"
       password                              = (sensitive value)
       performance_insights_enabled          = false
       performance_insights_retention_period = 0
       port                                  = 3306
       publicly_accessible                   = true
       replicas                              = []
       resource_id                           = "db-O3QHGGJ6HRNK2XQ6U2RJ5D7VPM"
       security_group_names                  = []
       skip_final_snapshot                   = true
       status                                = "available"
       storage_encrypted                     = false
       storage_type                          = "gp2"
       tags                                  = {
           "ApplicationName" = "app"
           "Env"             = "dev"
           "Name"            = "app_dev_db"
           "SystemName"      = "APP"
       }
       username                              = "root"
       vpc_security_group_ids                = [
           "sg-012400d2d49efc357",
       ]
   }


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

aws_db_instance.app_db: Modifying... [id=app]
aws_db_instance.app_db: Still modifying... [id=app, 10s elapsed]
aws_db_instance.app_db: Still modifying... [id=app, 20s elapsed]
aws_db_instance.app_db: Still modifying... [id=app, 30s elapsed]
aws_db_instance.app_db: Modifications complete after 30s [id=app]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed
Если правильно помню изменения применяются после ребута
источник

IM

Iurii Medvedev in terraform_ru
Если не стоит принудительно применить
источник

GK

Gennadiy Khramov in terraform_ru
Роман Рахманин
Как минимум тем, что его хашикорп вроде как купили и контрибутят со своей стороны хД
А вообще, как минимум, позволяет менеджить не-монолитную инфру в одном репозитории, как минимум
Собственно это причины, по которым я решил посмотреть в его сторону :)
Идея, что он все в гите показывает и через него работает мне нравится - не надо объяснять куда ходить смотреть логи и результаты (типа отдельной ci системы)

У меня вопрос по нему не с целью наехать, а с целью понять - стоит ли есть кактусы с ним.
Например у меня сейчас сделано довольно просто и топорно:
- модули в гите, в приватном репозитории
- S3 remote backend (разные пути для разных проектов в одном бакете)
- для каждого проекта есть отдельный гитовый репозиторий с описанием его инфраструктуры
- секреты для терраформа хранятся в волте и туда же записываются

И вроде бы ничего особенного, но в конфигурировании все  какие-то ньюнасы встречаются. То .gitconfig надо подсунуть, чтобы он приватные репозитории мог видеть; то неочевидный (для меня) способ указания remode backend и непонятно как секреты для достуа отдавать; то почему-то не хочет видеть vault и отваливается по таймауту (хотя соседние приложения в этот vault ходят за своими секретами).
Как остановить применение плана - тоже пока не понятно. Ведь пока он лопатит и применяет не видно лог и нет возможности прервать процесс. Такой кейс у меня имеет право на жизнь.

И я сижу и думаю - либо я не так его готовлю, либо завышенные требования и надо быть проще? :)
источник

РР

Роман Рахманин in terraform_ru
Если имеет быть место необходимость стопать руками - лучше делать руками, получается
источник

GK

Gennadiy Khramov in terraform_ru
Необходимость не частая, но бывает, редко. Я стараюсь избегать таких случаев проверяя внимательно модули, но баги бывают.
Из-за этого прям все-все руками делать не очень хочется.

К тому же для каких-то проектов хотелось бы дать доступ другим командам разворачивать/переразворачивать их инфраструктуру, но без доступа в терраформ и облако. Только к их проекту в гите и не более того.
источник

e

ep4sh in terraform_ru
Да, спасибо большое нашел опцию
apply_immediately
,  если опция не указана изменения произойдут в maintance_window.
источник

MS

Mikhail Sokolov in terraform_ru
ep4sh
Да, спасибо большое нашел опцию
apply_immediately
,  если опция не указана изменения произойдут в maintance_window.
Да не за что..
источник

F

Firestone in terraform_ru
Всем привет. Кто нибудь пробовал ставить несколько версий терраформа на убунту?
источник

РР

Роман Рахманин in terraform_ru
А в чем вопрос?
источник

РР

Роман Рахманин in terraform_ru
Терраформ - бинарник, ставь, переименовывай и юзай
источник

MK

Max Kovgan in terraform_ru
Firestone
Всем привет. Кто нибудь пробовал ставить несколько версий терраформа на убунту?
а в чём, собственно, сложности?
источник

F

Firestone in terraform_ru
Как лучше сделать?
источник

MK

Max Kovgan in terraform_ru
Firestone
Как лучше сделать?
а как вам лучше?
источник

F

Firestone in terraform_ru
Что бы было просто переключаться между версиями
источник

MK

Max Kovgan in terraform_ru
я бы предпринял психически нездоровый трюк.
источник

MK

Max Kovgan in terraform_ru
впиливал бы скачку terraform нужной версии в корневой каталог проекта, напр. в ./bin, обернул бы это makefile-ом
источник