こんな感じの画面がWebブラウザから使えるようになる。
環境/前提
- Ubuntu 14.04 Server
- libvirtでKVMの仮想マシンを起動できる状態
- (BIOS設定他+apt-get install qemu-kvm libvirt-bin的な状態)
Web側の設定
WebVirtMgrはPython + Djangoで書かれたWebアプリケーションなので、それが動くようにする。基本的には、https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr に書かれている手順の通り。このページには、RedHat/CentOS/Debianなんかのときの方法も書いてある。
Python他のインストール
apt-getで入れる。$ sudo apt-get install git python-pip python-libvirt python-libxml2 novnc supervisor nginx
アプリケーションのダウンロードと設定
gitで落としてきて、いくつか設定する。$ git clone git://github.com/retspen/webvirtmgr.git $ cd webvirtmgr
ここで本来の手順は「sudo pip install -r requirements.txt」なのだけど、パッケージ管理されないファイルが増えてしまう。requirements.txtを見ると、書いてあるライブラリがUbuntu 14.04のバージョン的にいけそうだったのでパッケージで入れることにした。
$ sudo apt-get install python-django gunicorn python-lockfile
スクリプトで初期設定をする。
$ ./manage.py syncdb You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'ユーザ名'): Email address: user@example.org Password: パスワード Password (again): パスワード Superuser created successfully. $ ./manage.py collectstatic
ディレクトリをまるっと移動する。
$ sudo mkdir /var/www $ cd .. $ sudo mv webvirtmgr /var/www/ $ sudo chown -R www-data:www-data /var/www/webvirtmgr
バックグラウンド起動の設定
バックグラウンドで起動するようにsupervisorを設定する。/etc/supervisor/conf.d/webvirtmgr.confに以下の内容を書く。
[program:webvirtmgr] command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py directory=/var/www/webvirtmgr autostart=true autorestart=true stdout_logfile=/var/log/supervisor/webvirtmgr.log redirect_stderr=true user=www-data
supervisorのリスタート(これで8000/tcpで立ち上がる)
$ sudo service supervisor restart
フロントのWebサーバの設定
フロントに立つnginxを設定する。プロキシしているだけなので、Apacheでもいいと思うが、サンプルがこうなっているのでそうした。/etc/nginx/sites-available/webvirtmgrに以下を記述する。
server { listen 8008 default_server; server_name $hostname; #access_log /var/log/nginx/webvirtmgr_access_log; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Proto $remote_addr; } }
$ sudo ln -s /etc/nginx/sites-available/webvirtmgr /etc/nginx/sites-enabled/webvirtmgr $ service nginx restart
これで http://hostname:8008/ にアクセスすると画面が見えるようになる。
novncの設定
ブラウザからコンソールを使うためのnovncの設定。この設定ファイルもwebvirtmgrに入っているので、使うだけでOK.$ cd /var/www/webvirtmgr $ sudo cp conf/initd/webvirtmgr-novnc-ubuntu /etc/init.d/webvirtmgr-novnc $ sudo service webvirtmgr-novnc start $ sudo update-rc.d webvirtmgr-novnc defaults
(コメントにnova-novncproxyとか書いてあったのでOpenStack Novaから持ってきたのであろう...)
libvirtの設定
WebVirtMgrはlibvirtdにTCP接続するので、その設定をする(なので、ハイパーバイザは別ホストでもOK)ここの設定は https://www.webvirtmgr.net/docs/ を参考にした(証明書切れてる...)。
/etc/default/libvirt-binのlibvirtd_optsの行に-lを足して、tcpでlistenするようにする。
libvirtd_opts="-d -l"
/etc/libvirt/libvirtd.conf を以下のように編集する。今回はハイパーバイザが同一ホストなので127.0.0.1でlistenさせる。
listen_tls = 0 listen_tcp = 1 listen_addr = "127.0.0.1"
libvirt用のパスワードを設定する。
$ sudo apt-get install sasl2-bin $ sudo saslpasswd2 -a libvirt ユーザ名 Password: Again (for verification): $ sudo sasldblistusers2 -f /etc/libvirt/passwd.db ユーザ名@ホスト名: userPassword
libvirtdを再起動する。
$ service libvirt-bin restart
以下のようにして接続できることを確認する。
$ virsh -c qemu+tcp://127.0.0.1/system nodeinfo Please enter your authentication name: ユーザ名@ホスト名 Please enter your password: CPU model: x86_64 CPU(s): 8 CPU frequency: 800 MHz CPU socket(s): 1 Core(s) per socket: 4 Thread(s) per core: 2 NUMA cell(s): 1 Memory size: 16318576 KiB
Web画面にログインしての設定
http://hostname:8008/ にアクセスすると、ログイン画面が表示されるので、最初の「syncdb」を実行したときのユーザ/パスワードでログインする。あとは画面ベースなので詳細は省略するが、以下のように設定すれば使えるようになる。
- Servers List画面で127.0.0.1を追加する。
- Storage Pools画面で、仮想マシン用のディレクトリorLVMプールとISOを配置するディレクトリを追加する。
- Networks画面でネットワークを追加する。
- Instances画面でインスタンスを追加する。
0 件のコメント:
コメントを投稿