OpenNebula 3.8 — VMWare
[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即可。
请问如何在vSphere Client在ESXi节点上创建用户oneadmin和用户组cloud,其用户ID和用户组ID都设置为10000?
我在我用的是esxi 5.1 但是创建的oneadmin 用户id只能是1000 而且不能创建组,请问您知道这该修改什么地方么