「NAT環境にいるCloudStack管理GUIでWebコンソールへのアクセスを可能にする」
補欠だったのですが急遽参加する事になったCloudStack Advent Calendar(http://atnd.org/events/34309)
人身事故で家に帰れなくなった僕がこれから12/07分を書くよ\(^o^)/
内容は「NAT環境にいるCloudStack管理GUIでWebコンソールへのアクセスを可能にする」です。
内容は「NAT環境にいるCloudStack管理GUIでWebコンソールへのアクセスを可能にする」です。
みなさんCloudStack 4.0(http://incubator.apache.org/cloudstack/)を動かしてますか?
- CloudStack環境は独立したネットワークに閉じ込める(10.10.0.0/16のBasic Network環境)
-
CloudStack環境へのアクセスには境界ルータを用いる( IIJ製SEIL)
-
Management WebUIには、境界ルータのNAT/NAPT機能を用いてアクセスする(SEILのNAT機能)
ということで
「NAT環境にいるCloudStack管理GUIでWebコンソールへのアクセスを可能にする」
を目的に話しを進めたいと思います。
環境イメージ
問題点
解決策
「ReverseProxyを間に挟む」
ReverseProxy環境イメージ
ReverseProxy設定
- CentOS 環境なので、yum install httpdとかはapacheを入れる
- /etc/httpd/conf.d/rproxy.confとかに以下を記述
- 10.10.0.10
- cloud-gate.hogefuga.jp
- 10.10.0.151
Listen 10.10.0.10:8888 <virtualhost 10.10.0.10:8888=""> ServerName 10.10.0.10 ErrorLog logs/ssl_error_log Customlog logs/ssl_access_log combined ProxyPass /client http://10.10.0.10:8080/client <- 10.10.0.10:8888/clientへのアクセスを8080へと飛ばす ProxyPassReverse /client http://10.10.0.10:8080/client SSLProxyEngine On <- ConsoleProxyへのアクセスがhttpsの為にSSLProxyEngineをonする SSLProtocol all -SSLv2 ProxyPass /ajaximg https://10.10.0.151/ajaximg ProxyPassReverse /ajaximg https://10.10.0.151/ajaximg ProxyPass /resource https://10.10.0.151/resource ProxyPassReverse /resource https://10.10.0.151/resource ProxyPass /ajax https://10.10.0.151/ajax ProxyPassReverse /ajax https://10.10.0.151/ajax ExtFilterDefine console_proxy mode=output cmd="/bin/sed -e 's,https://10-10-0-151.realhostip.com/,http://cloudstack-gate.hogefuga.jp:8888/,g'" <- 表示されるHTMLを無理矢理書き換えるフィルタ <location> AddOutputFilterByType console_proxy text/html </location> </virtualhost>
NATの設定
# nat snapt add protocol tcp listen 8888-8888 forward 10.10.0.10 8888-8888 enable interface lan1
設定の結果
クラウドの本質
という物について書いて行こうかと思うわけですが、絡まれそうで怖いなぁ。
CentOS6.2でLXC
昨年末にCentOS6.2でLXCを動かしたので、そのメモ。
参考にさせていただいたのは、こちらのサイト。
http://d.hatena.ne.jp/enakai00/20110529/1306658627
$ uname -a
Linux cent-6.2 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
+ 必要な物のインストール
# yum groupinstall "Development Tools"
# yum install libcap-devel
# yum install docbook-utils-pdf
+ LXCの入手
# wget http://lxc.sourceforge.net/download/lxc/lxc-0.7.5.tar.gz
# tar -xvzf lxc-0.7.4.5.tar.gz
# cd lxc-0.7.5
# ./configure
# make
# make install
# mkdir -p /usr/local/var/lib/lxc
+ lxc-checkconfig
[root@cent-6 lxc-0.7.5]# which lxc-checkconfig
/usr/local/bin/lxc-checkconfig
[root@cent-6 lxc-0.7.5]# lxc-checkconfig
Kernel config /proc/config.gz not found, looking in other places...
Found kernel config file /boot/config-2.6.32-220.el6.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/local/bin/lxc-checkconfig
+ まとめ
CentOS 6.2だとあっさり入りました
設定などは別にまとめましょうかねぇ
青山
Tremaをテルマと呼んでいた自分に死にたい気分になったが、気にしないのだー。