用Archipel实现与虚拟机管理程序对话(1)(2)
安装过程
Archipel的其中一个最大缺点体现在安装过程:说明文档内容极其匮乏。但至少,描述设置的部分相当清晰,不过你需要留意几个错误。最好的办法就是从安装Ejabberd入手,它需要版本至少是2.1.6,最好使用二进制安装工具。接下来,你需要添加ejabberd_xmlrpc和mod_admin_extra模块,以扩展XMPP服务器。为此,获取用Erlang编写的源代码,然后将因而获得的*.beam文件拷贝到Ejabberd后台驻留程序的ebin目录(代码段1和代码段2)。
完成了这一步后,你需要修改/opt/ejabberd‑2.1.6/conf/ejabberd.cfg(视发行版而定,这个文件可能是/etc/ejabberd/ejabberd.cfg)。为此,启用你刚刚创建的模块;最重要的是,输入完全符合标准的域名(FQDN)。遗憾的是,Archipel项目记载的配置方法在许多方面具有误导性;为此,你可能应该遵循代码段3。
代码段1:ejabberd_xmlrpc
wget http://www.ejabberd.im/files/contributions/
xmlrpc‑1.13‑ipr2.tgz
tar ‑xzvf xmlrpc‑1.13‑ipr2.tgz
cd xmlrpc‑1.13/src
make
cd ../../
cp ebin/*.beam /opt/ejabberd‑2.1.6/lib/ejabberd‑2.1.6/ebin
最后,创建管理员帐户,完成Ejabberd的设置:
ejabberdctl register admin FQDN password
设置Archipel代理的过程要快一点,从依赖性检查开始,为此你需要Python版本2.5或更新版本、Libvirt版本0.8.7或更新版本、KVM等虚拟机管理程序,以及Qemu版本0.12.5或更新版本。此外,你应该有Qemu-img和Python设置工具。
代码段2:mod_admin_extra
cd /usr/local/src/ejabberd‑modules/mod_admin_extra/trunk/
./build.sh
cp ebin/mod_admin_extra.beam
/opt/ejabberd‑2.1.6/lib/ejabberd‑2.1.6/ebin
代码段3:ejabberd.cfg
01 {hosts, ["jabber.deutschewolke.datenwerk‑it.de"]}.
02 [...]
03 {listen,
04 [
05 {4560, ejabberd_xmlrpc, []},
06 {5280, ejabberd_http, [
07 http_bind,
08 http_poll,
09 web_admin
10 ]}
11 ]}.
12 [...]
13 {modules,
14 [
15 {mod_adhoc, []},
16 {mod_http_bind,[]},
17 [...]
18 {mod_admin_extra, []}
19 ]}.
20 [...]
下面序列的命令安装了Archipel代理:
easy_install archipel‑agent
archipel‑initinstall
现在,你需要把服务器的FQDN添加到/etc/archipel/archipel.conf,使用提供的init脚本来启动Archipel:
/etc/init.d/archipel start
最后,你需要两个Ejabberd pubsub节点,确保权限系统和标记管理可以正常工作:
archipel‑tagnode ‑‑jid=admin@FQDN ‑‑password=Password ‑‑create
SUCCESS: pubsub node /archipel/tags created!
archipel‑rolesnode ‑jid=admin@FQDN ‑‑password=Password ‑‑create
SUCCESS: pubsub node /archipel/roles created!
你不需要手动建立客户端,在Archipel维基中已有详细描述。而是只要选择最新的Archipel客户端发行版,将它解压缩到本地目录中,在浏览器中打开index.html。至于登录时,输入完全符合标准的Jabber ID很重要;也就是说,该ID必须包括完整的服务器名称(图2)。
图2:就客户端的Archipel登录而言,你需要在Jabber ID字段中输入完整的登录名(包括域)。
你在这里所需的密码是你在创建管理员帐户时指定的登录信息。Service BOSH字段的URL遵循http://FQDN:5280/http‑bind这种模式。