2009.05.19

Eucalyptus1.5.1を使ってみた

前回のCentOS5.3にEucalyptus1.5.1をインストールしてみたから次は実際に使ってみるメモ。

1.初期設定
euca_confを使用してさっそくクラスターとノードの登録。

# echo export EUCALYPTUS=/opt/eucalyptus >> ~/.bash_profile
# source ~/.bash_profile

# $EUCALYPTUS/usr/sbin/euca_conf -addcluster $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf

# $EUCALYPTUS/usr/sbin/euca_conf -addnode $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf

2.ノード設定
パッケージからインストールした場合は必要ないらしい。
ということで飛ばし。

3.Eucalyptusの起動
パッケージから入れると/etc/init.dにすてべ起動スクリプトが作られてるので
フロントエンドやクラスターの起動

# $EUCALYPTUS/etc/init.d/eucalyptus-cloud start
# $EUCALYPTUS/etc/init.d/eucalyptus-cc start

ノードの起動

# $EUCALYPTUS/etc/init.d/eucalyptus-nc start

で起動させる。

4.初回起動設定
起動したら初期設定やAmazon API Toolを使うための証明書などを取得を行う。

管理画面
https://[server ip address]:8443/
 [server ip address] : cloud controller server

管理画面へアクセスし、ユーザ名/パスワードにadmin/adminを入力してログイン。

  1. adminのパスワードを変更
  2. adminのemailを設定
  3. Walrusの設定

Walrusは特に変更しなかった記憶が。
このへんの設定についてはまた調べて書きます。

設定を変更したら「Credentials」タブを開いて「Download Certificate」をクリックし証明書の取得。

取得したzipファイルの展開と設定。

# mkdir ~/.euca
# cd ~/.euca
# unzip euca2-admin-x509.zip -d ~/.euca
# chmod 0700 ~/.euca
# chmod 0600 ~/.euca/*

Amazon EC2のAPIとAMIのツールをダウンロード。

# mkdir ~/ec2tools
# wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
# wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip
# unzip ec2-api-tools-1.3-30349.zip -d ~/ec2tools
# unzip ec2-ami-tools-1.3-26357.zip -d ~/ec2tools

環境変数の設定。

# vi ~/.bash_profile
export EC2_HOME=/root/ec2tools/ec2-api-tools-1.3-30349
export EC2_AMITOOL_HOME=/root/ec2tools/ec2-ami-tools-1.3-26357
export PATH=$PATH:$EC2_HOME/bin:$EC2_AMITOOL_HOME/bin
source ~/.euca/eucarc
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0

使う準備完了。
APIでJAVAなんかも使ってるのでJAVA_HOMEの設定もしておいたほうがいいぽい。
これでEC2のAPIを使って操作ができるようになります。

長くなったのでここでぶったぎる。
次は実際にイメージのアップロードなんかを書く予定。

2009.05.18

CentOS5.3にEucalyptus1.5.1をインストールしてみた

Eucalyptus1.5.1のCentOS5.3用パッケージをインストールしたときのメモメモ。

0.環境
Intel Pentium 4 2.0Ghz CPU
879MB Memory
CentOS 5.3
Eucalyptus 1.5.1
xen 3.0.3

すべて一台にインストール
 Cloud Controller (eucalyptus-cloud)
 Cluster Controller (eucalyptus-cc)
 Node Controller (eucalyptus-nc)
 Gather Log (eucalyptus-gl)

1.仮想環境の構築
1.5.1はxenかKVMが選択できるとのことだが、xenのほうが好き。
気にせず進めたらlibxenstore.soが必要とか言われたので、関係ありそうなのとりあえずまとめてぶちこんだ。

# yum groupinstall Virtualization
# yum install xen-devel xen-libs

/boot/grub/grub.conf
を確認してデフォルトでxenが動くように。

そして再起動。

2.パッケージの取得
公式サイトからCentOS用パッケージの取得。
http://open.eucalyptus.com/downloads
うちの構築環境はヘボPCだったため、i386版のeucalyptus-1.5.1-centos-i386.tar.gzをダウンロード。

# wget http://open.eucalyptus.com/downloads/89

展開。

# tar xzvf eucalyptus-1.5.1-centos-i386.tar.gz

準備完了。

2.サードパーティアプリのインストール

# cd eucalyptus-1.5.1-centos-i386
# cd eucalyptus-1.5.1-rpm-deps-586
# rpm -ivh *.rpm
# cd ..

特に問題なく通るはず。

3.本体のインストール

# rpm -ivh *.rpm

うちは足りないものがあった。

dhcp is needed by eucalyptus-cc-1.5.1-1.i386
ant is needed by eucalyptus-cloud-1.5.1-1.i386
ant-nodeps is needed by eucalyptus-cloud-1.5.1-1.i386
java-sdk >= 1.6.0 is needed by eucalyptus-cloud-1.5.1-1.i386

必要らしいのをまとめてインストール。

# yum install dhcp ant ant-nodeps java-sdk

そして再度インストール。

# rpm -ivh *.rpm

今度は通った。

4.インストール、そして・・・
以下のパスにインストールされてるはず。
/opt/eucalyptus

起動時に自動起動は設定されてるかな。

# chkconfig –list eucalyptus-cloud
# chkconfig –list eucalyptus-cc
# chkconfig –list eucalyptus-nc

もしoffになってれば設定。

# chkconfig eucalyptus-cloud on
# chkconfig eucalyptus-cc on
# chkconfig eucalyptus-nc on

クラウドのフロントエンド管理画面は
httpsがポート8443
httpがポート8773で待ち受けている。

ファイアウォールの設定してあれば修正。
今は面倒なので停止。

# /etc/init.d/iptables stop

管理画面が開けばインストール完了。
https://[server ip address]:8443/

デフォルトのユーザ名とパスワードは
admin/admin

2009.05.13

CentOS用Eucalyptus

5月9日にEucalyptus-1.5.1の
CentOSやDebian用のパッケージが配布されていた。
http://open.eucalyptus.com/downloads

以下提供パッケージの対象プラットフォーム。

  • CentOS 5.3 (i386/x86_64)
  • OpenSUSE 11.1 (i386/x86_64)
  • Devian Lenny/Squeeze (i386/x86_64)
  • Ubuntu Jaunty (i386/x86_64)

以下落としてきたCentOS 5.3のi386版に入ってたもの。

  • eucalyptus-cloud-1.5.1-1.i386.rpm
  • eucalyptus-nc-1.5.1-1.i386.rpm
  • eucalyptus-cc-1.5.1-1.i386.rpm
  • eucalyptus-gl-1.5.1-1.i386.rpm

とeucalyptus-1.5.1-rpm-deps-i586の中にサードパーティパッケージ。

  • euca-axis2c-1.5-1.i386
  • euca-httpd-1.5-1.i386.rpm
  • euca-libvirt-1.5-1.i386.rpm
  • vblade-14-1mdv2008.1.i586.rpm
  • aoetools-21-1.el4.i386.rpm

vbladeとaoetools・・・?

ATA over Ethernetのツール。
Ubuntuなんかではapt-getで取れたっぽい。
http://sourceforge.net/projects/aoetools/

2009.04.30

Ubuntu 9.04のEucalyptusをインストールしてみた

の、途中経過。

1.OSゲット
Ubuntuのサイトからサーバ版の9.04を入手。
http://www.ubuntulinux.jp/
DVDなんかに焼いて準備完了。

2.OSインストール
焼いたDVDを突っ込んでBIOSでCD Bootの確認をして起動。
あとは言われるがままにインストール。

Ubuntuって・・・Fedoraよりインストール簡単なんだね・・・

3.Eucalyptusのインストール
管理サーバ的なもののインストール

$ sudo apt-get install eucalyptus-cloud eucalyptus-cc

ノードサーバ的なもののインストール

$ sudo apt-get install eucalyptus-nc

eucalyptus-cloud ・・・ Cloudサービスのフロントエンド管理サーバ。
eucalyptus-cc ・・・ クラスターコントローラ。ノードのネットワーク管理なんかを行う。
eucalyptus-nc ・・・ ノードコントローラ。KVMを用いて実際の仮想環境を管理する。

で、eucalyptus-ncでDHCPが動き出そうとした。

会社でDHCPは動かせないので停滞中 ← 今ここ

2009.04.14

Amazon EC2でLinuxのbundle

意外とコマンドが覚えられないLinuxでのバンドル。
WindowsではAWS Management Consoleなどの管理ツールからバンドルしなきゃいけないのですが、LinuxはSSHで入ってコマンドラインから行わないといけません。
そんな自分の覚書。

1.準備
バンドルをするためには、AWS Access Identifiersで取得できるX.509証明書と秘密鍵が必要です。
X.509証明書:cert-********.pem
秘密鍵:pk-********.pem
これをSCPでもFTPでもアップロード。
よく説明サイトではSCPでアップしてますが、SCPを使うと暗号化した転送が行われるので安全っていうのと、SSHを使うのでEC2側で特に準備せずに使えるという利点があります。まぁ、サーバ構築してれば手軽なFTPでもいいよ。
だって、Windowsからパス指定してコマンド打つの面倒なんだもの。

これらのファイルを「/mnt」に保存したとして話を進めます。

2.ボリュームのバンドル

ec2-bundle-vol -d /mnt -k /mnt/[pk.pem] -c /mnt/[cert.pem] -u [account number] -p [image name]

[pk.pem] [cert.pem]
 本当はpk-*************.pemなんて長ったらしい名前が付いてるのでそれを指定。
[account number]
 AWSにログインすると右上に表示されてるハイフン付き12ケタの数字を指定。
[image name]
 デフォルトだと「image.manifest.xml」が作成されるので指定したい場合は名前付ける。

3.イメージのアップロード

ec2-upload-bundle -b [bucket name] -m /mnt/[image name].manifest.xml -a [Access Key ID] -s [Secret Access Key]

[bucket name]
 S3のbucket。。。要するにディレクトリを指定。Windowsだと階層構造を作れないけど、こっちはできる。
[image name]
 バンドル時に指定した名前。指定していないと「image」。
[Access Key ID] [Secret Access Key]
 AWSログイン後にAccess Identifiersページで見れる「Access Key ID」と「Secret Access Key」。

4.AMIの登録
これはAmazon EC2 API Toolsを使います。
環境変数なんかの登録が必要らしいのでクライアントに設定しておいてください。

ec2-register [bucket name]/[image name].manifest.xml

[bucket name] [image name]
 3のアップロードで指定したものをそのまま指定。

これでElasticfoxやAWS Management Consoleに追加されてるはずです。

2009.02.24

L2TPでVPN接続

PPTPよりセキュリティの強いL2TPにチャレンジ。
OSはFedora8(i386)を使用してます。

1.IPsecのインストール
2.l2tpdのインストール
3.サービス起動
4.Windows XPを使っている場合の注意点

1.IPsecのインストール
L2TPはトンネルを作成するプロトコルでPPTPとは違い暗号化までは行われない。
そこでIPレベルでの暗号化を行うためIPsecをインストールします。
ここではopenswanを使用します。
http://www.openswan.org/
また、事前共有鍵方式と証明書方式があるが、ここでは事前共有鍵方式を使う。

とりあえずインストール。

# yum install openswan

設定ファイルをサンプルからコピー。
特に修正必要なし。

# cp /etc/ipsec.d/examples/l2tp-psk.conf /etc/ipsec.d/

事前共有鍵の作成。
/etc/ipsec.d/l2tp-psk.secrets

# vi /etc/ipsec.d/l2tp-psk.secrets

以下を入力。

: PSK "pre-shared-key"

2.l2tpdのインストール
実際にトンネルをはるプロトコル。
第2層のデータリンク層らしい。
ここではxl2tpdを使用する。

# yum install xl2tpd

ちなみにこのxl2tpdをCentOS5.2にインストールしようとしたところ
rpmはなくソースから適用しようとするとkernel2.6.23以上を求められた。
CentOS5.2のkernelは2.6.18である。面倒なので挫折。

L2TPの設定ファイルを編集。
/etc/xl2tpd/xl2tpd.conf

# vi /etc/xl2tpd/xl2tpd.conf

以下の内容を修正。
ここでは
サーバIP:192.168.0.1
割り当てIP:192.168.0.101-192.168.0.254
としているが、各自のネットワークを考慮して割り当ててください。

ip range = 192.168.0.101-192.168.0.254
local ip = 192.168.0.1

PPPの設定ファイルを編集。
/etc/ppp/options.xl2tpd

# vi /etc/ppp/options.xl2tpd

接続PCに割り当てるDNSとWINSを指定。
今回DNSはL2TPサーバ自身。WINSはなし。

ms-dns 192.168.0.1

また、同ファイルに以下を追加。
認証はmschap-v2を使えという指示。

refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
logfile /var/log/xl2tpd.l2tp-ipsec.log

VPNアクセスユーザアカウントの定義を作成。
/etc/ppp/chap-secrets

# vi /etc/ppp/chap-secrets

アカウントを追加。

ユーザ名 * パスワード *

こんな感じです。

3.サービス起動
サービスの登録と起動。

# chkconfig xl2tpd on
# chkconfig ipsec on
# /etc/init.d/xl2tpd start
# /etc/init.d/ipsec start

4.Windows XPを使っている場合の注意点
WindowsXP SP2ではL2TP/IPsecをNAT越しに利用できないようになっています。
これを利用できるようにするためレジストリの変更が必要となります。

regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec
の中に
"AssumeUDPEncapsulationContextOnSendRule"
というDWORD値を作り、値に"2"を設定する。

詳しくはMicrosoftのページへhttp://support.microsoft.com/kb/885407/jaへ。

以上でサービスの構築は終了です。
WindowsXPなどのクライアントから接続してみてください。

ルーティングなどに関してはPPTPdの構築記をご参照あれ。

2008.03.29

PPTPでVPN接続

自宅サーバにPPTPdを構築し
外部から自宅PCにVPN接続したくなったのでその構築記。

1.pptpdのインストール
2.設定ファイルの編集
3.サービス起動

1.pptpdのインストール
PPTPdにはOpenSourceのPopTopを使用。
まずはそのインストールから。

地道にrpmをダウンロードしてインストールしてもいいんですが
やはりここは美しくyumで一括インストール。

安定版
http://poptop.sourceforge.net/yum/stable/
ベータ版
http://poptop.sourceforge.net/yum/beta/

上記サイトから該当する構成を選択してリポジトリ登録用のrpmを取得。
今回は安定版を選択し、僕の環境ではFedora8のi386だったので
http://poptop.sourceforge.net/yum/stable/fc8/i386/pptp-release-current.fc8.noarch.rpm
を使用しました。
自分の構成がない場合は
http://poptop.sourceforge.net/yum/stable/packages/
からおとなしく必要なrpmをダウンロードしてインストールしてください。その説明は割愛。

以下インストール

# rpm -Uvh
 http://poptop.sourceforge.net/yum/stable/fc8/i386/pptp-release-current.fc8.noarch.rpm
# yum --enablerepo=poptop-stable install pptpd

インストール完了。

2.設定ファイルの編集
次は設定ファイルの編集です。
編集が必要なファイルは以下の2つです。
/etc/pptpd.conf
/etc/ppp/chap-secrets

設定サイトを参考にしていると
/etc/ppp/options.pptpd
も編集しろと書かれていたりするんですが、これはデフォルトで動作しましたので割愛。

まずはメインのpptpd.confから

# vi /etc/pptpd.conf

この設定ファイルにPPTPd用のIPアドレスとVPN接続してきたクライアント用のIPアドレスを記載します。
PPTPはPPPを利用した接続方式で、PPPはコンピュータを1対1で接続するプロトコルです。
それぞれのコンピュータの識別にIPアドレスを利用するため、それぞれのIPの設定が必要となります。

ファイルの最後に下記を追加。

localip 192.168.0.15
remoteip 192.168.0.151-160

この構成では、PPTPdのサーバとしては192.168.0.15のIPを使用し
クライアントには192.168.0.151から192.168.0.160の空きIPが割り当てられます。
特別必要がない限りはネットワークアドレスの空きを割り当てれば大丈夫です。

続いてchap-secrets。

# vi /etc/ppp/chap-secrets

この設定ファイルはPPTP接続のユーザ認証設定を記載します。

ユーザ名 pptpd パスワード *

こんな感じです。
/etc/ppp/options.pptpdでサーバ名などを真面目に修正される場合は
pptpdの部分をサーバ名に変更する必要があります。
最後の「*」の部分はIPアドレスの設定ですが、あまり気にせずお約束のように「*」を入れておきましょう。
あとSambaのユーザ認証なども使えるようです。
セキュリティ的にそっちのがよければお調べください

これでPPTPdの設定は完了です。

3.サービス起動
最後にサービスをスタート。

# /etc/init.d/pptpd start

さて、ここまではただのインストールで寝ててもできる設定ですね(実際寝てました)
でもこれで終わらないからネットワーク屋さんなのです。
続いてネットワークの設定です。

1.ルータの設定
2.ファイアウォールのINPUTの許可
3.IP packetのフォワード設定
4.ファイアウォールのFORWARDの許可

1.ルータの設定
まずはルータの設定。
PPTPで使用するTCPの1723番ポートを自宅サーバへフォワードするように設定。
これはルータのマニュアル参照。

2.ファイアウォールのINPUTの許可
次に受信したパケットの受け付けを許可します。
iptablesのファイルを編集(IPv6の場合はip6tables)

# vi /etc/sysconfig/iptables

以下の許可を追加。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT

RH-Firewall-1-INPUTはFedoraにデフォで設定されてる定義名みたいなものです。
環境が違う場合は各自書き換えを。
iptablesの設定変更を反映。

# /etc/init.d/iptables restart

ここまでの設定でPPTP接続ができるはずです。
WindowsからVPN接続の設定をして試してみてください。
PPTPdサーバに設定したIPからpingが返れば成功です。

3.IP packetのフォワード設定
サーバにデータを置いていれば上記まででいいのですが
残念ながら僕のデータはWindowsマシンのほう。
ということでサーバでパケットの転送を行わなければいけません。

そのためのカーネルパラメータにパケットフォワードの許可の設定。

# vi /etc/sysctl.conf

以下の項目を変更し転送許可を設定。

net.ipv4.ip_forward = 0
↓
net.ipv4.ip_forward = 1

設定の変更を有効に。

# sysctl -p /etc/sysctl.conf

4.ファイアウォールのFORWARDの許可
最後に有効にしたパケットフォワードをファイアウォールで許可。

# vi /etc/sysconfig/iptables

-A FORWARD -j REJECT –reject-with icmp-host-prohibited
より前に以下の設定を追加。

-A FORWARD -p icmp --icmp-type any -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m state --state NEW -m tcp -p tcp --dport 137:139 -j ACCEPT
-A FORWARD -m state --state NEW -m udp -p udp --dport 137:139 -j ACCEPT
-A FORWARD -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A FORWARD -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT

ping確認のためのicmpの許可と
ファイル共有を行うために137-139と445を許可しています。

iptablesの設定変更を反映。

# /etc/init.d/iptables restart

以上で設定完了です!
これでいつでもどこからでもWindowsについてるVPN接続で自宅サーバに接続し
自宅PCのファイルにアクセス可能になりました!

余談。

このファイアウォールのフォワードの設定はファイル共有だけっつーけっこーシビアなものなので
VPN接続してる状態でウェブ見たりとかメール見たりとかメッセつないだりとかできない。
ということで

-A FORWARD -i ppp0 -j ACCEPT
-A FORWARD -o ppp0 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

こんな風に書き換えてしまうとVPN接続は全てスルーになります。
まぁ、こっちのが楽でいいかな…(ppp0はVPN接続時のインタフェース名です)

2008.03.05

英語localeで日本語入力

Linuxを使うとき、localeが日本語なのが許せない。
でもインストールするときは日本語を使いたい。
そんなわけでインストールが終わってからまずは英語に設定を変更。

設定ファイルを開く。

# vi /etc/sysconfig/i18n

そして内容編集。

LANG="ja_JP.UTF-8"

こうなっているのを

LANG="ja_JP.UTF-8:en_US.UTF-8"

こう変更。

さて、これでメッセージなどは英語で表示してくれるようになるのですが
X Windowを使った時に日本語入力ができなくなってたのだ。

なので次はその設定変更。
まずは設定画面を開く。
[System] -> [Preference] -> [Personal] -> [Input Method]
[IM Chooser – Input Method configuration tool]
この画面で[Enable input method feature]のチェックボックスにチェックをつける。
あとは[OK]で変更を保存し、X Windowを再起動すれば
[Ctrl+Space]で日本語入力できるようになりました。

Fedora8での話です。他はわからんです。

パスワードなしSSH接続

SSHを利用する場合通常パスワードを用いて認証を行いますが
公開鍵を使ってホストの証明を行い
この鍵を事前に承認しておいて、鍵が一致すればパスワードの入力をせずに接続することができます。
今回サーバ再構築のときに方法をまた調べたのでついでにメモメモ。

公開鍵暗号方式には一般的に使われるものとして
RSAとDSAがありますが、個人的趣味ではRSAのほうが好きです。
ということでRSAを使った認証方法を記載します。

なにはともあれキーを生成。
リモートに接続するユーザで作成してください。

$ ssh-keygen

キーの保存場所とファイル名を聞かれますが変えたかったら変えてください。
ここでは「id-rsa」というファイルが作成されたと仮定します。
パスフレーズについては入力せずにそのまま[Enter]を。

どうにかして公開キー(上記コマンドで生成された鍵ファイルのid-rsa.pubと名前がついた方)を
リモートホストにコピーします。これは好きな方法で勝手にどうぞ。

続いてリモートホストにログインし、そのキーに対する接続の許可を設定します。
接続を許可するユーザでログインしてください。

$ cd .ssh/
$ touch authorized_keys
$ chmod 600 authorized_keys
$ cat ~/id-rsa.pub >> authorized_keys
$ rm ~/id-rsa.pub

これでキーを作成したホストから
リモートホストの許可したユーザへSSH接続する場合にパスワードが不要になります。

この「authorized_keys」という設定ファイルに書かれているキーと一致すれば
接続を許可してくれるみたいです。
他のホストからに対しても同様の形で追加していけば大丈夫です。
あとauthorized_keysはアクセス許可が600じゃないとうまくいかないようなので注意です。

2007.01.10

PukiWiki上書き可能なattachプラグイン

まったく突然な話なんだけど
大学のグループワークでWikiを使用中に
添付ファイルを上書きできないのは面倒だねってことで
プラグインを修正しました。

設定で上書きの許可・禁止が設定できるので
禁止にすれば元の動作と同じになります。

ファイル名はphpが入ってると隠されてしまうようなので変更してあります。
以下のように変更して使用してください。
attach.inc.txt -> attach.inc.php

ファイルをダウンロード

« Previous | Next »