-
Нетерпеливый Globalize и неоднозначный ActiveRecord
История еще одного расследования. Недавно мой проект частично перешел на стратегию сборки Rails приложений AMI + EBS через Packer + Terraform. В рамках этого перехода всплыла одна интересная деталь касающаяся сразу нескольких библиотек –
rake
,rails-observers
,globalize
. Случилось так, что при компиляции ассетов (rake assets:precompile
) на Packer Builder инстансе вывалилась ошибка подключения к БД: -
Terraform Deposed
Нежданно-негаданно наткнулся сегодня на одно из возможных состояний ресурса, которое до сих пор недокументированно. Когда выставляется в жизненном цикле ресурса директива
create_before_destroy
, то как следует их названия прежде чем удалить старый ресурс, сначала создается новый. -
Terraform Output
Terraform позволяет вывести полезную информацию с помощью
output
директивы. Таким образом, после применения изменений к инфраструктуре, можно посмотреть, например, IP адрес замененного EC2 или URI новосозданного RDS инстанса. Есть один интересный ньюанс работы с такого рода выхлопом в рамках Terraform модулей. Давайте рассмотрим следующий пример корневого модуля: s ```HCL output “a” { value = “A” } -
Terraform Template
Небольшая заметка про шаблоны в Terraform. До
terraform 0.12
шаблоны обрабатываются отдельным провайдеромterraform-provider-template
, который идет в качестве плагина из коробки. В будущем обработку шаблонов планируют сделать на базеtemplatefile
встроенной функции. Итак давайте создадим пару файлов – описание конфигурации -
REXML
Сегодня мой друг спросил: “Есть ли возможность парсить XML в Ruby из коробки?”. Несмотря на огромную популярность и де-факто стандарт Nokogiri, в закромах стандартной библиотеки Ruby таки есть классы для парсинга XML – REXML. Давайте пощупаем их за вымя и в будущем лишний раз не будем ставить “пол мира” для того, чтобы обработать несколько конфигурационных XML файлов. Для начала пройдемся по дереву элементов и выведем в STDOUT строкое представление каждого из узлов используя поиск в глубину: