婉兮清扬

案上诗书杯中酒之快意人生

OpenNebula 3.8 — VMWare

发表时间:2013-05-03 13:47:47
[1]前端节点的配置

首先需要在前端节点上安装OpenNebula,具体的方法可以参见《Ubuntu 12.04 Server安装配置OpenNebula 3.8》这篇文章。

为了简单期间,我们使用前段节点所提供的NFS服务作为ESXi节点的存储设备。在创建NFS服务的时候需要export两个目录:


$ sudo vi /etc/exports
/var/lib/one/datastores/0 *(rw,sync,no_subtree_check,root_squash,anonuid=10000,anongid=10000)
/var/lib/one/datastores/1 *(rw,sync,no_subtree_check,root_squash,anonuid=10000,anongid=10000)


然后需要在前端节点上安装libvirt,并且使得其支持VMWare。


sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder ruby libgnutls-dev libdevmapper-dev libcurl4-gnutls-dev python-dev libnl-dev libapparmor-dev libpciaccess-dev


编辑/etc/libvirt/libvirtd.conf配置libvirt,将操作权限授予给cloud组:


unix_sock_group = “cloud”


编辑/etc/libvirt/qemu.conf配置libvirt,设置VNC:


vnc_listen = “0.0.0.0″


重启libvirt:


sudo service libvirt-bin restart
sudo chown oneadmin:cloud /var/run/libvirt/libvirt-sock


Ubuntu自带的libvirt不提供对VMWare的支持。我们需要手工编译安装libvirt 1.05,并设置为支持VMWare。


wget http://libvirt.org/sources/libvirt-1.0.5.tar.gz
tar xvzf libvirt-1.05.tar.gz
cd libvirt-1.05
./configure --with-esx --with-apparmor --sysconfdir=/etc --libdir=/usr/lib --sbindir=/usr/sbin --datarootdir=/usr/share --localstatedir=/var --libexecdir=/usr/lib/libvirt
make
sudo make install

sudo cp -a examples/apparmor/usr.* /etc/apparmor.d/
sudo cp -a examples/apparmor/TEMPLATE /etc/apparmor.d/libvirt/
sudo cp -a examples/apparmor/libvirt-qemu /etc/apparmor.d/abstractions/
sudo cp /usr/local/bin/virsh /usr/bin/virsh
sudo /etc/init.d/apparmor restart

export PERL_LWP_SSL_VERIFY_HOSTNAME=0


测试一下是否能够通过libvirt访问ESXi节点(在下面这个命令中,esxi01是ESXi节点的主机名):


virsh -c esx://esxi01/?no_verify=1 --readonly nodeinfo


如果没有以外的话,你应该可以看到类似于下面的信息:


oneadmin@opennebula:~/libvirt-0.9.10$ virsh -c esx://esxi01/?no_verify=1 --readonly nodeinfo
Enter username for esxi01 [root]:
Enter root's password for esxi01:
CPU model: Intel Core i5-3330S CPU @ 2.70G
CPU(s): 4
CPU frequency: 2693 MHz
CPU socket(s): 1
Core(s) per socket: 4
Thread(s) per core: 1
NUMA cell(s): 1
Memory size: 8283168 kB


从VMWare网站下载VMware-vSphere-CLI-5.0.0-615831.x86_64.tar.gz,按照如下步骤安装:


sudo apt-get install libxml-libxml-perl libclass-methodmaker-perl libcrypt-ssleay-perl curl libdata-uuid-libuuid-perl perl-doc uuid libuuid-perl
tar zxvf VMware-vSphere-CLI-5.0.0-615831.x86_64.tar.gz
cd vmware-vsphere-cli-distrib
perl Makefile.PL
make

sudo perl -MCPAN -e shell

install Bundle::CPAN


编辑文件vmware-install.pl,修改下面这几行


if ( !( $ftpproxy && $httpproxy)) {
uninstall_file($gInstallerMainDB);
exit 1;
}


修改后的内容为:


if ( !( $ftpproxy && $httpproxy)) {
# uninstall_file($gInstallerMainDB);
# exit 1;
}


然后执行安装程序:


sudo ./vmware-install.pl


安装完成后,测试一下是否可以访问ESXi主机:


esxcfg-nics -l --server esxi01 --username root


修改etc/oned.conf,取消下面这些配置的注释:


IM_MAD = [
name = "im_vmware",
executable = "one_im_sh",
arguments = "-c -t 15 -r 0 vmware" ]

VM_MAD = [
name = "vmm_vmware",
executable = "one_vmm_sh",
arguments = "-t 15 -r 0 vmware -s sh",
default = "vmm_exec/vmm_exec_vmware.conf",
type = "vmware" ]


修改etc/vmwarerc,提供访问ESXi节点的用户名和密码:


# Username and password of the VMware hypervisor
:username: "root"
:password: "Password"


编辑etc/vmm_exec/vmm_exec_vmware.conf,注释掉下面这一行:


#DISK = [ DRIVER = file ]


然后重新启动OpenNebula服务:


one stop
one start


[2]ESXi节点的配置

在ESXi节点上启用SSH服务,通过vSphere Client在ESXi节点上创建用户oneadmin和用户组cloud,其用户ID和用户组ID都设置为10000(与前端节点一致)。将oneadmin用户添加到root用户组,允许oneadmin用户通过SSH访问ESXi节点,并给oneadmin用户分配管理员(Administrator)权限。

通过vSphere Client将前端节点所提供的两个NFS服务分别挂载为0 和1 两个数据存储(datastore)。

用root用户登录到ESXi节点,创建目录/etc/ssh/keys-oneadmin,并将前端节点上/srv/cloud/one/.ssh/id_rsa.pub文件拷贝成为ESXi节点上的/etc/ssh/keys-oneadmin/authorized_keys,然后将该文件的所有者设置为oneadmin用户。


# cd /etc/ssh
# chown -R oneadmin keys-oneadmin


修改ESXi节点上的防火墙配置文件/etc/vmware/firewall/service.xml,在文件末尾添加VNC配置:




VNC

outbound
tcp
dst

5800
5999



inbound
tcp
dst

5800
5999


true
false



重新启动防火墙:


# /sbin/esxcli network firewall refresh
# /sbin/esxcli network firewall ruleset list


在前端节点上运行下面这个命令,测试一下是否可以通过OpenNebula访问ESXi节点。如果配置成功的话,可以看到该节点的CPU和内存等信息。


/srv/cloud/one/var/remotes/im/run_probes vmware 0 esxi01


通过SunStone管理门户添加ESXi节点,其虚拟化平台和监控组件都设置为VMWare即可。

上一篇 下一篇

发表时间:2013-08-07 08:51:16    评论者:hansz

请问如何在vSphere Client在ESXi节点上创建用户oneadmin和用户组cloud,其用户ID和用户组ID都设置为10000? 我在我用的是esxi 5.1 但是创建的oneadmin 用户id只能是1000 而且不能创建组,请问您知道这该修改什么地方么

 
姓名:
评论:

请输入下面这首诗词的作者姓名。

爆竹声中一岁除,春风送暖入屠苏。
千门万户曈曈日,总把新桃换旧符。

答案:

云与清风常拥有,
冰雪知音世难求。
击节纵歌相对笑,
案上诗书杯中酒。

蒋清野
2000.12.31 于 洛杉矶