diff --git a/docs/udelartex/capitulos/openstack-ansible.tex b/docs/udelartex/capitulos/openstack-ansible.tex index 3ea579f582b0ba773c931b2ff0b3d817f5becf8f..55b54d70d04c4f03acb7776630ca901a27b085cd 100644 --- a/docs/udelartex/capitulos/openstack-ansible.tex +++ b/docs/udelartex/capitulos/openstack-ansible.tex @@ -1,4 +1,7 @@ -\chapter{OpenStack-Ansible} +\chapter{OpenStack-Ansible}\label{cap:openstack-ansible} +OpenStack-Ansible se trata de un proyecto basado en la herramienta de automatización Ansible para realizar el despliegue de la plataforma OpenStack. Dicho proyecto se encarga de proveer playbooks y roles para desplegar y configurar un ambiente basado en el concepto de Infrastructure as Code (IaC). OSA no es un proyecto que funcione simplemente con los archivos y configuraciones por defecto sino que modificaciones por parte del administrador del cloud serán necesarias. El resultado final que se obtiene con OSA es un cloud de OpenStack probado para ambientes de cualquier tamaño, desde Datacenters de testing hasta producción. Como fue mencionado en la sección \ref{sec:metodos-instalacion}, la utilización de una herramienta de esta Ãndole no podÃa cuestionarse. Sin embargo, era relevante determinar cuál de todas las existentes utilizar. Para tomar la decisión se consultó con Edgar Magana, un arquitecturo de operaciones en la nube con amplio conocimiento de la plataforma OpenStack y allegado a los tutores, quién argumentó que OSA era la opción indicada para comenzar. En función de esto, en este capÃtulo se analiza la arquitectura, configuraciones y funcionamiento de OSA. + + \section{Arquitectura} El método de instalación OSA emplea LXC para desplegar los servicios de OpenStack. Además utiliza Linux bridges entre los contenedores y las interfaces fÃsicas o lógicas del host con el fin de proveer conectividad directa a nivel de capa 2. El aislamiento de cada contenedor se logra mediante la utilización de namespaces, esto genera que se deban utilizar pares de interfaces virtuales (veth pairs) para tener conectividad entre los mismos. Esta implementación se puede ver en la imagen \ref{network-components}. diff --git a/docs/udelartex/capitulos/openstack.tex b/docs/udelartex/capitulos/openstack.tex index 11a4cba7933332f29432560ec1dcc0da44c024c4..da28276753c4e9de7c41544d84c65edffb91ca79 100644 --- a/docs/udelartex/capitulos/openstack.tex +++ b/docs/udelartex/capitulos/openstack.tex @@ -289,16 +289,14 @@ OpenStack utiliza una cola de mensajes para llevar a cabo la comunicación entre \subparagraph{Memcached} Es un sistema de caché de objetos en memoria distribuido, apuntado a mejorar el rendimiento de los sistemas mediante la reducción de carga a la base de datos. En OpenStack este software es utilizado por el mecanismo de autenticación de Keystone para cachear los tokens del sistema \cite{openstack-memcached}. -\section{Métodos de instalación} -Realizar la instalación básica de OpenStack (módulos core) es una tarea sumamente compleja. Esto se debe a la gran cantidad de configuraciones y diversos tópicos en los cuales hay que tener un grado de entendimiento no menor, como en bases de datos, Linux, redes y backends de almacenamiento. Las guÃas de instalación que se pueden encontrar en el sitio oficial de OpenStack consisten de cientos de configuraciones y comandos a ejecutar en donde es muy probable equivocarse y en consecuencia instalar incorrectamente los módulos de la herramienta. +\section{Métodos de instalación}\label{sec:metodos-instalacion} +Realizar la instalación básica de OpenStack (módulos core) es una tarea sumamente compleja. Esto se debe a la gran cantidad de configuraciones y diversos tópicos en los cuales hay que tener un grado de entendimiento no menor, como en bases de datos, sistemas operativos Linux, redes y backends de almacenamiento. Las guÃas de instalación que se pueden encontrar en el sitio oficial de OpenStack consisten de cientos de configuraciones y comandos a ejecutar en donde es muy probable equivocarse y en consecuencia instalar incorrectamente los módulos de la herramienta. -Debido a la relevancia que ha tomado en los últimos años OpenStack, la amplia comunidad formada por decenas de compañÃas y personas buscaron caminos alternativos a realizar la instalación manualmente. Estas formas se basan en la automatización de las tareas. Para esto existen varias tecnologÃas como Puppet \cite{openstack-puppet} o Ansible \cite{openstack-ansible}. Además existen diversas distribuciones de OpenStack, como DevStack que permite armar un ambiente rápidamente para realizar pruebas, Packstack-RDO o TripleO. Finalmente existe una gran oferta de distribuciones comerciales donde podemos encontrar grandes compañÃas como IBM, Debian, DELL, Red Hat, VMware, Huawei, etc. Un listado más extenso se puede ver en \cite{openstack-marketplace}. +Debido a la relevancia que ha tomado en los últimos años OpenStack, la amplia comunidad formada por decenas de compañÃas y personas buscaron caminos alternativos a realizar la instalación manualmente. Estas formas se basan en la automatización de las tareas, para las cuales existen varias tecnologÃas como Puppet \cite{openstack-puppet} o Ansible \cite{openstack-ansible}. Además existen diversas distribuciones de OpenStack, como DevStack que permite armar un ambiente rápidamente para realizar pruebas, Packstack-RDO o TripleO. Finalmente existe una gran oferta de distribuciones comerciales donde podemos encontrar grandes compañÃas como IBM, Debian, DELL, Red Hat, VMware, Huawei, etc. Un listado más extenso se puede ver en \cite{openstack-marketplace}. Otra de las razones principales para utilizar herramientas de automatización además de facilitar la instalación es para poder mantener el sistema luego de su instalación. En el caso de realizar las tareas manualmente no se podrá escalar la nube a cientos o miles de servidores dado que serÃa prácticamente imposible de mantener o actualizar. -En el presente trabajo se emplea la herramienta de automatización Ansible dentro del proyecto OpenStack-Ansible (OSA). Dicho proyecto se encarga de proveer playbooks y roles para desplegar y configurar un ambiente de OpenStack basado en el concepto de Infrastructure as Code (IaC). OSA no es un proyecto que funcione simplemente con los archivos y configuraciones por defecto sino que modificaciones por parte del administrador del cloud serán necesarias. El resultado final que se obtiene con OSA es un cloud de OpenStack probada para ambientes de cualquier tamaño, desde Datacenters de testing hasta producción. - -Antes de continuar profundizando en las particularidades de OSA se introducirá brevemente Ansible. +En el presente trabajo se emplea la herramienta de automatización Ansible dentro del proyecto OpenStack-Ansible (OSA) descrito en el capÃtulo \ref{cap:openstack-ansible}. Antes de alcanzar el capÃtulo que profundiza en las particularidades de OSA, se introduce brevemente el concepto de Ansible. \subsection{Ansible} Ansible es una herramienta para la automatización de tareas. Permite configurar sistemas, aplicaciones o dispositivos, desplegar o mantener software, entre otras tareas de IT. diff --git a/docs/udelartex/tesis.lof b/docs/udelartex/tesis.lof index 1e80269fcd06a74491ce4d4f7e28d38d65bbcb56..d07f5765d19bd775247662cc30a69e083fce90b4 100644 --- a/docs/udelartex/tesis.lof +++ b/docs/udelartex/tesis.lof @@ -20,9 +20,9 @@ \contentsline {figure}{\numberline {4.8}{\ignorespaces Arquitectura del módulo Swift. ExtraÃda de \cite {openstack-storage-components}.\relax }}{31}{figure.caption.36}% \contentsline {figure}{\numberline {4.9}{\ignorespaces Arquitectura de Neutron. ExtraÃda de \cite {openstack-networking-book-1}.\relax }}{33}{figure.caption.40}% \addvspace {10\p@ } -\contentsline {figure}{\numberline {5.1}{\ignorespaces Componentes de red en OpenStack. \cite {openstack-container-networking}.\relax }}{38}{figure.caption.53}% +\contentsline {figure}{\numberline {5.1}{\ignorespaces Componentes de red en OpenStack. \cite {openstack-container-networking}.\relax }}{39}{figure.caption.53}% \contentsline {figure}{\numberline {5.2}{\ignorespaces Diagrama de múltiples interfaces de red. ExtraÃda de \cite {openstack-networking-architecture}.\relax }}{40}{figure.caption.57}% -\contentsline {figure}{\numberline {5.3}{\ignorespaces Diagrama de bonds de múltiples interfaces de red. ExtraÃda de \cite {openstack-networking-architecture}.\relax }}{40}{figure.caption.58}% +\contentsline {figure}{\numberline {5.3}{\ignorespaces Diagrama de bonds de múltiples interfaces de red. ExtraÃda de \cite {openstack-networking-architecture}.\relax }}{41}{figure.caption.58}% \contentsline {figure}{\numberline {5.4}{\ignorespaces Despliegue de servicios OpenStack en contenedores. ExtraÃda de \cite {openstack-appendix-e}.\relax }}{42}{figure.caption.59}% \addvspace {10\p@ } \contentsline {figure}{\numberline {6.1}{\ignorespaces Arquitectura diseñada.\relax }}{54}{figure.caption.69}% diff --git a/docs/udelartex/tesis.pdf b/docs/udelartex/tesis.pdf index 0052dc17c085a549bdaf0095a2695cd07957da71..3530b7471164ff140bcbf696e7371bc2ca8b3c8b 100644 Binary files a/docs/udelartex/tesis.pdf and b/docs/udelartex/tesis.pdf differ diff --git a/docs/udelartex/tesis.synctex.gz b/docs/udelartex/tesis.synctex.gz index 170fe8e3d1965d96d10b84f1f6d5a95b483540fa..d819169dc2a5ee3269df819b2fa58ceb65358af7 100644 Binary files a/docs/udelartex/tesis.synctex.gz and b/docs/udelartex/tesis.synctex.gz differ diff --git a/docs/udelartex/tesis.toc b/docs/udelartex/tesis.toc index ec3dde183db6e9d92ad7f6a39722ac1a05ba29ac..6830c670a7f2592a8721e69aaae01870a5a3f453 100644 --- a/docs/udelartex/tesis.toc +++ b/docs/udelartex/tesis.toc @@ -68,18 +68,18 @@ \contentsline {subsection}{\numberline {5.1.1}Arquitectura de red}{39}{subsection.5.1.1}% \contentsline {subparagraph}{Management Network}{39}{section*.54}% \contentsline {subparagraph}{Overlay Network}{39}{section*.55}% -\contentsline {subparagraph}{Storage Network}{39}{section*.56}% -\contentsline {subsubsection}{\numberline {5.1.1.1}Interfaces de red}{39}{subsubsection.5.1.1.1}% +\contentsline {subparagraph}{Storage Network}{40}{section*.56}% +\contentsline {subsubsection}{\numberline {5.1.1.1}Interfaces de red}{40}{subsubsection.5.1.1.1}% \contentsline {section}{\numberline {5.2}Configuración OSA}{41}{section.5.2}% -\contentsline {subsection}{\numberline {5.2.1}Convenciones}{41}{subsection.5.2.1}% -\contentsline {subsection}{\numberline {5.2.2}Inventario}{42}{subsection.5.2.2}% -\contentsline {subsection}{\numberline {5.2.3}openstack\_user\_config.yml}{43}{subsection.5.2.3}% +\contentsline {subsection}{\numberline {5.2.1}Convenciones}{43}{subsection.5.2.1}% +\contentsline {subsection}{\numberline {5.2.2}Inventario}{43}{subsection.5.2.2}% +\contentsline {subsection}{\numberline {5.2.3}openstack\_user\_config.yml}{44}{subsection.5.2.3}% \contentsline {subsection}{\numberline {5.2.4}user\_variables.yml}{44}{subsection.5.2.4}% -\contentsline {section}{\numberline {5.3}Proceso de instalación}{44}{section.5.3}% +\contentsline {section}{\numberline {5.3}Proceso de instalación}{45}{section.5.3}% \contentsline {subsection}{\numberline {5.3.1}setup-hosts.yml}{45}{subsection.5.3.1}% \contentsline {subsection}{\numberline {5.3.2}setup-infrastructure.yml}{45}{subsection.5.3.2}% -\contentsline {subsection}{\numberline {5.3.3}setup-openstack.yml}{45}{subsection.5.3.3}% -\contentsline {section}{\numberline {5.4}Verificación}{45}{section.5.4}% +\contentsline {subsection}{\numberline {5.3.3}setup-openstack.yml}{46}{subsection.5.3.3}% +\contentsline {section}{\numberline {5.4}Verificación}{46}{section.5.4}% \contentsline {section}{\numberline {5.5}Inconvenientes}{47}{section.5.5}% \contentsline {chapter}{\numberline {6}Diseño}{52}{chapter.6}% \contentsline {section}{\numberline {6.1}Diseño de arquitectura}{52}{section.6.1}%