akishin999の日記

調べた事などを書いて行きます。

GitLab 5.4 から 6.0 へアップデートする

GitLab 6.0 がリリースされました。グループ機能を強化した「GitLab 6.0」リリース、有償版の提供も開始 http://sourceforge.jp/magazine/13/08/23/140000Fork したプロジェクトからオリジナルへの MergeRequest が可能になるなど、より GitHub に近付いた感…

条件によって実行する task を定義する

when による条件分岐について調べたのでまとめておきます。host の情報や他のコマンドの実行結果の値により実行する task を定義する事が出来ます。 task を実行するための条件は when 句で指定します。when 句では変数を指定できるので、例えば --extra-var…

20分(くらい)で GitLab をインストールする方法

この間構築手順を書きましたが、改めて見ると GitLab の構築って結構手間がかかって面倒臭いですよね。 私の周りでも構築は面倒というような話をよく聞きます。こんな時こそ自動化だ、という訳で Ansible で GitLab インストール用の Playbook 書いてみまし…

Playbook 実行時に任意の値を指定する

Playbook 内に直接値を定義せず、実行時に外部から値を渡したい場合、 --extra-vars 引数を使う方法と vars_prompt を使う方法があります。 --extra-vars Passing Variables On The Command Line http://docs.ansible.com/ansible/playbooks_variables.html#…

Ansible で複数行の文字列置換

ansible で設定ファイル内の文字列を置換したかったので、 lineinfile モジュールを試してみました。lineinfile http://www.ansibleworks.com/docs/modules.html#lineinfile対象サーバに以下のようなファイルを用意。 /tmp/test.conf foo bar baz bar bar ba…

GitLab 5.4.0 を CentOS 6.4 にインストールする

この暑さのせいか、自宅サーバの HDD がクラッシュしてしまったので、ここしばらく復旧作業に明け暮れていました。 ただ元の環境に戻すのも面白くないので、いい機会だと OS 含めいろいろと最新バージョンをインストールする事に。その流れで GitLab も 5.4.…

Ansible の Playbook を使ってみる

構成管理ツール Ansible を使ってみる の続きです。 今回は Playbook について調べた事をまとめてみます。Playbook は Ansible のモジュールを使用した処理の組合せにより対象サーバの構成を記述したものです。例えば Apache を使用して Web サーバを構築す…

構成管理ツール Ansible を使ってみる

最近は話題のサーバ構成管理ツール Ansible を試したりしています。Ansible 自体は Python 製ですが、使うに当たっては特に Python の知識は必要とされる事もなく、定義ファイル(Playbook)も YAML ファイルなので気軽に始める事ができました。また、Capistra…

Veewee による Vagrant の Box 作成環境構築 Windows 版 その2

Veewee による Vagrant の Box 作成環境構築 Windows 版 その1 の続きになります。 前回構築した環境を使って、Veewee で実際に Box を作成していきます。 Box の作成 まずは以下を実行して Veewee が対応している box のテンプレートを表示します。 >bundle…

Veewee による Vagrant の Box 作成環境構築 Windows 版 その1

遅ればせながら流行りの Vagrant 環境を Windows 上で構築してみました。Vagrant 単体で公式で用意されている Box を使うだけでもそれはそれで便利なんですが、やはり自分で Box を作りたいので、Veewee を使用して Vagrant の Box を作成できる環境も併せて…

Monit で pidfile が存在しないプロセスを監視する

Monit で pid ファイルが存在しないプロセスを監視する方法を調べたのでメモ。Monit でのプロセス監視の例として、以下のように pidfile を使用してプロセスID を指定するものをよく見かけるかと思います。 check process sshd with pidfile "/var/run/sshd.…

Capistrano でローカルに置いてあるアプリケーションをデプロイ

Rails アプリケーション開発中に、ローカル環境で Passenger + production モードの確認を簡単に出来るようにしたかった事もあり、試しに Capistrano でデプロイできるようにしてみました。Apache、Ruby、Passenger 辺りはインストール・設定済みとします。 …

Rails で ReadOnly なデータベースを扱う場合のいろいろ

Rails で書き込みをしたくない参照専用の DB を扱った際に、間違えて更新してしまわないために変更した箇所を備忘録代わりにメモ。 バージョンは 3.2.13 です。 ActiveRecord 使っているのは Rails 3 なんですが、なんとなく Rails 4 の concerns っぽくして…

出力される JSON の形式をカスタマイズする

to_json で出力される JSON 文字列の形式をカスタマイズする方法を調べてみました。 Ruby 2.0.0p247 で確認しています。まずは普通に to_json してみるとこんな感じ。 require 'json' t = Time.local(1978, 5, 31, 19, 30, 40, 205000) h = {id: 100, name: …

Rails 以外で Settingslogic を使う

最近は Rails で環境毎に変更する必要がある独自設定の管理に Settingslogic を使っています。binarylogic/settingslogic https://github.com/binarylogic/settingslogic使い方はこの辺が分かりやすいです。Rails - settingslogicで定数を管理する - Qiita […

タブ型ターミナルエミュレータ「RLogin」を使ってみた

職場の人に教えてもらった Windows 用のタブ型ターミナルエミュレータ「RLogin」を使ってみました。rlogin/telnet/ssh(クライアント)ターミナルソフト http://nanno.dip.jp/softlib/man/rlogin/恥ずかしながら教えて貰うまで全くその存在を知らなかったので…

rbenv を anyenv で管理する

rbenv や plenv などをまとめて管理する anyenv を使ってみました。riywo/anyenv https://github.com/riywo/anyenvanyenv を使う事で、新しい *env 系コマンドを導入する度に初期化処理を .bash_profile に書く、といった作業から解放されます。現在は以下の…

tmux + rbenv の環境で指定した Ruby が使われない件

以前、tmux + rbenv の環境で、指定したバージョンの Ruby が何故か使われなくなってしまった件がありました。tmux + tmuxinator + rbenv の環境で RBENV_VERSION が勝手に設定されてしまう件 http://d.hatena.ne.jp/akishin999/20130303/1362308566この時は…

redis-rb で自動的に圧縮して保存する

redis-rb を使って Redis に値を保存する際に自動的に圧縮して、取り出す時には自動的に展開してくれたら便利だな、と思って試しに作ってみました。Redis::Client へのモンキーパッチで、コマンド判別して Zlib::Deflate と Zlib::Inflate 使って圧縮・展開…

CentOS 6.4 に MariaDB 5.5 をインストールする

RHEL 7 からデフォルトでインストールできる DB が MySQL から MariaDB に変わるかも、という話を読んだので、ちょっと使ってみようと思い立ちインストールしてみました。 OS は CentOS 6.4 x86_64 です。 インストール MariaDB - Setting up MariaDB Reposi…

Apache 2.4 + Ruby 2.0 + Passenger 4 環境を構築する

最新版の Ruby と Apache での環境構築手順を整理してまとめてみました。 それぞれ RPM を作成してインストールしています。 また、Passenger も最新の 4 系にしてみました。OS は Webサーバ、RPM作成用サーバ共に CentOS 6.4 x86_64 です。 rpm-build の準…

OMP_NUM_THREADS を指定した場合の負荷について

「ImageMagick の OpenMP が有効だとサーバが高負荷になってしまう」問題を回避するために環境変数 OMP_NUM_THREADS に 1 を設定したものの、Nginx の場合、何故か /proc/$pid/environ に表示されませんでした。これでは本当に環境変数が正しく設定できてい…

mod_dims で動的に画像リサイズ

Web サーバでの画像自動リサイズ方法をいろいろと調べていたところ、 Apache の mod_dims というモジュールを見つけたので試してみました。検証したのは以下の環境になります。 CentOS 6.3 x86_64 ImageMagick 6.8.5-10 依存ライブラリのインストール 依存ラ…

ngx_small_light で動的に画像リサイズ

この前インストールした mod_small_light の Nginx 版、ngx_small_light をインストールしてみました。cubicdaiya/ngx_small_light https://github.com/cubicdaiya/ngx_small_lightこのモジュールを使うと Nginx でも Apache + mod_small_light と同じ感じで…

apachebench-for-multi-url で複数 URL のベンチマーク

Apache 付属のベンチマークツール、Apache Bench(ab コマンド)は簡単に導入できて気軽に使えるのでお気に入りなんですが、残念ながら複数の URL を指定したベンチマークに対応していません。何とかする方法はないか調べてみたところ、独自のオプションを追加…

mod_small_light で動的に画像リサイズ

今更ですが、livedoor により提供されている mod_small_light をインストールしてみました。 mod_small_light は動的にサムネイル画像を生成したりできる Apache モジュールです。SMALL LIGHT 〜かんたん画像サムネイル作成モジュール〜 | livedoor labs EDG…

OpenMP 無効の ImageMagick の RPM を作成する

CentOS の Yum で ImageMagick を入れると、以下のようにデフォルトで OpenMP が有効になっています。 # yum install -y ImageMagick # convert --version Version: ImageMagick 6.5.4-7 2012-05-07 Q16 OpenMP http://www.imagemagick.org Copyright: Copyr…

Ruby で tar.gz を扱う

Ruby で tar.gz を扱う方法を調べたところ、archive-tar-minitar というライブラリと zlib の組合せが簡単そうでした。archive-tar-minitar | RubyGems.org | your community gem host http://rubygems.org/gems/archive-tar-minitarというわけで使ってみた…

Redis の永続化について調べた

Redis でのデータの永続化方法について調べたので、忘れないうちにまとめておきます。調べた時の Redis のバージョンは 2.6.13 です。 スナップショット(RDB) Redis のデフォルトの永続化の仕組み この設定が有効な場合、Redis は定期的にデータベースの内容…

Redis でお手軽に複数台構成の検証環境を作る

最近 Redis の Sharding 構成やレプリケーション構成を検証するために複数の Redis インスタンスを起ち上げる事が多いのですが、その度に一々設定を変更した redis.conf を用意するのが結構面倒でした。という事でちょっと調べてみると、どうやら redis-serv…