[h=1]Guía de Inicio Rápido: OpenNebula en CentOS 6 y ESX 5.x[/h] Esta guía ayuda en el proceso de obtener rápidiamente un cloud OpenNebula basado en VMware y CentOS. Es útil para desplegar pilotos de Cloud, y para probar rápidamente las nuevas funcionalidades como punto de partida para construir una infraestructura más extensa. [h=2]Esquema de Paquetes[/h] opennebula-server: Demonios de OpenNebula opennebula: Línea de comandos para OpenNebula opennebula-sunstone: Interfaz Gráfico de OpenNebula opennebula-ozones: Servicio de múltiples zonas opennebula-java: API de Java opennebula-node-kvm: Instala las dependecencias requeridas por OpenNebula en los nodos opennebula-gate: Componente que permite enviar información de las máquinas virtuales a OpenNebula opennebula-flow: Gestión de servicios opennebula-context: Paquete para huéspedes de OpenNebula Adicionalmente opennebula-common y opennebula-ruby existes pero se instalarán como dependencias. opennebula-occi, un servicio REST para gestionar el cloud está incluido en el paquete opennebula-sunstone. [h=2]Paso 1. Configuración de la Infraestructura[/h] La infraestructura se debe de configurar de la forma en la que se indica en la figura. Advertencia Para esta guía se ha utilizado un ESX versión 5.0. No obstante, la guía podrá ser útil para otras versiones de ESX, aunque la configuración (y la experiencia) puede variar. Se asume que habrá al menos dos servidores físicos disponibles, uno que servirá como Frontend de OpenNebula y otro como nodo de virtualización ESX (que será configurado en la siguiente sección). La figura muestra un servidor ESX adicional, indicando que el cloud piloto se puede extender simplemente añadiendo más nodos de virtualización. Frontend Sistema Operativo: Centos 6.4 Repositorio adicional requerido: EPEL Paquetes requeridos: NFS, libvirt $ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm $ sudo yum install nfs-utils nfs-utils-lib libvirt Nodo de Virtualización Sistema Operativo: ESX 5.0 Advertencia Los hosts de ESX necesitarán ser configurados. Para hacerlo, deberá tener acceso a una máquina Windows con el Virtual Infrastructure Client (cliente vSphere) instalado. El cliente VI se puede descargar del nodo ESX, abriendo con el navegador la IP del nodo. Advertencia os nodos ESX deberán estar lincenciados correctamente, con permisos de escritura a los APIs exportados (la licencia de Evaluación lo tiene). Más información sobre licencias válidas aquí. [h=2]Paso 2. Configuración del Frontend de OpenNebula[/h] 2.1 Instalación OpenNebula El primero paso es instalar OpenNebula en el Frontend. OpenNebula se puede descargar desde aquí, escogiendo el paquete de CentOS. Una vez descargado al frontend se debe de desempaquetar: $ tar xvzf CentOS-6-opennebula-*.tar.gz E instalar los paquetes requeridos: $ sudo yum localinstall opennebula-*/*.rpm Advertencia No inicie OpenNebula en este momento, se necesita configurar previamente. No se procederá a iniciar el servicio hasta este punto. Instalemos ahora el noVNC para obtener acceso a las VMs: $ sudo /usr/share/one/install_novnc.sh Debemos obtener el uid y el gid de oneadmin, ya que lo necesitarmos para las próximas secciones: $ id oneadmin uid=499(oneadmin) gid=498(oneadmin) Para evitar problemas, recomendamos la desactivación de SELinux para el Frontend del cloud piloto (ya que a veces el origen de todos los problemas). Siga estas instrucciones: $ sudo vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted $ sudo setenforce 0 $ sudo getenforce Permissive 2.2 Configuración NFS El Frontend deberá exportar via NFS dos datastores (el de sistema y el de imágenes). Esto es necesario de forma que el ESX tenga acceso a esos dos datastores, y en esta guía se usa el NFS exportado del Frontend para conseguirlo. Esto puede ser reemplazado sin impacto con dos datastores iSCSI o dos discos duros locales. En cualquier caso, usaremos los drivers vmfs para administrar ambos datastores, independientemente del backend de almacenamiento. Mire la Guía de Datastore VMFS para más detalles. Ahora procederemos a configurar el servidor NFS. Deberá permitir conexiones entrantes, en este caso simplemente pararemos el iptables (como root): $ sudo su - oneadmin $ sudo vi /etc/exports /var/lib/one/datastores/0 *(rw,sync,no_subtree_check,root_squash,anonuid=499,anongid=498) /var/lib/one/datastores/1 *(rw,sync,no_subtree_check,root_squash,anonuid=499,anongid=498) $ sudo service iptables stop $ sudo service nfs start $ sudo exportfs -a Advertencia Asegúrese de que anonuid y anongid corresponden al uid y gid de oneadmin. 2.3 Redes Deberá haber conexión entre el Frontend y los nodos ESX. Esto se puede verificar con el comando ping: $ ping <esx-ip> [h=2]Paso 3: Configuración de nodos de Virtulización VMware[/h] Este es probablemente el paso que requiere más trabajo para poner el piloto cloud en funcionamiento, pero resulta crucial para asegurarse de su correcto funcionamiento. Se deberá ejecutar los siguientes comandos en el nodo ESX: 3.1 Creación de usuario oneadmin Con el client VI conectamente al host ESX, vaya a local Users & Groups para añadir un usuario como el que se muestra en la figura (el UID es importante, debe de corresponder al del Frontend.). Asegúrese de que seleciona Grant shell to this user, y guarda en un lugar seguro la password usada. A continuación, en el tab de Permissions se asignará el rol Administrator a oneadmin (click derecho → Add Permission...). 3.2 Activar acceso por SSH De nuevo en el cliente VI en Configuration → Security Profile → Services Properties (arriba derecha). Haga click en la etiqueta SSH, seleccione el botón Options, y luego Start. Podrá configurarlo para que se inicie junto con el host, tal como se muestra en la figura. A se procederá con lo siguiente: Conecte via SSH al Frontend de OpenNebula como el usuario oneadmin. Copie la salida del siguiente comando al portapapeles: $ ssh-keygen Enter an empty passphrase $ cat .ssh/id_rsa.pub Conecte via SSH al nodo ESX (como oneadmin). Ejecute lo siguiente desde el Frontend: $ ssh <esx-ip> Enter the password you set in the step 3.1 $ su # mkdir /etc/ssh/keys-oneadmin # chmod 755 /etc/ssh/keys-oneadmin # vi /etc/ssh/keys-oneadmin/authorized_keys paste here the contents of oneadmin's id_rsa.pub and exit vi # chown oneadmin /etc/ssh/keys-oneadmin/authorized_keys # chmod 600 /etc/ssh/keys-oneadmin/authorized_keys # chmod +s /sbin/vmkfstools /bin/vim-cmd # This is needed to create volatile disks Ahora oneadmin podrá acceder por ssh sin un diálogo pidiendo la contraseña $ ssh <esx-ip> 3.3 Configuración de Datastores Ahora deberemos montar los dos datastores exportados por defecto por Frontend de OpenNebula. En primer lugar, asegúrese de que el cortafuegos permite la conexión del cliente NFS al Frontend. Vaya a Configuration → Software → Security Profile, y active la fila del cliente NFS: De nuevo en el cliente VI, vaya a Configuration → Storage → Add Storage (arriba derecha). Añadiremos dos datastores (0 y 1). En la figura se muestra los detalles del datastore 100, para añadir el datastores 0 y 1 simplemente cambia la referencia de 100 a 0 y luego a 1 en los diálogos de Folder y Datastore Name. La IP del servidor mostrada puede no coincidir con su valor, que deberá ser la IP el que Frontend usa para conectar con el ESX. Las rutas que van a ser usadas como input: /var/lib/one/datastores/0 /var/lib/one/datastores/1 Más información en datastores y otras posibles configuraciones. 3.4 Configuración del VNC Abra una conexión ssh con el ESX como root y haga: # cd /etc/vmware # chown -R root firewall/ # chmod 7777 firewall/ # cd firewall/ # chmod 7777 service.xml Añada el siguiente fragmento a /etc/vmware/firewall/service.xml # vi /etc/vmware/firewall/service.xml Advertencia El id del servicio deberá ser la id del último servicio + 1. Dependerá de la configuración de su cortafuegos <!-- VNC --> <service id="0033"> <id>VNC</id> <rule id='0000'> <direction>outbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port> <begin>5800</begin> <end>5999</end> </port> </rule> <rule id='0001'> <direction>inbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port> <begin>5800</begin> <end>5999</end> </port> </rule> <enabled>true</enabled> <required>false</required> </service> Refresce el cortafuegos # /sbin/esxcli network firewall refresh # /sbin/esxcli network firewall ruleset list [h=2]Paso 4. Configuración de OpenNebula[/h] Ahora configure OpenNebula en el Frontend para permitir el uso del hipervisor ESX. El siguiente fragmento deberá ser ejecutado bajo la cuenta de oneadmin. 4.1 Configuración de oned y Sunstone Edite /etc/one/oned.conf con sudo y descomente el siguiente fragmento: #******************************************************************************* # DataStore Configuration #******************************************************************************* # DATASTORE_LOCATION: *Default* Path for Datastores in the hosts. It IS the # same for all the hosts in the cluster. DATASTORE_LOCATION IS ONLY FOR THE # HOSTS AND *NOT* THE FRONT-END. It defaults to /var/lib/one/datastores (or # $ONE_LOCATION/var/datastores in self-contained mode) # # DATASTORE_BASE_PATH: This is the base path for the SOURCE attribute of # the images registered in a Datastore. This is a default value, that can be # changed when the datastore is created. #******************************************************************************* DATASTORE_LOCATION = /vmfs/volumes DATASTORE_BASE_PATH = /vmfs/volumes #------------------------------------------------------------------------------- # VMware Information Driver Manager Configuration #------------------------------------------------------------------------------- IM_MAD = [ name = "vmware", executable = "one_im_sh", arguments = "-c -t 15 -r 0 vmware" ] #------------------------------------------------------------------------------- # VMware Virtualization Driver Manager Configuration #------------------------------------------------------------------------------- VM_MAD = [ name = "vmware", executable = "one_vmm_sh", arguments = "-t 15 -r 0 vmware -s sh", default = "vmm_exec/vmm_exec_vmware.conf", type = "vmware" ] Edite /etc/one/sunstone-server.conf con sudo y permita conexiones entrantes de cualquier IP: sudo vi /etc/one/sunstone-server.conf # Server Configuration # :host: 0.0.0.0 ort: 9869 4.2 Añada los credenciales ESX $ sudo vi /etc/one/vmwarerc <Add the ESX oneadmin password, set in section 3.1> # Username and password of the VMware hypervisor :username: "oneadmin" assword: "password" Advertencia No edito :libvirt_uri:, los drivers necesitan el marcador HOST 4.3 Inicie OpenNebula Inicie OpenNebula y Sunstone como oneadmin $ one start $ sunstone-server start Si no hay mensajes de error todo fue bien. 4.4 Configuración de recursos físicos Ahora configuraremos los datastores de sistema y de imágenes: $ onedatastore update 0 SHARED="YES" TM_MAD="vmfs" TYPE="SYSTEM_DS" BASE_PATH="/vmfs/volumes" $ onedatastore update 1 TM_MAD="vmfs" DS_MAD="vmfs" BASE_PATH="/vmfs/volumes" CLONE_TARGET="SYSTEM" DISK_TYPE="FILE" LN_TARGET="NONE" TYPE="IMAGE_DS" BRIDGE_LIST="esx-ip" $ onedatastore chmod 1 644 Y el nodo ESX: $ onehost create <esx-ip> -i vmware -v vmware -n dummy 4.5 Creación de un usuario de tipo Cloud $ oneuser create oneuser <mypassword> [h=2]Paso 5. Uso del Cloud a través de Sunstone[/h] Ahora que todo está listo, podremos comenzar a utilizar el Cloud OpenNebula. Utilice su navegador para acceder Sunstone. La url será http://@IP-del-frontend@:9869 Una vez que haya introducido las credenciales para el usuario oneuser (con la password escogida en la sección anterior) podrá ver la pantalla principal del Sunstone. También podrá hacer login como oneadmin, y verá que tiene acceso a más funcionalidad (básicamente, la administración de infrastructura física y tareas de gestión) Es hora de instanciar nuestra primera MV. Hagamos uso de un appliance ya creado disponible en el Marketplace. Haga log in como oneuser, vaya al tab de Marketplace en el Sunstone (menú de la izquierda), y seleccione la file ttylinux-VMware. Haga click en el botón Importar a infraestructura local arriba a la derecha, y especifique el nombre de la nueva imagen (use ttylinux - VMware) y asígnelo al datastores VMwareImages. En el tab de Recursos Virtuales / Imágenes, verá que su imagen pasa de LOCKED a READY. A continuación crearemos un template que utilice esta imagen. Vaya al tab de Recursos Virtuales / Plantillas y haga click en el botón de +Create y siga el diálogo, o bien use el tab de Modo Avanzado para pegar el siguiente fragmento: NAME = "ttylinux" CPU = "1" MEMORY = "512" DISK = [ IMAGE = "ttylinux - VMware", IMAGE_UNAME = "oneuser" ] GRAPHICS = [ TYPE = "vnc", LISTEN = "0.0.0.0" ] Seleccione la plantilla recién creada y click en el botón de Instanciar. Ahora puede proceder al tab de Máquinas Virtuales. Una vez que su MV está en estado RUNNING, puede hacer click en el icono de VNC y podrá ver el login de ttylinux (root / password). La imagen ttylinux no incluye las VMware Tools, por lo que no podrá hacer un apagado ordenado. Deberá utilizar la acción Cancel en su lugar. ¡Y esto es todo! Ahora tiene un piloto cloud completamente funcional. Podrá crear sus propias máquinas virtuales, o importar otros appliances del marketplace como Centos 6.2. ¡Disfrute! [h=2]Paso 6. Pasos siguientes[/h] Siga la guía de Virtualización de VMware para una instalación completa, referencia de optimización y cómo activar las funcionalidades de añadir disco en caliente y de migración en caliente con vMotion. OpenNebula puede usar redes nativas de VMware para proporcionar aislamiento a través de etiquetas VLAN. esperando que les agrade mis copypastes