GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Playbook de Ansible para instalar y configurar Apache en Ubuntu

Ansible es una herramienta de implementación de aplicaciones y administración de configuración de código abierto. Ayuda a reducir los gastos generales de gestión al automatizar la implementación de la aplicación y administrar la infraestructura de TI.

Usando ansible vamos a instalar el servidor web apache2 en Ubuntu  20.04. Para lo cual necesitamos crear una configuración en sintaxis YAML llamada Playbooks de Ansible .

Normalmente, hay un nodo de control y nodos host. Ansible está instalado en el nodo de control y ejecutará el libro de estrategias para implementarlo en los nodos host. En esta práctica de laboratorio, lo instalaremos y lo usaremos en un solo nodo.

Instalación de ansible en Ubuntu

Primero, actualice su sistema. El siguiente comando obtiene el paquete más reciente:

$ sudo apt update

Ansible está disponible en el repositorio base de Ubuntu 20.04. Para instalar ansible, ejecute el siguiente comando:

$ sudo apt install ansible -y

Luego, verifique la versión de ansible usando el comando,

$ ansible --version

El archivo de configuración del host se almacena en el archivo /etc/ansible/hosts. Agregue la IP de su servidor localhost al archivo con la ayuda del siguiente comando. Asegúrate de tener un usuario sudo. En nuestro caso, 'ubuntu' tiene el privilegio sudo. Aquí, he dado mi nombre como 'myserver' puedes dar el tuyo propio. Además, recuerde que el usuario ubuntu es usuario sudo en el sistema.

$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host

Solo verifíquelo usando el comando,

$ ansible myserver -m ping 

Debería obtener una respuesta pong similar a la captura de pantalla a continuación.

Crear un libro de jugadas

Ahora, vamos a crear un libro de jugadas llamado 'apache.yml' para instalar y ejecutar el servidor web apache más reciente.

$ vi apache.yml

Agregue el siguiente contenido al archivo

---
- hosts: myserver
  become: true
  vars:
         - vars/default.yml
- tasks:
    - name: Install latest version of Apache
      apt: name=apache2 update_cache=yes state=latest

    - name: Create document root for your domain
      file:
        path: "/var/www/{{ http_host }}"
        state: directory
        owner: "{{ app_user }}"
        mode: '0755'

    - name: Copy your index page
      template:
        src: "files/index.html.j2"
        dest: "/var/www/{{ http_host }}/index.html"

    - name: Set up virtuahHost
      template:
        src: "files/apache.conf.j2"
        dest: "/etc/apache2/sites-available/{{ http_conf }}"
      notify: restart-apache

    - name: "UFW firewall allow HTTP on port {{ http_port }}"
      ufw:
        rule: allow
        port: "{{ http_port }}"
        proto: tcp

  handlers:
    - name: restart-apache
      service:
        name: apache2
        state: restarted

Aquí,

  • anfitrión :es el nombre de host que definió en el archivo /etc/ansible/hosts
  • convertirse en:verdadero es una escalada de privilegios por ser sudo
  • vars :para definir las variables
  • tareas :se definen cuatro tareas. Instalando apache, copiando la página de índice, configurando el host virtual, permitiendo http desde el firewall UFW si ya está habilitado.
  • controladores :Para reiniciar apache si todas las demás tareas son exitosas.

Junto con el libro de jugadas, debe definir otros tres archivos vars/default.yml, files/apache.conf.j2 y files/index.html.j2. Vamos a crearlos uno por uno.

vars/default.yml

El archivo predeterminado.yml contiene el nombre de dominio, la ubicación del archivo de configuración y el puerto http. Cree el archivo y agregue lo siguiente.

http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"

archivos/apache.conf.j2

La plantilla de configuración de apache contiene la configuración para el host virtual. La variable se define dentro de {{ }} y se obtiene del archivo vars definido anteriormente. Cree el archivo apache.conf.js y agregue el siguiente contenido.

<VirtualHost *:{{ http_port }}>
   ServerAdmin webmaster@localhost
   ServerName {{ http_host }}
   ServerAlias www.{{ http_host }}
   DocumentRoot /var/www/{{ http_host }}
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

archivos/index.html.j2

Otra plantilla es su archivo de índice. Cree el archivo y agregue el siguiente contenido. Puede modificar según sus requisitos.

<html>
   <head>
       <title>{{ http_host }}</title>
   </head>
   <body>
       <h1>Welcome to {{ http_host }}</h1>
   </body>
</html>

Ahora puede ejecutar ansible-playbook con el siguiente comando.

$ ansible-playbook apache.yml --ask-become-pass

Se le pedirá que ingrese una contraseña para el usuario sudo. El estado debería estar bien como se muestra a continuación.

Esto también ejecutará apache en el puerto predeterminado 80, puede verificar navegando localhost en su navegador favorito.

Conclusión

Ansible es una herramienta útil, ya que no tiene agentes y la configuración de escritura es fácil. Puede buscar más configuraciones en la documentación oficial de ansible. Comente si tiene algún problema mientras escribe el libro de jugadas en ansible.


Ubuntu
  1. Cómo instalar y configurar Ansible en Ubuntu 20.04

  2. Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

  3. Cómo instalar Apache Maven en Ubuntu 18.04 y 16.04

  4. Instalar y configurar Apache Spark en Ubuntu 20.04

  5. Uso de Ansible para instalar y configurar Elasticsearch en Ubuntu 20.04

Cómo instalar y configurar Samba en Ubuntu

Cómo instalar y usar BleachBit 1.12 en Ubuntu 16.04

Instalar Apache OpenOffice en Ubuntu y Linux Mint

Cómo instalar y configurar Apache Spark en Ubuntu 21.04

Cómo instalar y configurar Ansible en Ubuntu

Cómo instalar y configurar Apache Spark en Ubuntu/Debian