ついに Windows Azure 仮想マシンが GA となりましたね。新しい A6, A7 インスタンスが追加されているようですが、基本的には安心と信頼の No.1 ブログを読んだ方が良いです。
Windows Azure 仮想マシン/仮想ネットワークが正式リリース « ブチザッキ
そして自分は SignalR 1.1 と Redis を使ってのスケールアウトを試すつもりだったので、久しぶりに Redis を使おうかなと思ったら redis-server が落ちていました。どうやらインストールが不完全で、サービスが自動起動してなかったようです。
なので、以前に書いた手順を少しアップデートして対応をしてみました。
Windows Azure 仮想マシンで Redis をビルドして動かす - しばやん雑記 で書いたインストール方法から基本的には変わっていません。問題は install_server.sh にありました。
On my machine (Ubuntu 10.04.4 LTS, GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)) there is a difference between
if [ !"$REDIS_CONFIG_FILE" ] ; thenand
if [ ! "$REDIS_CONFIG_FILE" ] ; then ^ space hereIt works as intended if you add the space between the ! and the tested string in the conditions.
install_server.sh Does Not Work. Always Uses Defaults · Issue #259 · antirez/redis · GitHub
/(^o^)\
という訳で install_server.sh を開いて "!" の後ろにスペースを追加しておきます。これで install_server.sh を実行すると正しくインストールが行われます。
[azureuser@**** utils]$ sudo ./install_server.sh Welcome to the redis service installer This script will help you easily set up a running redis server Please select the redis port for this instance: [6379] Selecting default: 6379 Please select the redis config file name [/etc/redis/6379.conf] Selected default - /etc/redis/6379.conf Please select the redis log file name [/var/log/redis_6379.log] Selected default - /var/log/redis_6379.log Please select the data directory for this instance [/var/lib/redis/6379] Selected default - /var/lib/redis/6379 Please select the redis executable path [/usr/local/bin/redis-server] s#^port [0-9]{4}$#port 6379#;s#^logfile .+$#logfile /var/log/redis_6379.log#;s#^dir .+$#dir /var/lib/redis/6379#;s#^pidfile .+$#pidfile /var/run/redis_6379.pid#;s#^daemonize no$#daemonize yes#; Copied /tmp/6379.conf => /etc/init.d/redis_6379 Installing service... Successfully added to chkconfig! Successfully added to runlevels 345! Starting Redis server... Installation successful!
前回は chkconfig が正しく設定されていなかったですが、今回は設定に成功しているのでサーバが再起動した場合でも Redis は自動で起動されます。
これで安心して仮想マシンでも Redis が使えるようになりました。