El primer paso para automatizar cualquier ciclo de vida operativo de la aplicación es automatizar el aprovisionamiento de la infraestructura. El aprovisionamiento es un proceso molesto de configurar configuraciones, asignar memoria, espacio en disco, etc., antes de usarlas realmente. Veamos cómo Ansible Provisioning hace que esto sea más simple y rápido.
La mayoría de las implementaciones a gran escala requieren que tenga una configuración de entorno idéntica en varios sistemas.¿Asique como haces eso? ¿Ejecutar el mismo conjunto de comandos en cien sistemas manualmente? Nahh ... Eso es demasiado de la vieja escuela. Esto es algo en lo que son buenas las máquinas, no los humanos. ¿Qué pasaría si te dijera que este proceso largo y aburrido se puede hacer con solo ejecutar un solo libro de jugadas de Ansible?De eso es de lo que vamos a hablar en este blog: Ansible Provisioning.
Los temas cubiertos son:
- Que es Ansible
- ¿Qué puede automatizar Ansible?
- Necesidad de aprovisionamiento de Ansible
- Demostración: cómo aprovisionar el entorno para implementar un sitio web
Si desea dominar DevOps, ' El curso debería ser tu opción preferida.
¿Qué es Ansible?
DevOps es una cultura donde la automatización tiene una prioridad muy alta. Cuando puede haber herramientas para automatizar la implementación y el proceso de prueba, ¿por qué no tener herramientas para la gestión de la configuración y el aprovisionamiento? Hay un millón de formas de volverse más inteligente y usar Ansible es una de ellas. Es una de las herramientas más utilizadas.
Ansible utiliza libros de jugadas basados en YAML que incluso un principiante puede entender. Utiliza una arquitectura sin agentes para comunicarse con sus clientes que no implica la instalación de ninguna herramienta de terceros en la máquina del cliente y, en cambio, utiliza conexiones basadas en SSH. Como Ansible es una herramienta de automatización, averigüemos qué puede automatizar.
¿Qué puede automatizar Ansible?
Nombra una etapa del ciclo de desarrollo y Ansible te ayudará con ella, ya sea en la gestión de la configuración, el aprovisionamiento, la orquestación, la entrega continua, la seguridad o incluso la implementación de aplicaciones. Ansible une el flujo de trabajo del ciclo de desarrollo en una única plataforma de automatización sin agentes.
- Aprovisionamiento: Es necesario crear un entorno adecuado para que la aplicación / software viva. Ansible proporciona una forma de automatizar el entorno creado para la existencia de la aplicación.
- Gestión de la configuración: Realice una amplia variedad de tareas de configuración, como iniciar / detener servicios, cambiar la configuración de un sistema, dispositivo o aplicación, etc.
- Implementación de la aplicación: Automatice la definición de implementación con Ansible y administre la implementación utilizando Torre Ansible . Esto hace que todo el ciclo de la aplicación, desde la producción hasta la implementación, sea eficiente y manejable.
- Entrega continua: Crear y gestionar una integración continua / una canalización de entrega continua puede resultar engorroso. Ahí es donde Ansible interviene y facilita la vida del desarrollador.
- Seguridad y cumplimiento: Trabajar con los proyectos, siempre establece límites y se integra con las políticas de seguridad de la empresa. Tener políticas de seguridad integradas automáticamente con la implementación puede facilitar el cumplimiento de las políticas.
- Orquestación: Un proyecto completo es una colección de muchas instancias diferentes que tienen una configuración diferente. Ansible fusiona y gestiona estas diferentes instancias como un todo.
Necesidad de aprovisionamiento Ansible
Como se mencionó anteriormente, el primer paso paraautomatizar el ciclo de vida operativo de las aplicacioneses preparar el entorno, es decir, aprovisionar. Las grandes implementaciones requieren que varios hosts tengan exactamente las mismas configuraciones. Después de aprovisionar un host, ¿cuáles son las posibilidades de que los próximos 10 hosts tengan exactamente las mismas configuraciones si se hace manualmente? Además, ¿cuánto tiempo dedicará a realizar la misma tarea repetitiva? Aquí es donde Ansible llega a nuestro servicio. Puede aprovisionar cientos de hosts con solo ejecutar un solo libro de jugadas. ¿Magia? ¡Ja ja! No, solo evolución en la automatización.
Demostración: cree una pila LAMP e implemente una página web
Suponga que está intentando implementar un sitio web en 30 sistemas, cada implementación de sitio web requerirá un sistema operativo base, un servidor web, una base de datos y PHP. Usamos el libro de jugadas ansible para instalar estos requisitos previos en los 30 sistemas a la vez.
En esta demostración de aprovisionamiento de Ansible, le mostraré cómo aprovisionar el entorno de alojamiento de sitios web con Ansible. Instalamos la pila LAMP (Linux, Apache, MySQL y PHP) y luego implementamos un sitio web.
Para esta demostración, he usado una VirtualBox de Linux con la versión 17.04 de Ubuntu. He usado dos máquinas virtuales, una como mi servidor donde está instalado Ansible y la otra máquina actúa como mi host remoto. Comencemos por configurar Ansible en el servidor.
Creé una página web estática simple guardada en una carpeta índice que tiene dos archivos, index.html y style.css.
index.html:
Sitio web usando HTML y CSSHogar Acerca de Razas Adopción Contacto Adopta ahora
style.css
* { margen: 0 acolchado: 0 } encabezado { imagen de fondo: degradado lineal (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') altura: 100vh tamaño de fondo: cubierta posición de fondo: centro } .nav-menu { flotar derecho estilo de lista: ninguno margen superior: 30px } .nav-menu li { pantalla: bloque en línea } .nav-menu li a { color: turquesa decoración de texto: ninguna relleno: 5px 20px familia de fuentes: 'Verdana', 'sans-serif' tamaño de fuente: 20px } .homebtn a { borde: 1 px gris sólido color de fondo: blanco } .nav-menu li a: hover { borde: 1 px gris sólido color de fondo: blanco } .tagline { posición: absoluta ancho: 1200px margen izquierdo: 0 margen superior: 0 } h1 { color blanco tamaño de fuente: 50px familia de fuentes: 'Verdana', 'sans-serif' alineación de texto: centro margen superior: 275px } .adopt { margen superior: 30px margen izquierdo: 540px } .bttn { borde: 1px blanco sólido relleno: 10px 30px color amarillo familia de fuentes: 'Verdana', 'sans-serif' tamaño de fuente: 22px decoración de texto: ninguna } .adopt a: hover { color de fondo: burlywood }
Paso 1: Ejecute los siguientes comandos para actualizar los repositorios, agregue los repositorios necesarios y configure PPA en su máquina para la instalación de Ansible:
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible
Presione enter para aceptar la adición de PPA y luego finalmente instale Ansible después de actualizar los repositorios.
$ sudo apt-get update $ sudo apt-get install ansible
Paso 2: Vaya al archivo / etc / hosts de su servidor y agregue el nombre de host y la dirección IP del host.
Fig.1 - Agregar hosts remotos al archivo / etc / hosts - Aprovisionamiento Ansible
Paso 3: Mientras Ansible trabaja en la arquitectura sin agentes de usar SSH para comunicarse con sus hosts, configure las claves ssh. Básicamente, tenemos un servidor y un host. Controlamos el host con nuestro servidor y, por lo tanto, creamos una clave ssh pública en el servidor y la copiamos en la máquina del host. Ejecute el siguiente comando en el servidor:
$ ssh-keygen
Se le pedirá que ingrese el nombre del archivowhere yodesea guardar su clave y también solicitarle que cree una contraseña para acceder a la clave generada, que es opcional. De forma predeterminada, la clave pública se guarda en el archivo .ssh / id_rsa.pub y la clave privada se guarda en .ssh / id_rsa.
Fig.2 - Crear clave ssh - Aprovisionamiento Ansible
Ahora, esta clave generada debe estar presente en su host. La copia de la clave en el host se puede hacer de dos maneras, ya sea copiando manualmente en el host o usando el comando ssh-copy-id. En este caso, lo voy a copiar usando el comando ssh-copy-id root @ IP_of_host.
$ ssh-copy-id root@192.168.56.104
Nota: asegúrese de poder ingresar a su host antes de ejecutar este comando.
Etapa 4: Configure los hosts de Ansible. Vaya al archivo / etc / ansible / hosts y agregue el nombre de host. Esto variará según la cantidad de hosts y servidores que tenga. También puedes tener más deun servidoraquí.
Fig.3 - Agregar hosts remotos en el archivo de inventario - Aprovisionamiento Ansible
Paso 5: Compruebe si sus anfitriones están listos. Ejecute este comando, debería obtener un resultado similar.
$ ansible -m ping a todos
Fig.4 - Verifique el estado del host remoto - Aprovisionamiento Ansible
Paso 6: Ahora que nuestro Ansible está listo, preparemos el entorno para implementar un sitio web. Vamos a utilizar un solo manual de Ansible para instalar Apache, MySql y PHP. Echemos un vistazo.
Nota: si eres un principiante, echa un vistazo a esta blog que explica cómo escribir un libro de jugadas.
--- # Configurar la pila LAMP - hosts: host1 tareas: - nombre: Agregar repositorio ppa convertido en: sí apt_repository: repo = ppa: ondrej / php - nombre: Instalar la pila de lámparas convertido en: sí apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-estado mysql: actual caché de actualización: sí - nombre: iniciar el servidor apache se convierte en: sí servicio: nombre: estado apache2: iniciado habilitado: sí - nombre: iniciar el servicio mysql se convierte en: sí servicios: nombre: estado de mysql: iniciado habilitado: sí - nombre: crear archivo de directorio de destino: ruta = / var / www / html estado = modo de directorio = 0755 - nombre: implementar index.html se convirtió en: sí copia: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html
Aquí como puede ver, tenemos 6 tareas, cada tarea realiza una función específica.
- La primera tarea agrega el repositorio necesario para instalar MySQL y PHP.
- La segunda tarea instala apache2, MySQL-server, PHP y PHP-MySQL.
- La tercera y cuarta tarea inicia el servicio Apache y MySQL.
- La quinta tarea crea un directorio de destino en la máquina host y
- Finalmente, la sexta tarea ejecuta el archivo index.html, recoge el archivo de la máquina servidor y lo copia en la máquina host.
Ejecute este libro de jugadas con el siguiente comando:
$ ansible-playbook lamp.yml -K
Las líneas convertirse en: si en el libro de jugadas dice que debe ejecutarse como root y, por lo tanto, cuando ejecute el comando, le solicitará la contraseña de sudo.
Fig.5 - Ejecute el libro de jugadas de Ansible - Aprovisionamiento de Ansible
Ahora puede ir a la máquina host y verificar si el sitio web está alojado.
que es una instancia de una clase en java
Fig.6 - Alojar el sitio web en Localhost - Aprovisionamiento Ansible
Ahora que es una página web que se desplegaría en todos los hosts que interactúan con el servidor (en nuestro caso, solo teníamos un host) pero lo mismo sería posible incluso para 100 hosts remotos.
Esto nos lleva al final del blog de Ansible Provisioning. Si encuentra útil este artículo, consulte el ' ofrecido por Edureka. Cubre todas las herramientas que han hecho que la industria de TI sea más inteligente.
Tienes una pregunta para nosotros? Por favor publícalo en y nos pondremos en contacto contigo.