アルパカchef日記3日目 data bagについて / またはユーザ管理クックブックなど

2日目の続き。 コンセプトはこちらをご参照下さい。 3日目の目標 ユーザ管理(data bag) ユーザ作成 bash_profile管理 sudo ここの段階で ec2-userのsudo権限を剥奪し、新ユーザにsudo権限を付与 security_limit 3日目を始める前に:data bag ユーザ情報な…

rpm dbが壊れたときは

Chefからyum update走らせてたら以下のようなエラーが発生するようになってた。 _rpm.error: rpmdb open failed 以下のコマンドでローカルキャッシュを作りなおしたら復旧した。 sudo yum clean all sudo rm -f /var/lib/rpm/__db* sudo rpm --rebuilddb

アルパカChef日記番外編 VimでChefクックブックを編集する時に便利かもしれないプラグイン

今回は少し趣向を変えて、Vimのお話。 自分はビマーなので、ChefのクックブックをいじるのにもVimです。 そこでVimでクックブックを書く時に便利(?) かもしれないプラグインやScriptを紹介してみます。 chef.vim http://www.vim.org/scripts/script.php?s…

SQLAlchemyでデータベースの master / slave 参照切り替えを行う

SQLAlchemyで 「更新はMasterDB」 「参照はSlaveDB」 ということを実現したかったので調査メモを残しておく。 カスタマイズSessionクラスを作ってその中でMaster/Slave判定すれば良いようだ。 サンプルアプリケーション Flask使ってみる。 config.py # Maste…

Provisioning Frameworks Casual Talks vol.1 に参加しました

※2013/5/12 先着順受付についての記述追記 最近弊社のプロジェクトでもchefを少しずつ導入してることもあり、 先人の知恵を拝借すべく参加いたしました。 新卒研修でserverspecとChefを使った話(@fujiwaraさん) http://dl.dropboxusercontent.com/u/224433/p…

アルパカchef日記2日目 OS周りのクックブックなど

1日目の続き。 コンセプトはこちらをご参照下さい。 2日目…の前に補足など バージョンや構成についてのメモ。 chef 11.4.0 knife solo 0.3.0-pre4 ディレクトリ構成 基本的には knife solo init で作られたものです。 ▾ / ▸ cookbooks/ # Berkfileで管理す…

GW中にTwitterのアカウント名にパワーゲージを設定するアプリ作った

http://dry-dawn-2991.herokuapp.com どういうものか TwitterのOAuth完了後、パワーを選択して更新すると 自分のTwitterプロフィールの後ろにパワーゲージが設定されます。 何度でも更新可能。 クリアも可能。 500 エラーは出るものと心得よ 原因1 あなたの…

アルパカchef日記 1日目

1日目:chefを使うための前準備 今回はchefを使える状態になるまでの前準備とします。 chef自体の説明ですが 「chefとは何か?」「chef-serverとchef-soloの違いは?」 といった説明は省略します。 また chef-solo / knife-soloを使うための環境準備につい…

アルパカchef日記 0日目

0日目:概要 日々、chefと戯れる様子を淡々と綴ってみるよ。 アルパカchef日記のゴール knife soloを用い、EC2の生AMIに対して 以下の作業を一切サーバにログインせずに 全て達成すること を目標にしたいと思います。 ユーザ設定 ミドルウェアのインストー…

Amazon SQSを効率よく処理するための簡単なサンプルコード(perl / python)

Amazon SQSって便利だと思うんですがWeb上の情報って意外と少ないですよね。 実際SQSを使う際に効率よく、かつお金も節約できるような サンプルが欲しかったので書いてみました。 ワーカーで効率よく処理するため2つのポイント この2つを気にするだけでだ…

python-memcachedでunix domain socket接続する

hostを指定する所でそのままunixドメインソケット指定すればよい。 import memcache mc = memcache.Client(['unix:/tmp/memcached.sock']) mc.set('foo', 'bar') print mc.get('foo')

SQLAlchemy+MySQLでマルチバイト扱ったら文字化けた時の対応

マルチバイト扱ってたら以下のようなエラーが発生。 Failed to update model. 'latin-1' codec can't encode character u'\u3042' in position 15: 接続するときのコードはこんな感じ。 DBもクライアントもutf8指定してるのになーって感じ。 DSN = 'mysql://…

python httpクライアントのベンチマーク

http叩きまくるアプリ書いてるのでベンチ取ってみた。 requests遅いように見えるけど、 そこまで気にする差ではないとおもう。

curl/httpie 比較チートシート

CLIでJSONの整形をする http://yuroyoro.hatenablog.com/entry/2013/04/02/190709 httpie インストールが必要になってしまいますが httpのレスポンスを整形したいだけであればhttpieも便利です。 https://github.com/jkbr/httpie pip install httpiejsonコン…

python - HTTPrettyでhttp通信を奪う

Mockモジュールでもいいっちゃいいんだけど 偶然見つけたので試してみた。 HTTPretty https://github.com/gabrielfalcao/HTTPretty GETを奪う HTTPretty.register_uriで奪いたいURLと期待するレスポンスを書くだけでOK。 # encoding:utf-8 import unittest f…

今月はすこぶる調子が良い

先月くらいまであんまり調子でなくてモチベも上がらなくてうへ〜(^q^) って感じだったのですが今月入ってからはだいぶ良い感じです。 効果の程はわからないですが 調子が上がってきていたときに何をしていたか(心がけていたか)を振り返ってみる。*1 軽く体…

もっと気軽に質問したり相談したらいいのに

※9割くらい自戒 ※若干酔ってる なんというか、みんな「忙しそうだし…」とか「下らない質問だけど…」みたいに 遠慮しすぎてあんま人に聞いたりしない気がするんだけど もっとがんがんくだらない事を聞いたりしたらいいのになーと思う。 たしかに「教えて君」…

DS61で家のPC新調したよ〜

嫁のメインPCである自宅Windowsマッシーンが最近調子悪いよ〜、とのこと。 よくよく調べてみると調子悪いのはディスプレイだけな気もするんですが 前回自作してから既に5年以上経過してるのもあり いい機会だしそろそろ買い換えるかー とデスクトップマッシ…

IRCサーバを立てて色々連携してみたメモ

IRC

やっとこさ今の現場に znc / irc / ikachan という環境を構築し、 テンションが上がって勢いで作業したことをメモってみます。 正月休みにのんびりコーディングしてました。 やったこと一覧 fluentdでnginxのエラーログを監視してikachanに投げる nagiosから…

socket.ioのxhr-pollingがボトルネックになっていたのはhttp-proxyの設定が関連していた!!!

こちらの続き。 そもそもなぜxhr-pollingのベンチをとりたくなったのか スマートフォン向けのアプリだったのですが、実際にリリースしてみた結果 socket.ioのtransportでxhr-pollingが予想より多く発生していて、 さらにxhr-pollingによるレスポンス遅延がみ…

socket.ioでxhr-pollingのコネクションが詰まる件(解決

※2012/01/09 追記 続きもあるよ あらすじ 先月晴れてsocket.ioクラスタがデビュー。 しかし想定していたよりxhr-polling接続が多くてフガフガな状況に。 こりゃxhr-pollingの性能評価もしとくべきだったなーと思いを馳せるアルパカ。 そこでsocket.io-client…

写真や動画をAmazon Glacierに置くようにしてみた

Amazon Glacierは低コストでデータおけるクラウドストレージです。月額およそ1G/1円。 http://aws.typepad.com/aws_japan/2012/08/amazon-glacier-archival-storage-for-one-penny-per-gb-per-month.html ずっと残しておきたいもの(子供の写真とか動画とか…

2012年のアルパカ

振り返ってみようではないか。 業務 1−3月 バスキュールに転職。 Perlでスマホ向けニュースサイト作ってた。 4月−8月 リアルタイム的な何かの調査/開発など。 socket.ioとだいぶ格闘した。 9月ー12月 案件Joinして「ウリィィィィ!!!!」ってなっ…

expressやsocket.ioのテストはこんな感じで書いてます、というお話

最近仕事ではNode.jsしか書いてないtoritoriです。 お仕事でもexpressやsocket.ioを使っているのですが WebアプリケーションのテストについてWeb上にあまり書かれていないような気がします。 特にソケット接続した後のメッセージ送信/受信の部分です。 今ま…

supervisor配下でcluster.jsを動かすためのTips

現在nodeアプリケーションをsupervisordでデーモン管理しているのですが、 こいつをcluster.jsでマルチコア対応したところ デーモン管理から外れてしまうという現象が発生しました。 発生する小さなスクリプト var cluster = require('cluster'); var numCPU…

fluentdで自ホスト名を自動でタグにするの巻

※追記 http://d.hatena.ne.jp/tagomoris/20120806/1344240513 さらに書きやすくしていただいたようです! http://d.hatena.ne.jp/toritori0318/20120723/1343059303 この記事の補足です。 上記記事では複数サーバを自動で判別したいがために わざわざplackア…

Redmineのガントチャートのソートを直す一行パッチ

Redmineのガントチャートってどうしてあの並びなんでしょうね? 直感的には上から順にバージョンの日付で並べたい! というわけで、「バージョン」タブと同じように バージョンの完了日付でソートするための一行パッチ。 --- lib/redmine/helpers/gantt.rb.o…

dstatをfluentd+growthforecastでグラフ化(後編)

前編の続き。 続きとはいってもGrowthforecastの複合グラフを作るスクリプト書いたっていうだけの記事です。 スクレイピングでがんばった!w 書き捨てもいいところですね… config.yaml 先ほどのdstatの複合グラフを作りたい時はこんなかんじでしょうか --- …

dstatをfluentd+growthforecastでグラフ化(前編)

とあるクラスタ(複数台あるサーバ)に対して性能評価しているときに dstatでリアルタイムに数値見ながら評価したいんですが さらにまとめてリアルタイムグラフ化出来たら嬉しいのではないかなーと。 お、これはfluentd+growthforecastの出番では…! と思い…

DynamoDBのメモ書き+使ってみた雑感

Amazon DynamoDBを使う機会があったので メモ書きと雑感を書き残してみます。 なんか間違ってたらツッコミ欲しいです。 Amazon DynamoDBとは ざっくりと噛み砕いて説明すると 「SSDでめちゃ速くて勝手にスケールしてくれるKVS」 ですかね。 詳しくは公式ドキ…