Cfdef: CloudFrontをコード化するやつ

github.com こんなん。 export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' cfdef -e -o CFfile # export CloudFront vi CFfile cfdef -a --dry-run cfdef -a # apply `CFfile` require 'other/cffile' distribution "EXAMPLEID" do aliase…

Repol: ECRのレポジトリをコード化するやつ

github.com こんなん。 export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' repol -e -o Repolfile # export Repository Policy vi Repolfile repol -a --dry-run repol -a # apply `Repolfile` Help require 'other/repolfile' repository…

CloudWatch Logs用 cat / tailf

作った github.com $ cat hello | cwlogs-cat -g my-group -s my-stream github.com $ cwlogs-tailf -g my-group -s my-stream 2016-05-13T01:51:18+09:00 foo 2016-05-13T01:51:18+09:00 bar 2016-05-13T01:51:19+09:00 zoo ... $ cwlogs-tailf -g my-group…

mappru: VPC Route Tableをgitで管理するやつ

勢いで実装できそうだったので、実装してみました。 github.com mappru -e -o RouteTableでVPC Route Tableをエクスポートして、mappru -aでRouteTableファイルを適用します。ファイルに書いてないVPC・Route Tableは管理対象外となります。 あと、重要な点…

bukelatta: S3のバケットポリシーをgitで管理するやつ

連休なのにこんなことをやっているのもアレなんですが「S3のバケットポリシーをコピペして目視確認」という作業を見てカッとなって作りました。terraformを使った方が手っ取り早かったかも… https://github.com/winebarrel/bukelatta bukelatta -e -o Policy…

Kumogata2

連休に入って酒量が増え体重も増え、昼夜わからない生活をし、ridgepoleのRails5対応はFが減らず、必要に駆られて使い始めたElasticBeanstalkの闇が見え始めた現実から目をそらすため、以前から懸案だったCloudFormation用ツールKumogataの次世代版を作って…

TinyMysql

TinyMysqlというRubyのライブラリ的何かを作ってみました。 tiny_mysql.rb · GitHub gist.github.com これはなに? MySQLのCLIを使ったRubyのMySQLライブラリです。 普通のMySQLのライブラリと違ってCLIさえインストールされていればどこでも使えます。 なん…

Roadworker v0.5.6.beta7とIAMキーをPublicにした件

トレタのブログのおかげでちょっとだけスターが増えたRoadworkerを更新し、v0.5.6.beta7をリリースしました。 ヘルスチェックの新しい属性regionsをちゃんとサポートするようにしました。 github.com で、ですね。ついでにTravis CIで使っているIAMキーをパ…

Hashのエントリの順序を操作するhash_order_helperを作った

Hashのエントリの順序を破壊的に更新したいということが希によくあるので、エントリの順序をArrayのように操作できるメソッドを追加するhash_order_helperを作った。 github.com 以下のような感じで、Hashのエントリの順序を操作できる。 require 'hash_orde…

シンプルなERBのヘルパー ERBh を作った

シンプルなERBのヘルパー ERBh を作った…というか、先日作ったrspec-match_fuzzyから分離・独立させた。 github.com 以下のように、1メソッドで変数の定義とEBBの評価が行える。 require 'erbh' include ERBh erbh('<%= @foo %>, <%= @bar %>', foo: 100, ba…

モダンな書式のHash#inspectを作った

なんだかんだで必要になるわりにそれっぽいgemが見つからないので、モダンな書式のHash#inspect — hash_modern_inspectを作った。 github.com 使い方は以下の通り。 hash = { foo: ['FOO', {baz: 100}], bar: {zoo: 200}, "hoge"=>"piyo" } hash.modern_insp…

空白空行を無視するrspec-match_fuzzyを作った

なんだかんだで必要になるので、空白空行を無視するrspecのmatcher、rspec-match_fuzzyを作った。 github.com 以下の例は空白空行を無視してマッチする。 it '...' do str1 = <<-EOS London Bridge Is Broken down, Dance over my Lady Lee. London Bridge I…

Ridgepole v0.6.4

業務でも使ってみて問題なさそうな感じなので v0.6.4 をリリースしました。 github.com 主な変更点は以下の通りです。 Add --use-external-script option Add --mysql-use-alter option Add --alter-extra option Add --dump-with-default-fk-name option Su…

miam 0.2.3.beta: カスタムManagedPolicyサポート

某カンファレンスの裏側で、ひっそりとIAM管理ツールmiamのv0.2.3.betaをリリースしました。 github.com 「対応しないと」と思いつつ対応できていなかったカスタムManagedPolicyをサポートしました。 managed_policy "my-policy", :path=>"/" do {"Version"=…

Hexにライブラリを登録してみた

Elixirの勉強の一環としてHexにライブラリを登録してみた。 banner | Hex github.com Ubuntuのsysvbannerをポートした小さいライブラリ。 iex(2)> IO.puts Banner.banner("hello") # # ###### # # #### # # # # # # # ###### ##### # # # # # # # # # # # # …

メールアドレスをマスクしてpostfixのログをfluentdに流す

前回の記事のfluent-plugin-filter-parse-postfixはデフォルトでメールアドレスをマスクするようにしている。 <source> @type tail path /var/log/maillog pos_file /var/log/td-agent/postfix-maillog.pos tag postfix.maillog format none </source> <filter postfix.maillog> @type grep regexp1 me</filter>…

postfixのログをfluentdに入れる a.k.a. ぅゎrubyっょぃ

Postfixのログの「status=...」の行をfluentdに流そうと思ったんですよ。 要件としては メアドはマスクしたい メアドからドメインとりたい statusは値と詳細に分けたい 大量にメールが流れるので早くしたい それで何も考えずにCの拡張ライブラリを作って、そ…

ridgepole+alter .. , lock=none

Ridgepole v0.6.4で、ALTER文にLOCK=NONEとか付けられるようにしました。 $ ridgepole -a -c '{adapter: mysql2, database: employees}' --alter-extra="LOCK=NONE" --dry-run Apply `Schemafile` (dry-run) add_column("dept_manager", "to_date2", :date, …

ridgepole+pt-osc

Ridgepoleに--external-scriptというオプションを付けました。 更新SQLの実行を外部スクリプトで行うオプションです。 これで、一応pt-oscを使って、DDLを実行できるようにはなりました。あとは、MySQLのALTER文で末尾にLOCK=NONEを付けるとか。 ただ、MySQL…

CloudWatch Logsを見るやつ作った

LogsFlowというCloudWtach LogsのビューアWebアプリ作りました。 github.com 検索とかは全然なくて、だた見れるだけ。 URLが/groups/my-group/streams/my-streamsのようにREST的なので、適当なツールからぱっとログを見るのにはいいかも。 あと、/groups/my-…

Barkdog v0.1.3

DatadogのアラートDSL管理ツール Barkdog v0.1.3をリリースしました。 github.com Libratoで監視まわりを全部まかなおうとしてたとき、アラート管理にはテンプレート必須だなー、と思ったのでつけました。 以下のように、いろんな箇所でテンプレートつかえま…

Miam v0.2.2.beta3

Miam v0.2.2.beta3をリリースしました。 github.com 主な変更点は以下の通り。 Improve update (show diff) Support Template Add --ignore-login-profile option Sort policy array Improve update (show diff) いままでdry-runではアップデート後の値しか…

Roadworker v0.5.6.beta2

Roadworker v0.5.6.beta2をリリースしました。 github.com Calculated Health Checks/Latency Checksのサポート Calculated Health ChecksとLatency Checksをサポートしました。 Calculated Health Checksはこんな感じ。 rrset "zzz.info.winebarrel.jp", "A…

fluent-plugin-munin-nodeを作った

先日に引き続いて、fluent-plugin-munin-nodeを作りました。 github.com これは何? munin-nodeからmetricsを取得するためのfluentdのプラグインです。 実はすでに同様のプラグインがあったりするんですが、いくつか不満があって改修量が多そうだったので、…

fluent-plugin-zabbix-agentを作った

fluent-plugin-zabbix-agentというfluentdのプラグインを作りました。 github.com zabbixのpassive checkを使って、zabbix-agentから、各種メトリクスをfluentdに流すInputプラグインです。 使い方 以下のような設定ファイルを書くと、指定したitemをzabbix-…

続Libratoコード化: Space・Alertでテンプレートを使う

先日の記事で紹介したLibrato管理ツール「lbrt」にテンプレート機能を付けました。 winebarrel/lbrtgithub.com 基本的な使い方は以下の通り。 template "dstat" do chart "load_avg" do type "line" stream do metric "dstat.#{context.space_name}.load_avg…

Libratoをコード化しました

最近、業務案件でLibratoを使っています。 Libratoはメトリクス収集のSaaSで、メトリクスの収集とアラートの設定・通知ができます。 たぶんDatadogとかが競合になるんじゃないでしょうか。 Datadogほど多機能ではないですが、「グラフを書く」「グラフを並べ…

GitHub+Amazon SNS+Lambda+CloudFormationで簡易CI

先ほどの記事に引き続き。 GitHubからAmazon SNSでLambdaにイベント飛ばせば簡易CIができそうだだったので作ってみた。 処理の概要 GitHubにpush→Amazon SNS→Lambdaにイベント Lambdaがイベントをフック→cfnスタックを作成 cfnスタックがEC2インスタンスを起…

S3+Lambda+CloudFormationでサーバレスyumリポジトリ

先日の記事で、大きめの処理をLambda+CloudFormationで実行するめどがついたので、S3+Lambda+CloudFormationでサーバレスyumリポジトリを作ってみた。 処理の概要 S3にrpmを追加・更新・削除 Lambdaがイベントをフック→cfnスタックを作成 cfnスタックがEC2イ…

Lambdaと自殺するCloudFormation

rpmがS3に追加されたらLambdaでインデックス更新するやつを作ろうと思ったんですが、awscli-bundle.zipをダウンロードして /tmpに解凍して いろいろオプション付けてインストールして … 時間的に無理!という結論になりました。 でまあ、いろいろ考えてみて…