WindowsでMongoDB管理ツール「RockMongo」を使ったメモ
WindowsでMongoDB管理ツールを使いたい需要があったので使ってみた。
手順どおりにやればまったく難しくなかったけど、適当にやろうとしたらはまったのでメモ。
参考にしたのは以下のサイト
WindowsでRockMongoからmongoDBを使ってみよう | EIPラボ:
XAMPPインストール
適当にXAMPPをインストール。
初めて使ったのだけど、かっこいい上にAll in Oneな感じで使いやすそうでびっくりした。
XAMPP for Windows
RockMongoインストール
RockMongoのDownloadsからWindows版をダウンロードしてzipを解凍。
その後、XAMPPのhtdocs「C:\xampp\htdocs」とかに解凍したフォルダを入れる。
このとき、フォルダ名を「rockmongo-on-windows」から「rockmongo」にリネームしたほうがいいらしい。
MongoDBインストール
これも適当に。MongoDBからWindows版を落として、適当なフォルダに解凍すればOK。
起動
まずMongoDBを起動。「bin\mongod.exe」を起動すればいい。
次にRockMongoを起動。「C:\xampp\htdocs\rockmongo\rockstart.bat」を起動。
するとブラウザでログイン画面が表示されるはず。
ログインはUsername:admin Password:adminで入れる。
まとめ
以上手順を間違えなければ簡単に入るので、ぜひひとつ。操作も覚えるまでもなく簡単なのでオススメ。
自分は自前でApacheから構築しようとしたらうまくいかなかったのでXAMPPがオススメ。
文字化けしない Msys Git 導入法
なぜか2バイト文字ガン無視で作られたGitちゃん。そんなGitをWindows環境で使うと、簡単に文字化けする。そこをなんとか、ようやく日本語に対応しつつあるMsysGitを使って文字化けしないように導入する方法をどうぞ。
MsysGitは最近(2012年現在)、ようやくUTF-8(UTF-8N)環境に対応したと謳っているWindows向けのGitクライアント。自分はこのMsysGitでGitを使っている。だが実際、使ってみると文字化けしたので、ちょっと工夫が必要なよう。また前提として、ファイル名はMS932、中身はUTF-8で書くとする。
MsysGitを入れる
まずは普通にMsysGitを入れる。ここのDownloadから「Git-1.7.XX-previewXXXXXXXX.exe」とかをダウンロードして、実行しよう。
インストール中に聞かれる設定項目はほとんどたいしたことないので、お好きに(ほとんどそのままでいいと思う)。ただし、「User a TrueType font in all console windows (not only for Git Bash)」だけはチェックをつけないことをオススメする。
Msysが文字化けするのでレジストリを書き換える
そのままだとなぜかMsysを立ち上げてcat(Shift-JIS)したりすると日本語が文字化けする。正確には、フォントが英文フォントなために、日本語を表示しようとしても「□□□□」のような感じになってしまい、表示されない。これを解消するにはレジストリをいじろう。
お決まりのごとく、「新しいタスクの実行...」なんかから「regedit.exe」を起動して「HKEY_CURRENT_USER/Console/Git Bash」の「FaceName」を「Lucida Console」から「*MS ゴシック」に書き換えよう。これはMsysGitの不具合に近いと思う。(参考)
lsが文字化けする
lsが文字化けするのはおそらく不具合でもなんでもなくてそういう仕様。これはまぁ、想像つくと思うけど、「alias ls='ls --show-control-chars'」すればよい。GitBashを立ち上げて、.bashrcにこんな感じで書く。
$ vim ~/.bashrc
alias ls='ls --show-control-chars'
nkfを入れる
cat等でShift-JISしか表示できなくて不便なので、nkfを入れてUTF-8等も表示できるようにしよう。
nkfはこことかから持ってくればいい。解凍した中の「vc2005/win32(98,Me,NT,2000,XP,Vista,7)ISO-2022-JP/nkf.exe」を「C:/Program Files (x86)/Git/bin/」(Windows7 64bitの場合)などに入れれば使えるようになる。
GIT EDITORを変える
Gitには、コミットメッセージをUTF-8で入れるという厳然とした決まりがある(というかほかの環境で化ける)ので、UTF-8で保存できるエディタに変えておこう。自分はTeraPadが好きなので、TeraPadで文字コード指定書き込みしている。ほかにもVimとかでもUTF-8で保存できさえすればお好きなものを。
$ git config --global core.editor 'terapad'
ちなみに、エディタを使わなくていい便利な「$ git commit -m hogemessage」という方法だと文字化けするので、ASCII文字以外を使うときは封印。
Git GUIの表示エンコードをUTF-8にする
Git GUIがファイル差分とかをしつこくShift-JISで表示しようとしてくるので、UTF-8にするよう設定しよう。
$ git config --global gui.encoding utf-8
完成
以上で文字コード関連は大体網羅しているはず…。なにか見逃しがあったら教えてください。
SVN + LDAPな連携方法
SVN(Subversion)とLDAPの連携(Apache)をやったので書き置き。
これもすんなりはやらせてもらえず・・・悩みました。
さて、今回はこんな感じな流れで説明していこうかと。ただしガンガン省略して、設定ファイルばっかり書いてくよ。
- LDAPのインストール
- SVNのインストール
- LDAPとSVNの連携
ではではやってきましょう。とはいえ、LDAPインストールはスキップ。各自ぐぐってください。
SVNのインストール
飛ばしてもいいかなと思ったけど、簡単なので一応書いとく。
Subversionは単独でも動かせるけど、今回はApacheのBasic認証(LDAP)を利用するので、Apache連携なSVNのインストールをしようと思う。
とはいえ、ほとんど書く必要ないほど簡単。
まずはリポジトリにしたいディレクトリを作成。それをApacheから見えるようにして、Apacheにちょっと設定するだけ。
# mkdir /var/svn #適宜変えてね!
# cd /var/svn
# svnadmin create repos
# chown -R apache:apache /var/svn
# vim /etc/httpd/conf/httpd.conf
...
<Location /svn>
DAV svn
SVNPath /var/svn/repos
</Location>
...
てな感じで。とっても簡単でイイネ!
あ、モジュールとかが足りなかったらちゃんと追加しとくのを忘れずに。
LoadModule dav_svn_module extramodules/mod_dav_svn.so
ここまでできたらhttp://yourhost.com/svn/repos
でアクセスできるはずだよ。
LDAPとSVNの連携
次は連携。基本的にApache側に設定していく。さっきのLocationのところに追記する感じかな。
自分の環境はApache2.2だったんだけど、ネットに晒されてる設定じゃうまくいかなかった。いろいろ工夫するうちに以下でおさまった。
<Location /svn>
DAV svn
SVNParentPath /var/svn/
AuthType Basic
AuthBasicProvider ldap
AuthName "Subversion Test"
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://yourldaphost.com:389/ou=people,dc=xxxxxx,dc=com?uid"
AuthLDAPBindDN "ログイン名"
AuthLDAPBindPassword "パスワード"
Require valid-user
</Location>
これで完了!http://yourhost.com/svn/repos
で試してみてくださいな。
ちなみにAuthLDAPURLの書式はこのページあたりを参照すると吉。
うまくいかないときはLogLevelをdebugとかに変えるといい。
OpemAM インストールメモ
OpenSSOの後継、OpenAMのインストールに比較的悪戦苦闘したので、メモしておく。
概要
OpenAMはSunMicrosystemsが開発した(正確には、開発してたOpenSSOが元)だからか、Javaで書かれたWebアプリになっている。
というわけで、インストールするには、こんな手順である。
- Tomcatのインストール
- OpenAMをTomcatにデプロイ
- OpenAMの設定
というわけでやっていこう。
Tomcatインストール
普通にTomcatをインストールしておしまい、と言いたいところだがそうもいかない。いくつか設定が必要だ。
ポート変更
まず、OpenAMはSSOさせたいWebアプリと共存させるためにポート番号の変更が必要。Webアプリと同じTomcat上で動かすことはできないらしい(詳しくはこちら)。
# vi tomcat/conf/server.xml
<Server port="19005" shutdown="SHUTDOWN">
...
<Connector port="19080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="19009" protocol="AJP/1.3" redirectPort="8443" />
...
こんな感じにしておけばいい。ここでは 80XX→190XX
に変えた。
OpenAMの起動スクリプトを作成
起動スクリプトを作っておく。
# vi /etc/init.d/openam
#!/bin/sh
#
# openam
#
# chkconfig: 35 84 16
# description: Manage OpenAM SSO Server
CATALINA_HOME=/var/openam/tomcat
export CATALINA_HOME
JAVA_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
export JAVA_OPTS
CATALINA_OPTS="-Dcom.iplanet.am.cookie.c66Encode=true"
export CATALINA_OPTS
LANG=ja_JP.UTF-8
export LANG
case "${1}" in
start)
"${CATALINA_HOME}/bin/startup.sh"
exit ${?}
;;
stop)
"${CATALINA_HOME}/bin/shutdown.sh"
exit ${?}
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
com.iplanet.am.cookie.c66Encode=true
についてはこちらを参照。このスクリプトもこちらのものを改造して作らせて頂いた。
LANG=ja_JP.UTF-8
は、日本語を文字化けさせないために必要(ロケールがUTF-8以外の場合)。こちらを参考にした。
OpenAMをTomcatにデプロイ
OpenAMのダウンロード
OpenAMのwarを公式サイトらへんから落としてくる。[WAR]とか書いてあるとこをクリックすると落とせる。
デプロイ
さっき設定したTomcatのwebappsにコピー。適当に「openam.war」とかにリネームしておこう。
確認
http://localhost:19080/openam
とかにアクセスしてみてアクセスできることを確認。
OpenAMの設定
OpenAMを設定していくにあたって、先程のhttp://localhost:19080/openam
から設定すればいいのだが、アクセスしているURLが設定に反映されるため、きちんと本番環境用に名前解決しないといけない。今回はとりあえず適当に設定する。
ドメインの設定
適当に書いておくので、詳しくは別のサイトなりを見て欲しい。適当にhostsを書き換える。
Windowsの場合は、C:\Windows\system32\drivers\etc\hosts
、Linuxの場合は/etc/hosts
に以下のように追記する。
[アクセスするIPアドレス] [アクセス先のドメイン]
127.0.0.1 yourdomain.test.jp
Webインターフェースから設定
あとは初期設定をしていこう。http://yourdomain.text.jp:19080/openam
にアクセスすると設定画面が立ち上がる。
ここでハマった!デフォルトの設定にしたら、デフォルトの設定がエラーになって随分悩んだ。(どうやらポート番号がおかしい)
というわけで、カスタム設定へ。
基本的にデフォルトの通り、言われたとおりでOK。ただしポートのところだけ変える。パスワードのところは適当にやればよい。
ポート: 50389
Admin Port: 4444
JMX Port: 1689
ユーザーデータストアのところは、設定が面倒くさければとりあえずOpenAMのユーザーデータストアを選んでおくといいと思う。
完成
以上でできてるはず!確認してみてくださいな。
Sonatype Nexusのユーザー管理にOpen LDAPを使う
Apache Maven の管理ソフトウェア、 Sonatype Nexus と OpenLDAP を連携させる。
Open LDAPのインストール・設定
この記事を参照して適当に入れる。
ユーザー情報投入までやる。
Sonatype Nexusのインストール
ここからwarを落とす。
ちょっとわかりにくいけど、「Download Nexus OSS」→「Download the Nexus X.X.X WAR distribution」のリンクで落とせる。
これを適当なTomcatに入れてデプロイ。その際、ファイル名を"nexus.war
"とかに変えておくといいと思うよ。
Sonatype NexusとOpen LDAPの連携設定
Nexusへログイン
Nexusの設定はWebインターフェースから行う。
まずはNexusにログインしよう。
今は適当にlocalhostにTomcatが立ってるとすると、
http://localhost:8080/nexus/
とかにアクセスすればいいはず。右上の「Log In」からログインしよう。
初期設定では、
Username:admin
Password:admin123
で管理者権限で入れる。
LDAP機能の有効化
デフォルトではLDAP認証機能が有効化されていないので有効化しよう。
左側のメニューの「Administration」→「Server」から、「Security Settings」の「OSS LDAP Authentication Realm」を有効のほうへ入れてSaveを押す。
LDAPの設定
先ほどの管理メニューの「Security」→「LDAP Configuration」から、LDAPの設定をしていく。
今、ユーザーエントリがou=Users,dc=test,dc=com
にあり、LDAPの管理者がcn=manager,dc=test,dc=comだとすると、次のような設定になると思う。
Connection:
Protocol:ldap
Hostname:yourldap.server.com
Port:389
Search Base:dc=test,dc=com //ユーザーやグループエントリのある基底DN あとで使う
Authentication:
Authentication Method:Simple Authentication
SASL Realm:
Username:cn=manager,dc=test,dc=com
Password:XXXXXXXXXXX
ここまでできたら、一旦Check Authenticationボタンを押して、きちんと設定されているか確認しておく。
次はLDAPアカウントとの紐付け設定。こんなかんじかな。
今回はグループは使わないことにして、GroupElementMappingのチェックは外しておく。
あと、personクラスにはE-Mailを表す属性がないので適当に入れておく。
Base DN:ou=Users
User Subtree:unchecked
Object Class:person
User Filter:
User ID Attribute:cn
Real Name Attribute:cn
E-Mail Attribute:description //適当
Password Attribute:userPassword
Base DNには、先程Connectionのところで設定したSearch DNのより下位の部分だけ書く。
つまり、$BASE_DN,$Search DNが真のDNってことになる。このDNの直下が検索対象になる。
直下だけでなく下位すべてを検索して欲しい時は、User Subtreeにチェックすればいいみたい。
ここまで設定して、Check User Mappingを押すと、見つかったユーザー一覧が下に出てくるはず。
出来ていたら最後にSaveしておこう。
権限付与
さて、これでユーザー情報を見つけるところまでできたわけだけど、この状態ではまだログインできない。
それはログインしてページを見る権限がないため。
ここからは各ユーザーに権限を付与していこう。
今回はしていないグループ化をしてあれば、グループごとに権限を付与することもできるみたい。
左側のメニューの「Security」→「Users」から権限を変更したいユーザーを選んで、「Config」→「Role Management」から変えていこう。
見ればわかるけど、adminにしたいならNexus Administrator Role
、一般ユーザーならRepo: All Repositories(Full Control)
とNexus Deployment Role
を付与しておけばいい感じになると思う。
完成!
これでログイン出来るはず!
LDAP側にユーザーを追加したときは、UsersページのRefreshを押すとユーザーが追加されるので、権限付与してあげればOK。