what2016-04-30Kumogata2連休に入って酒量が増え体重も増え、昼夜わからない生活をし、ridgepoleのRails5対応はFが減らず、必要に駆られて使い始めたElasticBeanstalkの闇が見え始めた現実から目をそらすため、以前から懸案だったCloudFormation用ツールKumogataの次世代版を作ってみました。なにが問題だったのかaws-sdk-v1v1もまだまだ現役で使えるとはいえ状況を見る感じだいぶv2が主流になってきて、このままv1を使い続けるのはリスキー...なんだけどライブラリを変更するのが地味に大変。大量のFでモチベーション低下モノリシックKumogataは「フォーマットコンバーター+便利ツール」というもので、この2つは論理的に切り離すことができるはずなんだけど、初期の設計に建て増しを繰り返した結果、拡張がひっじょーにしづらい状況。おまけに対応フォーマットの追加に付随してgemもばかすか追加したからインストールが重い・めんどい。therubyracerへの依存はやりすぎだった。DSLで書くライブラリを作ったんですが、裏で結構変なことをやっているので、テンプレート全体をRubyDSLとして評価するのはリスキーな感じです。end」というブロック内だけでDSLを評価して、外部に黒魔術の影響を漏れ出さないようにすべきと考えていたけれど、すでに込み入ったソースを回収するのはちょっと大変いくつかの不要そうな機能パラメータの暗号化とか初期に必要そうだったので追加した謎機能がいくつかあって、たぶんほとんどのユースケースで使われておらず、コードのスパゲッティ化に貢献Kumogata2ということで、連休と現実逃避とビール・チューハイ20本ぐらいの結果、Kumogata2が爆誕しました。暗号化みたいな謎機能は削除。待望...だけど割とびみょーな機能のChangeSetにも対応。v1とだいたい同じです。end」内に定義post処理の実行が変わった_post()メソッドがなくなって、template()と同階層post()メソッドでコマンドを実行するようになります。これにより任意のRubyコマンドがたたけるので、sshなりシェルコマンドの実行なりはそこでやってください、とう感じです。'{"WebsiteURL"=>"http://ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com"}'endPluginparse()とdump()メソッドを定義したクラスを作れば簡単に作れます。yamlをパースするプラグインを作ろうと思ったらlib/kumogata2/plugin/yaml.rbを含むgemをkumogata2-plugin-yamlという名前で作って、yaml.rbを以下のようにすればOK。#endendCodeRayが対応していれば、いい感じに色づけしてくれます。(もちろんttyをみて適時色なしにします)。SNS+Lambda+CloudFormationで簡易CI先ほどの記事に引き続き。v0.2.8.beta2をリリースしました。0.4.8で動作確認。v0.3.5をリリースしました。v0.7.6でignoreという属性をつけられるようにしたapexでrubyをデプロイするactive_record_mysql_xverifyaudit.logのパーサを書いた月別アーカイブはてなブログをはじめよう!winebarrelさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。