2013-01-01から1年間の記事一覧

nginx-lua-moduleでLuaスクリプト書いてみた

プロダクトでWebサーバ上の現在時刻出したい要件がありました。 これぐらいの処理ならアプリケーション介さずともnginxだけでやりたいですね。 現在時刻ヘッダーにつけるならnginx標準機能で出来そうなんですが、 深淵なる理由からコンテンツとして欲しいと…

chefでattributeファイルを上書きしたい時

attributeファイルのオーバーライド 公式レシピを使う場合に、attributesファイルの一部のパラメータだけ更新したい時があると思います。 jsonでいちいち指定しても良いんですが、共通で設定したいパラメータは site-cookbooks以下にattributesファイルで書…

vagrant-awsからメタデータ表示するvagrant-ec2info書いた

https://github.com/toritori0318/vagrant-ec2info vagrant-aws使いまくっているんですが、 そのインスタンスのdnsとかタグとかさくっと表示したいなーと思って書きました。 そんだけ。 こんなイメージです。 vagrant-aws必須。

vagrant-awsを利用したイイカンジ(?)のAWS開発フロー

Vagrantでupとdestroy繰り返すのが大好きです。アルパカ大明神です。 DevOps 社内でデブオプスを推進していることもあり、 まず第一歩として進めているのが ローカル開発環境構築 ローカルVagrantでのアプリケーション開発 EC2への環境構築 デプロイ クラス…

RE:ブログを続ける意味

http://anond.hatelabo.jp/20130911125217 ブログに書くの、もちろん自分の備忘録という意味もあるんですが 自分が書いた記事が誰かの手助けになれればいいかなー というモチベーションが大きくて続けています。 自分も他の方のブログで助けられたことが何度…

AmazonElastiCache Redisがデター!デター!

ElactiCache Redisがデテター!デテター! 【AWS発表】 Amazon ElastiCacheでRedisを利用可能に! http://aws.typepad.com/aws_japan/2013/09/amazon-elasticache-now-with-a-dash-of-redis.html 社内Redisおじさんとしては触ってみるしかないであろう、 とい…

CloudFormationでAutoScale管理すると便利+α

AWS

巨大なJSONファイルをメンテするのが嫌で今までCloudFomationを避けていたのですが、 とある要件があり先日からがっつりCloudFormationを触り始めています。 実際使ってみて、特にAutoScaleを管理するのがだいぶ楽ちんだなーとおもったので その辺りをメモが…

Packer+chef-soloでAWSのAMI構築を試してみた

最近、DevOpsというキーワードと共にPackerというツールの話がちらほら耳に入るようになりました。 Packerとは何ぞや?という話もあると思いますが、 すでに多くのブログで言及されているので詳しくはそちらをご参照いただくのが良いかと。 Packerでさまざま…

Redmineであしあと機能を実現するプラグイン書いた

書きました。 https://github.com/toritori0318/redmine_ashiato 概要 最近見たチケット/Wiki/メッセージなどを履歴として残し、参照できるようにします。 仕様 以下のアクションを行うと、あしあとに登録されます チケット詳細表示 フォーラムメッセージ表…

Redmineのプロジェクト毎にロゴやcss変える方法

久しぶりのRedmineネタ。 今回は「サーバにログインしてあーだこーだ」せず、 カスタマイズ無しでWeb上から プロジェクト毎にロゴやcss変える方法を書いてみます。*1 事前準備:Wiki Extentionプラグインインストール 事前準備として、Wiki Extentionプラグ…

アイコン変えた話

アイコン変えました。 これ、じつはハンコなのです。 邪悪なハンコ屋 しにものぐるい とある日、奥さんがこんなサイト見つけてきました。 邪悪なハンコ屋しにものぐるい 奥様「あ、ここアルパカのハンコあるよ。これ名刺にペタペタすればいいんじゃない?」 …

アルパカ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から…