ようへいの日々精進XP

よかろうもん

ruby

小ネタ道場一本勝負 〜 logstash の Ruby filter メモ 〜

tl;dr 今回やりたかったこと サンプル実装 logstash.conf ELK Stack の用意 デモ event オブジェクトへのアクセス方法 Event API GitHub issue 5.x 以前 5.x 移行 影響範囲 その他の filter mutate grok 以上 tl;dr logstash を使っていて、filter でちょっ…

小ネタ道場一本勝負 〜 date コマンドの出力を ISO 8601 フォーマットにしたい 〜

date コマンドで Mac だと Linux だと Ruby だと Python だと 以上 date コマンドで ISO 8601 フォーマットで出力したい時がたまにあるのでメモっておく。 https://ja.wikipedia.org/wiki/ISO_8601 Mac だと date +%FT%T%z 実行。 $ date +%FT%T%z 2017-06-1…

ワンラインで Unixtime から Datetime に変換したいくさ

はじめに Ruby だと Python だと bash だと 以上 はじめに ぽーんと unixtime を渡されても、これはいったい何時何分なんやって思うことがある。 そんな時にコマンドラインでちゃちゃっと変換出来たらカッコイイかな…ということで… Ruby だと $ ruby -v ruby…

Ruby の find と select

うっかり混同しそうになっていたので 参考 Enumerable モジュール メモ 環境 select find 以上 select は find うっかり混同しそうになっていたので 忘れないうちにメモっておきたいと思います。 参考 selectなどの配列の抽出・検索を行うメソッドまとめ - Q…

俺は Linux コンテナについてなんにも解っていなかった 〜 haconiwa で学ぶ Linux コンテナ (1) 〜

追記 直近の Docker 界隈について Linux コンテナ 参考 Linux コンテナとは Linux コンテナを構成する主な機能 OS リソース毎の Namespace cgroup サブシステム こんなにざっくりでは、Linux コンテナは語れないと思うけど haconiwa haconiwa とは haconiwa …

moto ✕ Rspec で Ruby で書いたライブラリをテストするばい(moto チュートリアル 弐)

モト Stand-alone Server Mode example Install moto server Start moto server まずは Help EC2 用サーバーを起動 Ruby Script Rspec で moto を利用してテストを行う 実際にテストを走らせてみると… 以上 おまけ モト inokara.hateblo.jp moto という AWS …

Amazon Elasticsearch Service ドメインを安全(当社比)に操作出来て、且つドメインの設定を toml フォーマットで管理するコマンドラインツールを作った(2)〜 awspec の spec ファイルを吐くようにした 〜

引き続き コマンドラインツールとは言え 例えば Amazon Elasticsearch Service ドメインを作成 作成したドメインを更新 ドメインを削除 以上 引き続き Eryastic の話し。 github.com コマンドラインツールとは言え 所詮は手作業なので、意図した構成であるか…

Amazon Elasticsearch Service ドメインを安全(当社比)に操作出来て、且つドメインの設定を toml フォーマットで管理するコマンドラインツールを作った

作ったもの なんで作ったの? 何が出来る? 何が安全なん? デモ 事前に help 設定ファイル例 Amazon Elasticsearch Service ドメインの一覧を取得する Amazon Elasticsearch Service ドメインを作成する Amazon Elasticsearch Service ドメインを削除する A…

小ネタ道場一本勝負 〜 初体験 Ruby でメソッドの動的生成 〜

なんしよーとや さて、今回 Metric Filter と Subscription Filter を取得するメソッド どこが冗長なん? ということで、一本 define_method を使ってメソッドを動的に生成することにした あざっした なんしよーとや awspec の CloudWatch Logs Resource Typ…

小ネタ道場一本勝負 〜 rubocop で俺のウンコードをリファクタするぞ(Guard clause 取締法違反) 〜

容疑者 たのもう 一本 何が問題か リファクタリング ありがとうございました! 容疑者 Use a guard clause instead of wrapping the code inside a conditional expression. たのもう 以下のようなサンプルコードがあるとする。 def foobar(foo = nil) if fo…

AWS SDK のスタブを使って awspec の generator サンプルを試作するメモ

時代はスタブ さて、今回は awspec の generator CloudWatch Logs の Generator を作るにあたって ということで ここでスタブ サンプルを実装してみました おわり 言いたかったこと 時代はスタブ AWS SDK を使ってツールを作ったりする場合、動作確認で直接…

小ネタ道場一本勝負 〜 Rake からタスクを呼び出す際に実行されるコマンドの出力を止めたい 〜

たのもう 技あり 有効 ありがとうございました! たのもう Rake のタスク実行時に出力されるコマンド… $ bundle exec rake spec /path/to/.rbenv/versions/2.3.0/bin/ruby -I/path/to/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.5.4/lib:/path/to2/vendor/…

Datadog の Monitors 定義を YAML で管理する Chihuahua を Gem でリリースした

なんで作ったのか Gem 詳細は 更新情報 概要 Monitors を Export する際の条件を再利用するようにした 定義の更新、追加後に最新の定義を Export するようにした バグの修正 今後の目標 なんで作ったのか Datadog API Monitors の勉強と将来的には同様の機能…

awspec にプルリクエストした時のメモ

tl;dr awspec とは Rspec 基礎知識 プルリクエストして学ぶ awspec テストしたい AWS リソース テスト toolbox Stub Spec Type Helper /lib/awspec/helper/finder.rb lib/awspec/helper/finder/cloudwatch_logs.rb ちょっとマッチャ lib/awspec/matcher/have…

Datadog の Monitors 定義をコード(YAML)で管理するツール chihuahua を再発明した

tl;dr 作ったもの 使い方 インストール 初期化 既存設定の書き出し 新規登録 更新 削除 ということで Datadog API の Monitors Tips 想定する使い方 codenize-tools tl;dr 既に Datadog の Monitors を管理するコマンドラインツールとして codenize-tools の…

AWS SDK for Ruby から Lambda の update_function_code を叩く時にハマったこと

結局は… 経緯 環境 やりたいこと ドキュメントには ところが… 解決 一つの issue ということで 以上 メモ 参考 結局は… ドキュメントよく読めってことだった 経緯 環境 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1217 $ bu…

Datadog APM を個人的にちょっとだけ触る

2/17 追記 正式リリース Datadog APM ベータ版 Datadog APM とは 用語(ドキュメントの Terminology より引用させて頂きます) Trace Span Service Resource 試してみるばい 今回は Ruby で試すくさ Datadog Agent の導入 今回のアプリケーションは… ddtrace…

PhantomJS を利用してログイン後のサイトを確認(キャプチャを取得)するぞ

ボクが知っているこれまでのサイトの正常性確認方法と今回の課題 確認方法 今回の課題 ということで、PhantomJS というツールを利用することにした 参考 俺のアプリケーション サンプル HTML index.erb(トップページ) main.erb(ログイン後のページ) サン…

ショロカレ 2 日目 | 作成した FTP ユーザーが正しく FTP 操作を行えるかを確認するスクリプト的な何か

これは 何か FTP いにしへのスクリプト いにしへの確認 access.yaml 確認 以上 これは 初老丸アドベントカレンダー 2 日目の記事です。 qiita.com ということで、小ネタ大ネタを交えて 12/25 まで張り切っていきましょう。 何か FTP それはファイルを手軽に…

初老丸のきゃぴきゃぴ Capistrano3 メモ(EC2 Name タグで操作対象を絞り込んでコマンド操作してみる)

きゃぴきゃぴ 参考 メモ やりたいこと 準備 ファイル達 config/deploy.rb config/deploy/dev.rb 実行 以上 きゃぴきゃぴ してますか。 Capistrano はバージョン 2 の時代に少し触ったことがあったんですが、改めて Capistrano 3 を用いて EC2 Name タグで操…

ほのぼの Rake タスクで S3 のバケットポリシーをちょっと管理する(表示と export と diff と update するだけ)

最近 タスク Rakefile 使い方 最後に バケラッタ Rake って 最近 ギョームで S3 バケットを更新する作業があったので、ほのぼの Rake タスクで汎用的に管理出来る感じにしてみました。 タスク Rakefile require 'aws-sdk' require 'diffy' require 'json' PO…

logstash のアウトプットプラグイン作成チュートリアル

tl;dr logstash を理解するあたってプラグイン作ってみることにした。 参考 www.elastic.co github.com 雑なうんちく logstash プラグインの種類は? Input plugins Output plugins Filter plugins Codec plugins 実装は? logstash は JRuby で実装されてい…

2016 年 10 月 17 日(月)

朝の読書 WinRM 手羽中 理不尽 弁当 朝の読書 メタプログラミング Ruby の第一章 「メタプログラミングとはコードを記述するコードを記述することである」 途中まで読んでいた「メタプログラミング Ruby」を改めて最初から読み始めた。 WinRM HTTPS な WinRM…

2016 年 10 月 10 日(月)

一気に秋がきた ジョギング Amazon Elasticserch Service で es_rejected_execution_exception エラー 背中を痛める 70-533 勉強 Sinatra アプリケーションで Could not find backports-3.6.8 in any of the sources 夕飯は 一気に秋がきた 涼しいをちょっと…

IAM Role を付与した EC2 インスタンスから Amazon ES にアクセスするメモ(Ruby 版)

tl;dr Amazon ES のアクセス制御を IP だけでしかやったことなかったので、実運用を考慮すると IAM role で制御する場合の方法を模索してみましたの Ruby 版。 参考 http://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-creat…

ラムダこりゃ(Amazon Lambda チュートリアル 6)〜 AWS Lambda で JRuby を 30 分位試したメモ 〜

まったく筆が乗らないかっぱです。 tl;dr aws.typepad.com 8/9 の AWS上でのサーバーレスアーキテクチャ入門 を何気なく聞いていたら JRuby という単語が聞こえてきたので、「あー、確かに Lambda で Java は動くから JRuby を使えば内部処理は Ruby で書け…

福岡は Ruby に縁がある街なので、その県民として Ruby Association Certified Ruby Programmer Silver version 2.1 を受験してきた

ども、かっぱです。 tl;dr 福岡は Ruby に縁がある街だと勝手に思っているので、その県民としての義務を果たすべく Ruby Association Certified Ruby Programmer Silver version 2.1 を受験してきたのでメモ。 www.ruby.or.jp ちなみに、福岡には以下のよう…

Array クラス、String クラスとかパーセント記法(Ruby)

tl;dr Array クラスのメソッドをちょろっと触ってみたメモ。 参考 http://ref.xaio.jp/ruby/classes/array/delete_if http://ref.xaio.jp/ruby/classes/array/reject_bang メモ delete_if メソッドと reject! メソッド 要素の数だけ繰り返しブロックを実行し…

配列の & 演算子と | 演算子と + 演算子と - 演算子(Ruby)

tl;dr これもよく記憶が飛んでしまうので...メモ。「愛しさと切なさと心強さと」みたいなタイトルですいません。 メモ & 演算子 両方に含まれる要素を配列で返す $ ruby [1] pry(main)> a = [1,2,3] # 配列の生成 => [1, 2, 3] [2] pry(main)> b = [1,3,5] #…

配列の添字演算子メモ(Ruby)

tl;dr すぐに混乱するのでメモ。 memo $ pry [1] pry(main)> a = [1,2,3,4,5] # 配列生成 => [1, 2, 3, 4, 5] [2] pry(main)> p a[0,5] # a[0] から 5 つの要素 [1, 2, 3, 4, 5] => [1, 2, 3, 4, 5] [3] pry(main)> p a[0..4] # a[0] から a[4] まで [1, 2, …

ついカッとなって Neustar のコマンドラインツールを作ってみたくさ

tl;dr ついカッとなってシリーズ化したい。 そんなにカッとはなっていないけど、ギョームで利用している Neustar の Web UI がたまに重かったり、負荷試験の自動化なんかを視野にいれるとコマンドラインツールとかあると嬉しいようなあと資料を見ていたら、…

ruby-jmeter tips(1)

tl;dr ruby-jmeter の tips というか、自分がハマった事などを雑にメモ。ハマったら追記してくことにする。 Throughput Shaping Timer を呼び出す際の注意 注意点 メソッドが記述されたファイル名では呼べないので注意 lib/ruby-jmeter/dsl.rb を見た方が良…

XML は解らなくても JMeter はキライにならないでクダサイ!(ruby-jmeter チュートリアル)

ども、かっぱです。 tl;dr JMeter で行う負荷試験のシナリオを触る機会を得たので、以前から導入したかった ruby-jmeter を導入しようとしたメモ。 github.com 参考 https://github.com/flood-io/ruby-jmeter http://jmeter.apache.org/usermanual/ http://s…

JMeter の CSV 結果を eEK Stack(embulk + Elasticserach + Kibana) で可視化する考察

JMeter を復習し始めているかっぱです。 tl;dr JMeter が標準で出力する CSV ログを Embulk と Elasticsearch + Kibana で可視化してみようという考察です。 参考 https://github.com/mitchellh/vagrant-aws https://github.com/edtoon/vagrant-rsync-pull h…

RDS(MySQL) のスロークエリを EFK スタック + Docker で出来るだけ手軽に可視化する考察(2)〜 log_output: FILE の場合 〜

tl;dr RDS のスローログ等はテーブル又はファイルに記録することが出来る。前回は、テーブルに記録する設定を用いて、テーブルからログを定期的に読み込んで EFK スタックで可視化する仕組みを考えた。 今回はテーブルではなくファイルに記録する設定を用い…

ssh の config ファイルを書き出したり、書きだした config ファイルを利用して ssh でアクセスする Rakefile のサンプル feat. ecs-cli

ども、おひさしブリーフ、かっぱです。 tl;dr ecs-cli を触っていて、立ち上げたコンテナインスタンスに ssh でアクセスしたい時に ssh の config ファイル作ったりするのが面倒だなあと思ったので rake コマンド一発で config ファイルを生成するタスクを書…

Packer をパカパカしたくて Rakefile を作って Windows Server の AMI を作成して Serverspec でテストするメモ

tl;dr Windows Server の EC2 AMI を作りたくて Packer を久し振りに触っていたら、テンプレートを修正してビルドして成果物(AMI)を起動して確認するという繰り返しを出来るだけ簡素化したくて Rakefile に落とし込んでみた。(以前に作っていたものを更新…

(朝の 15 分八苦)Docker Compose とデータ用コンテナを使ったデモ

tl;dr Docker Compose とデータ用コンテナを使って、画像をアップロードしてデータコンテナに保存しつつ、ブラウザでアップロードした画像を見ることが出来る環境を作成してみました。 教材 github.com 1. データ用コンテナ 1.1. データ用コンテナ Docker で…

ecs-cli チュートリアル(2)~ ECR のコンテナイメージを利用する ~

ども、かっぱです。 tl;dr 以前から気になっていた ecs-cli から ECR のコンテナイメージをどうやって使うのか。実際にやってみたら難しくなかったけど念のためにメモっておきます。 memo 試した環境 構築した環境 ecs-cli を叩く環境 i$ cat /etc/lsb-relea…

シェルスクリプト と Ruby と Python で ctrl + c を捕捉するメモ

ども、ハゲです。 tl;dr ループさせているスクリプトを ctrl + c を押して止めたことを捕捉したいと思って調べたメモ。 メモ シェルスクリプト ver #!/bin/sh trap 'echo "trapped."; exit 0' INT echo "停止したいは ctrl + c を押して下さい" while : do d…

Ruby スクリプトから Windows Server のイベントログにログを送る雑なメモ(2)〜 メッセージファイルを作成してメッセージ ID をレジストリに登録する等 〜

ども、初老丸です。 tl;dr 前の記事で Ruby で Windows Server のイベントログにログを送ることが出来た。出来たように見えて、ログを CloudWatch Logs に飛ばしてみると以下のようなログが記録されるだけ。 [Application] [Information] [65500] [Applicati…

Ruby スクリプトから Windows Server のイベントログにログを送る雑なメモ(1)

ども、初老丸です。 tl;dr Windows Server 上で Ruby スクリプトを動かしておいて...前の記事の続きです。 参考 https://rosettacode.org/wiki/Category:Ruby https://github.com/djberg96/win32-eventlog メモ 引き続き構成は... Ruby の環境は... こちらか…

オペミス防止、削減の為にいつも打っているコマンドを rake コマンドに置き換えるマイクロ八苦の続きメモ

tl;dr 前回の「オペミス防止、削減の為にいつも打っているコマンドを rake コマンドに置き換えるマイクロ八苦」の続きということで、も少し凝った(自分比)ことをやる。 メモ 参考 https://github.com/ruby/rake http://docs.seattlerb.org/rake/ http://ww…

オペミス防止、削減の為にいつも打っているコマンドを rake コマンドに置き換えるマイクロ八苦

追記(01/25) rake で置き換えても rake タスクを間違うことを考慮すると完全にはオペミスを撲滅出来ない点は注意。ただ、特に初老を過ぎた私にとっては長くて覚えにくいコマンドを短縮化出来たり、rake -T でタスク一覧を確認出来たりする点で rake コマン…

(超メモ)Elastic Beanstalk で ECR の Docker イメージをデプロイするメモ

ども、かっぱです。 tl;dr aws.typepad.com とのことでちっくと試してみました。 メモ 引き続き教材は github.com 引き続き Worker Tire で Cron っぽいやつをやってみます。 ひとまずは ECR に build して push リポジトリを作る $ aws --region us-east-1 …

背伸びして Effective Ruby を読んだ

Ruby 一年生だけど西尾先生に進められて読んでみた。 booklog.jp 一年生には内容的に難しかったけど、各章が 1 ページ程度の項目に分割されていてとても読み易かった。 序文に Mitchell Hashimoto 氏が述べているように、「何?」と「どのようにして?」に合わ…

Serverspec に送ったプルリクエストをマージして頂けたのがとても嬉しかったのでメモ

Serverspec に小さな機能追加のプルリクエストを送ったらマージして頂いてとても嬉しかったので、自分なりに機能追加のポイント等を整理したことをメモる。内容に誤り等あれば適宜アップデートしていく。 プルリクエスト github.com 以前にプルリクエストを…

シェルスクリプトも頑張りたいオプスが正月三ヶ日で解った気になる Rspec と Travis CI

新年はげましておめでとうございます。 はじめに ずっとやらなきゃって思って引きずってきた Rspec をやってみる ちゃんとうんちくを押さえておきたいけど、まずは写経したりサンプルを弄ったりしながら 合わせて Rspec を Travis CI で実行させてみる 以下…

gem 初め(LXD REST API Client for Ruby と test-kitchen driver for LXD REST API をリリースした)

tl;dr 書き初めのように gem 初めをしたのでメモ。 oreno_lxdapi (0.0.1): lxdapi https://t.co/BJE7uf9yqz— RubyGems (@rubygems) 2016, 1月 2 kitchen-lxd_api (0.0.1): A Test Kitchen Driver for LxdApi https://t.co/SOR3SOtQ27— RubyGems (@rubygems) …

超メモで走り切る 2015 年(6) LXD REST API を使った Test Kitchen のドライバを作ってみたメモ

tl;dr LXD の REST API を使った Test Kitchen のドライバを作ってみたのでメモ。 既に LXD には kitchen-lxd_cli というドライバが存在していて、特別な理由が無い以外は kitchen-lxd_cli のドライバの利用をオススメしたい。(コンテナのリソース制御等も…