Translate

2012年3月28日水曜日

Ubuntu ServerへCloudStack(3.0)をインストールする

前にCloudStack2.1をインストールしたので
CloudStack3.0も簡単かなと思い
試してみた..のだけど
変な所で引っかかって
やっとこさうまくいった。

※4.0はこちら


使ったUbuntu Serverは10.04LTS。

構成は以下の図の通り。




プロクシ環境下で頑張ったのだけど
テンプレート取得のところあたりや
セカンダリストレージができあがったところで
テンプレート取得時のエラーが厄介だったので
Buffalo製家庭用ルータを使用して
プロクシ経由でインターネット接続しない環境で行った。

WZR-HP-G450Hは
WAN側はDHCPで受けてくれるので
インタネットリーチャブルなセグメントへ
つないでおけばよいし、
LAN側は192.168.11.0/24セグメントの
192.168.11.2~65までをDHCP提供しているので
固定IPアドレスとして
192.168.11.100を管理サーバへ
192.168.11.101をホスト(Computing Node)へ割り当て
ポッドIP範囲を192.168.11.100~120、
プライベートネットワーク範囲を192.168.11.121~250として
インストールを行った。


なお管理サーバは
管理コンソール操作用PC上のVMware Playerで
NICを物理ネットワークへ接続するブリッジで
仮想マシンを作って対応した。

以下、ほぼ一挙手一投足を1行にして
記述した操作手順である。

操作用PC上には
VMwarePlayerとUbuntu ServerのISOイメージが
予め用意されているとする。
#DVDにも焼いておく

VMware PlayerがインストールされているPCは
予め
CloudStack-3.0.0-1-ubuntu10.04.tar.gz
をダウンロードして
Apacheをインストールして、HTTP経由で上記ファイルを取得できるように
しておくこと。
以下説明内では http://*****/CloudStack-3.0.0-1-ubuntu10.04.tar.gz と
表現しているので、適当に修正して下さい


1. Management Server インストール
1.1 VMware Player 仮想マシン構築
※管理コンソール操作用PCにて作業
  • VMware Player起動
  • 新規仮想マシンの作成
  • 後でOSをインストール
  • Linux
  • Ubuntu 64ビット
  • Cloud Stack 3.0 Management Server
  • 場所は適当
  • 次へ
  • 20.0GB
  • 仮想ディスクを複数のファイルに分割
  • 次へ
  • ハードウェアをカスタマイズ
  • 新規CD/DVD(IDE)
  • ISOイメージファイルを使用する
  • ファイルパスを指定
  • ネットワークアダプタ
  • ブリッジ:物理ネットワークに直接接続
  • 閉じる
  • 仮想マシンの再生

1.2 OSインストール
  • 日本語
  • ~Ubuntu Serverをインストール
  • IBM ThinkPad R60/T60/R61/T61
  • Japan
  • Japan - Kana
  • Alt + Shift
  • 戻る
  • ネットワークを手動で設定
  • 192.168.11.100
  • 255.255.255.0
  • 192.168.11.1
  • 8.8.8.8
  • tomoko
  • 空欄で次へ
  • ガイド - ディスク全体を使い LVM をセットアップする
  • SCSI (0,0,0) (sda) - 21.5 GB VMware, VMware Virtual S
  • はい
  • 21.2 GB
  • はい
  • Cloud Administrator
  • cloud
  • password
  • password
  • はい
  • いいえ
  • 空欄で次へ
  • 自動的にセキュリティアップデートを更新する
  • 続ける
  • はい
※VMware Playerのメニュー操作
  • 仮想マシン>仮想マシンの設定
  • CD/DVD(IDE)
  • 物理ドライブを使用する
  • OK
※仮想マシン上に戻る
  • 続ける
  • cloud
  • password
  • sudo -s
  • export LANG=C
  • aptitude update && aptitude -y upgrade
  • aptitude -y install gcc binutils cpp make psmisc
  • cd /tmp
  • ツールのインストール(VMware Player下の方にボタンが表示されている)
  • mount /dev/cdrom /mnt
  • tar xvfz /mnt/VMwareTools-8.8.2-590212.tar.gz
  • cd vmare-tools-distrib
  • ./vmare-install.pl
  • Enterキー×13
  • no
  • Enterキー×8
※VMware Player下段のツール導入メッセージが消える
  • cd
  • vi /etc/sysctl.conf
(最終行に1行追加)
net.ipv6.conf.all.disable_ipv6 = 1
  • sysctl -p
  • aptitude -y install sysv-rc-conf nfs-common ssh
  • vi /etc/hosts
(以下の1行を追加)
160.14.101.101 fortuneteller

1.3 CloudStack管理サーバインストール
  • cd
  • wget http://*****/CloudStack-3.0.0-1-ubuntu10.04.tar.gz
  • tar xvfz CloudStack-3.0.0-1-ubuntu10.04.tar.gz
  • cd CloudStack-3.0.0-1-ubuntu10.04
  • ./install.sh
  • M
  • Y
  • Yes
  • ./install.sh
  • D ← Install the database server
  • Y
  • password
  • password
  • cloud-setup-databases cloud:password@localhost --deploy-as=root:password
  • cloud-setup-management
※まだ管理サーバインストール完了していないが
セカンダリストレージが出来るまで一旦ここまでで保留する


2. ホストのインストール
2.1 OSインストール
※ホスト用PCにDVDを差し起動
  • 日本語
  • ~Ubuntu Serverをインストール
  • Happy Hacking Keynboard
  • Japan
  • Japan - Kana
  • Alt + Shift
  • 戻る
  • ネットワークを手動で設定
  • 192.168.11.101
  • 255.255.255.0
  • 192.168.11.1
  • 8.8.8.8
  • fortuneteller
  • 空欄で次へ
  • ガイド - ディスク全体を使い LVM をセットアップする
  • SCSI (0,0,0) (sda) - 500.1 GB ATA Hitachi HDS72105
  • はい ←前にOSが入っていた場合
  • はい
  • 499.8 GB
  • はい
  • Host Administrator
  • host
  • password
  • password
  • はい
  • いいえ
  • 空欄で次へ
  • 自動的にセキュリティアップデートを更新する
  • 続ける
  • はい
※DVD取り出し
  • 続ける
  • host
  • password
  • sudo -s
  • export LANG=C
  • aptitude update && aptitude -y upgrade
  • aptitude -y install ssh sysv-rc-conf nfs-kernel-server
  • vi /etc/sysctl.conf
(最終行に1行追加)
net.ipv6.conf.all.disable_ipv6 = 1
  • sysctl -p
  • mkdir -p /export/primary
  • mkdir -p /export/secondary
  • vi /etc/exports
(以下の1行を追加)
/export *(rw,async,no_root_squash,no_subtree_check)
  • exportfs -a
  • service nfs-kernel-server restart
  • vi /etc/hosts
(以下の1行を追加)
192.168.11.100 tomoko
  • vi /etc/modprobe.d/nfs_lockd.conf
(新規作成以下の1行追加)
options lockd nlm_udpport=32769 nlm_tcpport=32803
  • vi /etc/default/nfs-kernel-server
(修正前)
RPCMOUNTDOPTS=--manage-gids
(修正後)
RCPMOUNTDOPTS="--port 892"
  • vi /etc/default/nfs-common
(修正前)
STATDOPTS=
(修正後)
STATDOPTS="--port 662 --outgoing-port 2020"
  • reboot
※再起動
  • host
  • password
  • sudo su -
  • password
  • export LANG=C
  • rpcinfo -p
※portmap,status,nfsのport番号をメモ
  • ufw allow 111 ←portmapのポート番号
  • ufw allow 662 ←statusのポート番号
  • ufw allow 32769/udp
  • ufw allow 32803/tcp
  • ufw allow 2049/tcp ←nfsのポート番号
  • ufw allow 892
  • aptitude -y install kvm qemu-kvm libvirt-bin virtinst bridge-utils
  • vi /etc/libvirt/qemu.conf
(修正前)
# vnc_listen = "0.0.0.0"
(修正後)
vnc_listen = "0.0.0.0"
  • reboot
※再起動
  • cloud
  • password
  • sudo -s
  • export LANG=C
  • passwd root
※rootにパスワードを設定する
  • password
  • password
  • cd
  • wget http://*******/CloudStack-3.0.0-1-ubuntu10.04.tar.gz
  • tar xvfz CloudStack-3.0.0-1-ubuntu10.04.tar.gz
※CloudStackエージェントのインストールの前に先にセカンダリストレージ上
にテンプレートを落とす作業を行う。


3. Management Server インストール(続き)
3.1 テンプレートのダウンロード
  • mount 192.168.11.101:/export/secondary /mnt
  • /usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmpl -m /mnt -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
※プロクシ環境下の場合wget同様環境変数http_proxyを設定する
  • umount /mnt
  • service cloud-management restart
  • tail -f /var/log/cloud/management/management-server.log
※上記は必須ではないが、以降のインストール中のエラーを目視チェックするため

3.2 管理コンソールのセットアップ
※管理コンソール操作用PCでブラウザ起動
  • http://192.168.11.100:8080/client を開く
  • admin
  • password
  • ドメインは空欄
  • Log On
  • 基本インストールを続行する
  • password
  • password
  • 保存して続行
  • OK
  • test_zone
  • 8.8.8.8
  • 8.8.4.4
  • 8.8.8.8
  • 8.8.4.4
  • 続行
  • OK
  • test_pod
  • 192.168.11.1
  • 255.255.255.0
  • 192.168.11.100 - 192.168.11.120
  • 続行
  • 160.14.101.254
  • 255.255.255.0
  • 192.168.11.121 - 192.168.11.250
  • 続行
  • OK
  • KVM
  • test_cluster
  • 続行
  • OK
  • 192.168.11.101
  • root
  • password
  • 続行
  • OK
  • test_prime
  • NFS
  • 192.168.11.101
  • /export/primary
  • 続行
  • OK
  • 192.168.11.101
  • /export/secondary
  • 続行

3.3 ホストへAgentをインストールする
※ホストをインストールするPCへもどる(rootでログオンした状態)
  • cd
  • cd CloudStack-3.0.0-1-ubuntu10.04
  • ./install.sh
※インストーラのプロンプト表示
  • A ← Install the Agent
  • Y
  • Yes

3.4 管理コンソールのセットアップ(続き)
※管理コンソール操作用PCのブラウザへ戻る
  • 起動
※「クラウドを構築しています..」が表示される

3.5 ホストへAgentをインストールする(続き)
※ホストをインストールするPCへもどる(rootでログオンした状態)
cloud-setup-agentを管理コンソールで
「ゲストトラフィックを構成しています」が作業中までに完了させる
  • cloud-setup-agent
  • tomoko
  • 1
  • 1
  • 1
  • Enterキー
※ここまで「ゲストトラフィックを構成しています」が作業中までに完了させる
  • service cloud-agent status
※なぜかかならず落ちるが、管理コンソール上で「ホストを追加しています」が
作業中の間に起動していないといけない
このため以下のコマンドを「プライマリストレージを作成しています」が
作業開始になるまで連投する
  • service cloud-agent start (2回目以降は上ボタン→Enterキーで連投)
※「プライマリストレージを作成しています」と出たらやめる
※私同様VMware Player上にManagement Serverを構築している人で、
(例えばテンプレートのダウンロードなどで)処理がなかなか先に進まない場合
もしかしたらアンチウィルスのせいかもしれません。
私はSymantec Endpoint Protectionのネットワーク脅威防止機能
ルータの通信が怪しいと判断し、LAN側IPアドレスからの通信を10分がっつり
止めているためセットアッププロセスが10分後解除されても継続されず先に
進まないままになってしまいました(右下にバルーンでメッセージがちょこっとでて
すぐ消えてしまうので、気づくのが遅かった...)。
セットアップの最後の「起動」ボタンを押す前にネットワーク脅威防止を一時的に
 オフにしたらすんなりセットアップが完了しました。
もし同じ問題にあたった方で私と同じ方法を試そうという方は、
なにぶんセキュリティ機能の停止なので、くれぐれも各自の責任のもとおこなってください。
  • service cloud-agent status
※runningを確認

3.6 管理コンソールのセットアップ(続き2)
※管理コンソール操作用PCのブラウザへ戻る
※成功すると「クラウドがセットアップされました」と表示
  • 起動
※本当の管理コンソール画面にかわる

3.7 テンプレートのダウンロード
※ホスト上にもどる
  • reboot
※管理サーバ上に戻る
  • reboot
※両方起動したら管理コンソール操作用PCに戻り
  • 表示中の管理コンソールタブを閉じる
  • http://192.168.11.100:8080/clientを開く(開き直す)
  • admin
  • password
  • ドメインは空欄
  • 日本語
  • LogOn
※管理コンソール画面が表示される
  • テンプレート
  • 名前欄のCent OS5.5(64-bit) no GUI(KVM)をクリック
  • 状態欄が「Download Complete」になるまで更新ボタンを押す
※結構かかる


4. 動作テスト(インスタンス作成)
  • インスタンス
  • +インスタンスの追加
  • test_zone
  • テンプレート
  • 次へ
  • おすすめ「CentOS 5.5(64-bit) no GUI (KVM)」
  • 次へ
  • Small Instance
  • 次へ
  • Small
  • 次へ
  • 次へ
  • 名前(オプション):test_inst
  • グループへの追加(オプション)空欄
  • VMの起動
※しばらくすると画面上部の通知の数字が上がる
クリックしてCleated VMしていることを確認
  • インスタンス
  • 表示名test_instをクリック
  • 詳細の「_>」ボタンを押す
※コンソールが表示されることを確認する


以上


結局cloud-agentインスタンスが
管理コンソールのセットアップ中に動いていないと
失敗してしまうようなので
うまくタイミングを合わせて起動させておく必要があるようだ。


ひょっとして上記方法でなくもっとスマートな方法があれば
ぜひコメント欄にて教えて下さい。


参考リンク:
CloudStack3.0.0QuickInstallGuide(日本語)
cloud.comが提供している英語版ガイドの日本語訳。
まず最初にこれを読んでください。
RHEL中心でUbuntuの記述がない、
こまかいところが色々省略されているなどで
初心者はこれだけでは理解出来ないかも。

CloudStack3.0.0AdminGuide(日本語)
こちらはインストール後に
ゾーン、ポッドや難解なネットワークオファリングなど
の概要説明があります。
ネットワークあたりは難しい。
パブリックネットワークとかゲストネットワークとか
迷彩がかっていてインフラ素人にはわかりにくい部分もあります。
ただゾーン、ポッド、クラスタの考え方と
基本、拡張ネットワークの違いくらいはこれを
読んで知っておくべきとおもいます。
LDAP連携の話も"簡単に"書かれてますね。
まだ試してないけど..

 cloud.comのガイドでは不足だったので、
以下のブログやWikiを参考にしました。

yamasaki0's diaryCloudStack 3.0 のインストール その1
ここをベースにセットアップしました。
技術力がないので、
途中から端折られているのでそこを埋めるのが大変だった


CloudStack/インストール方法
ここは2.1をインストールする場合に役立つページ。

2012年3月21日水曜日

CloudStackとは?CloudStackで何が出来るか?


なかなかCloudStack3.0のインストールがうまく行かず
結局CloudStack3.0.0 Advanced Installation Guideを
読むことにした。

以下最初のほう(p12-13)を翻訳してみた。
(間違ってるかもしれないので参照する方はそのつもりで)


■CloudStackとは?

CloudStack(TM)は、パブリック・プライベート・ハイブリッドIaaSを構築するためのコンピューティングリソースを蓄えるオープンソースプラットフォームである。
CloudStack はクラウド基盤を構成するネットワーク、ストレージ、コンピューティングノードを管理する。
クラウド環境の配置、管理、設定のために CloudStackを使う。

典型的なユーザはサービスプロバイダや企業である。
CloudStack を使って以下のことが可能である:


- オンデマンドでかつ柔軟なクラウドコンピューティングサービスの構築
サービスプロバイダはインターネット経由で仮想マシンインスタンス、
ストレージボリューム、ネットワーク設定を各自で行うサービスを販売する
ことができる。
- 従業員向けのオンプレミスのプライベートクラウドの構築
物理マシンと同じ方法で仮想マシンの管理するよりむしろ、
CloudStackを使って企業はIT部門への依頼なしでユーザ向け仮想マシンを
各自で依頼可能であることを目的として用いる

CloudStack(TM)は、パブリック・プライベート・ハイブリッドIaaSを構築するためのコンピューティングリソースを蓄えるオープンソースプラットフォームである。
CloudStack はクラウド基盤を構成するネットワーク、ストレージ、コンピューティングノードを管理する。
クラウド環境の配置、管理、設定のために CloudStackを使う。

典型的なユーザはサービスプロバイダや企業である。
CloudStack を使って以下のことが可能である:


- オンデマンドでかつ柔軟なクラウドコンピューティングサービスの構築
サービスプロバイダはインターネット経由で仮想マシンインスタンス、
ストレージボリューム、ネットワーク設定を各自で行うサービスを販売する
ことができる。
- 従業員向けのオンプレミスのプライベートクラウドの構築
物理マシンと同じ方法で仮想マシンの管理よりむしろ、
CloudStackを使って企業はIT部門への依頼なしでユーザ向け仮想マシンを
各自で提供が可能となることを目的として用いる

■CloudStackで何ができるか?

・複数のハイパバイザをサポート
CloudStackは様々なハイパーバイザに対して動作する。
単一のクラウド環境開発にて複数のハーパバイザ構成を含めることができる。
あなたの作業負荷を軽くするハイパバイザを自由に選択できる。
CloudStackは、Citrix Xen ServerやVMware vSphere、OracleVM(OVM)などの
企業グレードのハイパバイザから、オープンソース版XenやKVMハイパバイザでも
動作する。
あなたはハイパバイザなしの「ベアメタル」ホストも
プロビジョニング可能である(β機能。CloudStack3.0.0では未テスト)

・スケーラブルな基盤をガッチリ管理
CloudStackは複数の場所に分散するデータセンタにインストールされた
何万ものサーバを管理可能。
中央管理サーバはリニアにスケールし、中間のクラスタレベル管理サーバ群の
必要性を排除する。
単一コンポーネントの故障がクラウド全体の停止を引き起こすことはない。
クラウド内で実行中の仮想マシンの機能に影響することなく、
定期的な管理サーバのメンテナンスが実行可能である。

・自動設定管理
CloudStackは各ゲスト仮想マシンネットワークやストレージセッティングを
自動で設定する。

CloudStackは仮想アプライアンスのプールを内部で管理する。
これらのアプライアンスはサービスは、ファイアウォール、ルーティング、DHCP、
VPNアクセス、コンソールproxy、ストレージアクセス、ストレージレプリケーション
などのようなサービスを提供する。
多くの仮想アプライアンスの使用は、クラウドへの配置におけるインストール、
設定や進行中の管理を単純化する。

・GUI
CloudStackは、クラウドのプロビジョニングや管理のための管理者向けWeb UI
だけでなく、VM実行やVMテンプレート管理のためのエンドユーザ向けWeb UIも
提供する。
UIはカスタマイズ可能で、サービスプロバイダや企業における見た目の変更要望を
反映できる。

・API、拡張性
CloudStackは、UIで提供している全ての管理機能をプログラムからアクセスできる
APIを提供する。
APIは保守され文書化されている。
このAPIにより、特定のニーズを満たすための新たなユーザインターフェイスや
コマンドラインツールの構築を可能である。
開発者向けガイドやAPIリファレンスを参照のこと
(ともに http://docs.cloud.com/CloudStack_Documentation から参照可能)

・高可用性
CloudStackプラットフォームはシステムの有用性を増大させるいくつかの特徴を
備えている。
管理サーバ自身も、サーバ群がロードバランス管理されている複数ノード施設内に
配置されるかもしれないだろう。
MySQLデータベース障害発生時手動フェールオーバするためにレプリケーション
構成されることもあるかもしれないだろう。
ホストのために、CloudStackプラットフォームはトレージやiSCSIマルチパスの
ために、NIC結合や、別々のネットワークの使用をサポートする。

2012年3月14日水曜日

Windows7でanonymous ftpサーバへ接続するときの注意

じつは
proxy環境下にあるCloudStackのために
ISOイメージをダウンロードさせる
匿名ftpサーバをたてようと
VMware Player上にUbuntu Desktop11を入れ
#これもインターネット接続してないからインストール止まって
#えらいはまったが
#三角ボタン押して詳細だすと右側にSkipボタンがでてくるので
#ダウンロードする所をことごとくSkipさせインストールを最後まで
#もっていき、起動したら/etc/apt/apt.conf.d/00proxyという
#ファイルにAquire::http::Proxy "http://hogehoge:8080/";と
#書きだしてapt-get(aptitudeがデフォルトで入っていない)
#すればよい
apt-get install vsftpdして
anonymous_enabled=YESなどの設定して
構築したのだけど、
テストしてもぜんぜん接続できない..

サーバのvsftpd.confをこれでもかと
直してもダメ..

具体的には接続できるのだけど
putしたファイルが0バイト(425 Failed to establish connection)だったり
ftp上でlsとかpwdとかが効かない。

ほとほと困った挙句に
ふとWindows7側で何かしているのかも
と気づいた。

コントロールパネル>Windowsファイアウォール
で開いた画面左側の「詳細設定」 を選択すると
セキュリティが強化されたWindowsファイアウォールという画面が出る
そこの受信側のなかに
「ファイル転送プログラム」という行が4つある。
前2つが通行禁止マークで後ろ2行が緑色になっていた。

これはとおもい
通行禁止マークの2行をおのおのクリックして
全般>操作:「接続を許可する」
にかえて
ftpコマンドを実行してみたら..
..うまくいった。

結局Windows7のほうかよ!


なんなのよ、おれの半日かえしてくれよマイクロソフト..


p.s.
CloudStack管理コンソールからISOイメージ登録するには
ftpでなくHTTPサーバが必要です。

あとCloudStack管理下のセグメント内のHTTPサーバから
ISOイメージをダンロードしたい人は
先にグローバル設定の「secstorage.allowed.internal.sites」に
CIDR表記で対象範囲を登録(要管理サーバ再起動)する必要があります。  

2012年3月8日木曜日

Ubuntu Server へ CloudStack(2.1.7) をインストールする

※前のひとふでがき記事は誤りがあったので全面修正しました

Ubuntu Serverはインストールイメージに
Enterprise Cloud(Eucalyptus)を抱えているのに
あえて CloudStack をインストールしてみた。

既にCloudStack3がでてはいるのだけど、
Ubuntuパッケージ管理aptitudeで取得できる
パッケージだと2.1.7なので
実用なら枯れたバージョンになると思い
まずこっちをインストールした。
後で3もためしてみるつもりだ。

#CloudStack3.0はこちらを参照のこと

最初 Latest である 11.04 でがんばっていたが
Cloud.comのフォーラムで
11.04はサポートしてないから 10.04使ってね
という記事のアイコンの顔を見たら
一気に11.04でヤル気が失せ
10.04.3LTSを使った。




図の中で灰色は最初の状態、
水色はインストールしたOSやパッケージ、
白色はストレージやデータなどだ。

CloudStackに必要なのは
  • Management Server
  • console proxy
  • Database Server
  • Primary/Secondary Storage
  • Computing Node
上記3つをWindows7側のVMware Player上に
仮想マシン1つで構築する。
Computing NodetとStorage系はもう一つの中身空っぽの
マシン(Mouse Computer)だ。

あとWindows7上にApacheを入れてISOイメージ
をダウンロードできるようにした。
これはCloudStackへTemplateとして導入する
ISOイメージを吸い取らせるためだ。
管理コンソールが動いているサーバは
直接インターネットにつながっていないので
苦肉の策でISOを落とせるHTTPサーバを用意した。
基本CloudStack側に吸い取らせれば不要だ。


Ubuntu Server 10.04.3 LTS ISOイメージは
Windows7上にダウンロード済みとする。
空のPCにインストールするため別途DVDも用意。


1. Management Serverのインストール
1.1 仮想マシン作成
  • VMware Player起動
  • 新規仮想マシンの作成
  • 後でOSをインストール
  • 次へ
  • Linux/Ubuntu 64ビット
  • 次へ
  • 次へ ←格納場所は適当に変更する
  • 20.0GB/仮想ディスクを複数のファイルに分割
  • 次へ
  • ハードウェアをカスタマイズ
  • 新規CD/DVD(IDE)
  • ISOイメージファイルを使用する
→Ubuntu Server 10.04.3 LTS ISOイメージのパス
  • ネットワークアダプタ
  • ブリッジ:物理ネットワークに直接接続
  • 閉じる
  • 完了
  • Ubuntu 64ビット
  • 仮想マシンの再生

1.2 OSインストール
※インストール画面が表示される
  • 日本語
  • ~Ubuntuサーバをインストール
  • HappyHackingKeyboard ←環境に合わせて設定
  • Japan
  • Japan - Kana
  • Alt+Shift
  • 戻る ←DHCPが効いてしまったので
  • ネットワークを手動で設定 ←DHCPが聞いている場合のみ
  • 192.168.0.100 ← Management Serverの物理NIC
  • 255.255.255.0
  • 192.168.0.1 ←デフォルトゲートウェイ
  • 192.168.0.1 ←DNSサーバ
  • shochiku ←物理マシンのホスト名
  • hogehoge.jp ←ドメイン名、空欄でも良い
  • ガイド-ディスク全体を使いLVMをセットアップする
  • SCSI1 (0,0,0) (sda) - 20.0 GB..
  • はい
  • はい
  • 20.0 GB
  • はい
  • Tomoko Nakajima
  • tomoko
  • nakajima
  • nakajima
  • はい
  • いいえ
  • http://192.168.0.1:8080/
  • セキュリティアップデートを自動的にインストールする
  • 続ける
  • はい
  • 仮想マシン
  • 仮想マシンの設定
  • CD/DVD(IDE)
  • 物理ドライブを使用する ← DVDメディアなしを確認しておく
  • 続ける
※再起動しログインコンソール表示
  • tomoko
  • nakajima
  • sudo su -
  • nakajima
  • vi /etc/sysctl.conf
(最終行に以下の1行追加)
net.ipv6.conf.all.disable_ipv6 = 1
  • reboot

1.3 CloudStack client/databaseインストール
※再起動しログインコンソール表示
  • tomoko
  • nakajima
  • sudo su -
  • export LANG=C
  • aptitude update && aptitude -y upgrade && aptitude -y install ssh sysv-rc-conf mysq-server nfs-client
  • nakajima ←MySQL rootパスワード
  • nakajima
  • ufw allow 21
  • ufw allow 80
  • ufw allow 8080
  • ufw allow 8096
  • ufw allow 8250
  • vi /etc/apt/sources.list
(最終行に以下追加)
deb http://download.cloud.com/apt/ubuntu/stable/oss ./
  • aptitude update && aptitude -y install cloud-client
  • Yes ←日本語表示でもYesでOK
  • service tomcat6 stop
  • sysv-rc-conf tomcat6 off
  • cloud-setup-databases cloud:nakajima kvm --deploy-as=root:nakajima
←MySQL cloudパスワード登録
  • visudo
(rootから始まる行の次に以下の1行追加)
cloud ALL=(ALL) NOPASSWD: /bin/mount,/bin/umount,/bin/chmod

(キー操作:viではないので注意)
^X
Y
Enterキー
  • cloud-setup-management←Ubuntu Server 11.04だとここでエラーになる

1.4 CloudStack console-proxyインストール
  • aptitude -y install cloud-console-proxy
  • ufw allow 8001 ←必要か?


1.5 動作確認(Windows7マシン上で)
  • ブラウザ起動
  • http://192.168.0.100:8080/client
  • admin
  • password
  • /
  • Loginボタン→管理コンソールが上がる(操作しない)
  • Log off ← 右上にある


2. ISOイメージダウンロード用HTTPサーバのインストール(省略)
※Windows7上マシンにApache2.2.22をインストール
Typicalでそのままインストール
  • Ubuntu Server 10.04.3 LTS ISOファイルを以下にコピー
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs
なおWindowsファイアウォール設定には注意すること


3. Computing Nodeのインストール
※空のPC上で操作する
3.1 OSインストール
※インストール画面が表示される
  • 日本語
  • ~Ubuntuサーバをインストール
  • HappyHackingKeyboard ←環境に合わせて設定
  • Japan
  • Japan - Kana
  • Alt+Shift
  • 戻る ←DHCPが効いてしまったので
  • ネットワークを手動で設定 ←DHCPが聞いている場合のみ
  • 192.168.0.101 ← Management Serverの物理NIC
  • 255.255.255.0
  • 192.168.0.1 ←デフォルトゲートウェイ
  • 192.168.0.1 ←DNSサーバ
  • fortuneteller ←物理マシンのホスト名
  • hogehoge.jp ←ドメイン名、空欄でも良い
  • ガイド-ディスク全体を使いLVMをセットアップする
  • SCSI1 (0,0,0) (sda) - 500.1 GB ATA Hitachi HDS72105
  • はい
  • はい
  • 499.8 GB
  • はい
  • Tomoko Nakajima
  • tomoko
  • nakajima
  • nakajima
  • はい
  • いいえ
  • http://192.168.0.1:8080/
  • セキュリティアップデートを自動的にインストールする
  • 続ける
  • はい
  • Ubuntu Server 10.04.3 LTS DVDを取り出す
  • 続ける
※再起動しログインコンソール表示
  • tomoko
  • nakajima
  • sudo su -
  • nakajima
  • vi /etc/sysctl.conf
(最終行に以下の1行追加)
net.ipv6.conf.all.disable_ipv6 = 1
  • reboot
※再起動しログインコンソール表示
  • tomoko
  • nakajima
  • sudo su -
  • export LANG=C
  • aptitude update && aptitude -y upgrade && aptitude -y install ssh sysv-rc-conf

3.2 NFSサーバ(1st/2nd Storage)のインストール
  • aptitude -y install nfs-kernel-server
  • mkdir -p /var/nfs/1st
  • mkdir -p /var/nfs/2nd
  • vi /etc/exports
(以下2行を最後に追加)
/var/nfs/1st 192.168.0.0/16(rw,sync,no_root_squash,no_subtree_check)
/var/nfs/2nd 192.168.0.0/16(rw,sync,no_root_squash,no_subtree_check)
  • exportfs
  • service nfs-kernel-server start
  • sysv-rc-conf nfs-kernel-server on

3.3 CloudStack agentのインストール
  • vi /etc/hosts
(1行追加)
160.14.101.100 shochiku shochiku.hogehoge.jp
  • vi /etc/apt/sources.list
(最終行に以下追加)
deb http://download.cloud.com/apt/ubuntu/stable/oss ./
  • aptitude update && aptitude -y install cloud-agent
  • Yes
  • cloud-setup-agent
  • Enterキー
  • shochiku ←IPアドレスでもいい、どうせ変わるみたい
  • Enterキー
  • vi /etc/network/interfaces
(2行追加)
auto eth0
iface eth0 inet manual
  • iptables -I FORWARD -i cloudbr0 -o cloudbr0 -j ACCEPT
  • ufw allow proto tcp from any to any port 5900:6100
  • iptables -A FORWARD -i cloudbr0 -o cloudbr0 -j ACCEPT


4. CloudStack初期設定
※Windows7に戻る
4.1 Public IP Range設定
  • ブラウザ起動
  • http://192.168.0.100:8080/
  • admin
  • password
  • /
  • LogInボタン→管理コンソール表示
  • Configuration
  • Zones
  • Zone: Default ←この手順だとDefaultゾーンまで作ってくれる
  • Add Public IP Range
※ダイアログ表示
  • zone-wide
  • 192.168.0.1
  • 255.255.255.0
  • 192.168.0.0 - 192.168.0.254
  • Addボタン
※ダイアログ消える

4.2 Storage設定
  • Storage
  • Add Primary Storage
※ダイアログ表示
Default
Default
prime
NFS
192.168.0.101
/var/nfs/1st
prime
Addボタン
※ダイアログ消える
  • Secondary Storage
  • Add Secondary Storage
※ダイアログ表示
  • Default
  • 192.168.0.101
  • /var/nfs/2nd
  • Addボタン
※ダイアログ消える

4.3 Template(ISO)設定
  • Templates
  • ISO
  • Add an ISO
※ダイアログ表示
  • Ubuntu Server 10.04.4 LTS
  • Ubuntu Server 10.04.4 LTS
  • http://192.168.0.2/ubuntu-server-10.04.4-amd64.iso
  • All Zone
  • Yes
  • Ubuntu 10.04
  • Createボタン
※ダイアログ消える
  • Refresh→StatusがReadyになるまで繰り返す

5. Instance(仮想マシン)新規作成
  • Instances
  • Instances
  • Create a new VM
  • Default
  • Blank Template
  • Ubuntu Server 10.04.4 LTS
  • Go to Step 2
  • Small Instance, Direct Networking, $0.05 per hour
  • Go to Step 3
※optionはとりあえず空欄で試行
  • Small Disk, 5 GB
  • Go to Step 4
  • Submit
  • view(画面アイコン部分)
→コンソールが表示される
※以降省略


以上


気づいたこと
  • proxy環境だと結構厄介
  • KVMは個別に先にインストールすると変になる
  • console-proxyをインストールしないとInstanceのviewボタンがエラーに


2012年3月1日木曜日

Sオブジェクトの中のパーティ

最初に断っておきますが、
この記事は間違っているのかもしれません。


Salesforce上のアクセス権限は
研修でもメインになるくらい難しい部分である。

なのでちょっとこのへんのSオブジェクトを
クラス図風に書きだしてみた。




あとよくアナリシスパターンでもでてくる
パーティパターン風にちょっとアレンジして描いてみた。


..Sオブジェクトって
ビジネスオブジェクト(業務に出てくるオブジェクト)
って意味なんだってこと
なんじゃないかな
とふと思った。

間違ってるかもしれないけど..

Google App EngineでRecipients Emailed が100を超えた時の動作

ずっとほおっておいた
Google App Engine で構築したサイトが
うごいていないといわれ、
コンソールを見たら
以下のような状態になっていた。



Recipients Emailed は
1日MAX100件
1分間でMAX8件
処理したときに使用出来なくなる。

..ただ
どうしようできなくなるのか
よくわからなかったのだけど、
発生させて初めて気づいた。

制限を超えると該当のAPIのコール
がよべなくなるのだ。

実は作っていたのは
性格判断テストサイトのようなもので
最後の判定結果が表示されたときに
結果を所定のgmailアドレスへメールで飛ばす
機能のため、
以下のようなクラスをつくってうごかしていた。



import java.io.UnsupportedEncodingException;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class MailStoreManager {
 private static MailStoreManager manager = new MailStoreManager();
 private boolean store = false;
 private String address = null;
 private MailStoreManager(){
   String doStore = System.getProperty("mail.send");
   doStore = doStore.trim().toLowerCase();
   if("true".equals(doStore)){
     store = true;
   }else{
     store = false;
   }
   address = System.getProperty("mail.to");
   if(address==null) store = false;
   else store = true;
 }
 public static synchronized MailStoreManager getInstance(){
   return manager;
 }

 public void doStore(String msg) throws UnsupportedEncodingException, MessagingException{
   if(!store) return;
   Session session = Session.getDefaultInstance(new Properties());
   MimeMessage message = new MimeMessage(session);
   message.addRecipient(
       RecipientType.TO,
       new InternetAddress(
           address,
           "John Doe",
           "ISO-2022-JP"));
   message.setSubject(
       "[TEST] " + Utils.now());
   message.setText(
       msg,
       "ISO-2022-JP");
   message.setFrom(
       new InternetAddress(
           "gae_admin@gmail.com",
           "John Doe site",
           "ISO-2022-JP"));
   Transport.send(message);
   return;
 }
}


あまり考えも無しに
Singletonで作って
メール機能停止用のプロパティmail.sendを
false(true以外)にすると
メールが飛ばなくなるようにと
つくったつもりだった。

Singletonだから
コンストラクタでプロパティ処理と一緒にAPIよんでたっけと
調べてみてもはいっていない。

どうも
importする事自体ダメになっているらしい..

こまかく調べきれないけど
おそらくクラスロードも許してくれないらしい

..それくらい、いいじゃんか..


で修正だけど、
まあ例外発生させcatchで云々も考えたけど
今後制約がどうにかなるかもしれないので
メール送信は諦めてBigTableへ格納する
ように作り替えてしまった。
Google Docsのフォームに放り込むことも考えたけど
それだったらApp Engineでフロント書かないほうがいいだろうし。


..にしても、
..こんなの実際にエラーにしないと
どう実装すればわからんじゃん..

ほかにも制約はいろいろあるわけで
それらに引っかかったらどうなるかよくわかってないと
商売のサイトにはちょっと使うのは怖い..

..App Engine、体で覚えろってことなのか..



p.s.
もちろんお金で解決する
という方法もあります;-p



billing を enable にすれば1日5100件送れるらしいです。

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...