Note:

Instalación de Oracle Linux Automation Manager en Oracle Linux

Introducción

Oracle Linux Automation Manager es un motor de tareas y una interfaz gráfica de usuario (GUI) basada en web para programar y ejecutar cuadernos de estrategias de Oracle Linux Automation Engine en inventarios de hosts remotos. Este conjunto de herramientas permite a los administradores gestionar fácilmente su infraestructura de TI y completar tareas repetitivas de una manera conocida y predecible, evitando problemas comunes de administración manual.

Oracle Linux Automation Engine es una herramienta para gestionar y ejecutar tareas de administración mediante una infraestructura basada en código como archivos de definición YAML de código (IaC) denominados cuadernos de estrategias. Estos cuadernos de estrategias incluyen tareas instructivas, como la implementación de software, la configuración de sistemas y la orquestación de actualizaciones y actualizaciones.

Objetivos

En este tutorial, aprenderá a:

Requisitos

Desplegar Oracle Linux

Nota: Si se ejecuta en su propio arrendamiento, lea el proyecto linux-virt-labs GitHub README.md y complete los requisitos antes de desplegar el entorno de prácticas.

  1. Abra un terminal en el escritorio Luna.

  2. Clone el proyecto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Cambie al directorio de trabajo.

    cd linux-virt-labs/olam
    
  4. Instale las recopilaciones necesarias.

    ansible-galaxy collection install -r requirements.yml
    
  5. Actualice la configuración de la instancia de Oracle Linux.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: none
    EOF
    
  6. Cree un archivo de inventario.

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. Despliegue el entorno de prácticas.

    ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
    

    El entorno de prácticas gratuitas necesita la variable adicional ansible_python_interpreter para localhost porque instala el paquete RPM para el SDK para Python de Oracle Cloud Infrastructure. La ubicación para instalar este paquete se encuentra en los módulos de Python por defecto del sistema según la versión de Oracle Linux. El uso de una variable de inventario evita que las reproducciones se ejecuten en hosts que no sean localeshost.

    La unidad de despliegue por defecto utiliza la CPU de AMD. Puede cambiar la unidad de las instancias transfiriendo una nueva definición de variable de unidad en la línea de comandos.

    Por ejemplo: -e instance_shape="VM.Standard3.Flex"

    Del mismo modo, la versión por defecto de la imagen de Oracle Linux utiliza la variable os_version definida en el archivo `default_vars.yml. Puede modificar este valor transfiriendo la versión principal de Oracle Linux en la línea de comandos.

    Por ejemplo: -e os_version="9"

    Importante: Espere a que el cuaderno de estrategias se ejecute correctamente y alcance la tarea de pausa. En esta etapa del manual, se ha completado la instalación de Oracle Linux y las instancias están listas. Observe la reproducción anterior, que imprime las direcciones IP públicas y privadas de los nodos que despliega.

Activación del repositorio DNF de Oracle Linux y definición de reglas de firewall

Active los repositorios de yum y las reglas de firewall necesarios antes de instalar Oracle Linux Automation Manager.

  1. Abra un terminal y conéctese mediante ssh al nodo olam-node.

    ssh oracle@<ip_address_of_instance>
    
  2. Instale el repositorio de Oracle Linux Automation Manager.

    Oracle Linux 8:

    sudo dnf -y install oraclelinux-automation-manager-release-el8
    

    Oracle Linux 9:

    sudo dnf -y install oraclelinux-automation-manager-release-el9
    

    Este comando activa el repositorio de Oracle Linux Automation Manager más reciente como valor predeterminado para instalar los paquetes del producto.

  3. Agregue los servicios HTTP/HTTPS a las reglas de firewall.

    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    

Instalación de una base de datos PostgreSQL local

  1. Activar el flujo de módulo.

    sudo dnf module reset postgresql
    sudo dnf -y module enable postgresql:16
    
  2. Instale la base de datos.

    sudo dnf -y install postgresql-server
    
  3. Inicialice la base de datos.

    sudo postgresql-setup --initdb
    
  4. Cambie el mecanismo de almacenamiento de contraseñas a scram-sha-256.

    sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
    
  5. Active e inicie la base de datos.

    sudo systemctl enable --now postgresql
    
  6. Cree las cuentas de usuario de base de datos.

    Importante: para este entorno de prácticas gratuito, utilice la contraseña password en el indicador. Esta contraseña no es segura y solo usamos esta contraseña para fines de demostración en este entorno.

    sudo su - postgres -c "createuser -S -P awx"
    
  7. Cree la base de datos.

    sudo su - postgres -c "createdb -O awx awx"
    
  8. Actualice el archivo de autenticación basada en host.

    echo "host  all  all 0.0.0.0/0 scram-sha-256" | sudo tee -a /var/lib/pgsql/data/pg_hba.conf > /dev/null
    
  9. Actualice la dirección IP del listener de base de datos.

    sudo sed -i "/^#port = 5432/i listen_addresses = '"$(hostname -i)"'" /var/lib/pgsql/data/postgresql.conf
    
  10. Actualice los requisitos de memoria de la base de datos.

    Estos cálculos aprovechan la memoria total del sistema en megabytes y reemplazan los valores por defecto en el archivo de configuración PostgreSQL.

    export TOTAL_MEMORY="$(free --mega | awk 'FNR == 2 {print $2}')"
    sudo sed -i 's/max_connections = 100/max_connections = 1024/g' /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^shared_buffers =/c\shared_buffers = $( echo "($TOTAL_MEMORY*0.3)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#work_mem =/c\work_mem = $( echo "($TOTAL_MEMORY*0.03)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#maintenance_work_mem =/c\maintenance_work_mem = $( echo "($TOTAL_MEMORY*0.04)/1" | bc )MB" /var/lib/pgsql/data/postgresql.conf
    
  11. Reinicie la base de datos.

    sudo systemctl restart postgresql
    

Instalación y configuración de Oracle Linux Automation Manager

  1. Instale el paquete de Oracle Linux Automation Manager y cualquier dependencia.

    sudo dnf -y install ol-automation-manager
    
  2. Actualice el archivo de configuración de Redis.

    Oracle Linux 8:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis.conf
    

    Oracle Linux 9:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis/redis.conf
    
  3. Agregue CLUSTER_HOST_ID a un archivo de configuración personalizado.

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    CLUSTER_HOST_ID = '$(hostname -i)'
    EOF
    

    Nota: El uso de $(hostname -i) no funciona para sistemas con IPv6 activado debido a espacios existentes en la salida. En su lugar, utilice el nombre de host del sistema, que es posible mediante $(hostname -f), o cualquier otra cadena sin espacios.

  4. Actualice los permisos en el archivo de configuración personalizado.

    sudo chown awx.awx /etc/tower/conf.d/olam.py
    sudo chmod 0640 /etc/tower/conf.d/olam.py
    
  5. Agregue valores de base de datos a un archivo de configuración personalizado.

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    
    DATABASES = {
        'default': {
            'ATOMIC_REQUESTS': True,
            'ENGINE': 'awx.main.db.profiled_pg',
            'NAME': 'awx',
            'USER': 'awx',
            'PASSWORD': 'password',
            'HOST': '$(hostname -i)',
            'PORT': '5432',
        }
    }
    EOF
    
  1. Active la persistencia.

    Oracle Linux 9:

    sudo loginctl enable-linger awx
    

    Este mensaje se resuelve cuando se ejecuta en un sistema sin cabecera:

    ADVERTENCIA[0000] El gestor cgroupv2 está definido en systemd pero no hay ninguna sesión de usuario systemd disponible. ADVERTENCIA[0000] Para utilizar systemd, puede que tenga que iniciar sesión con una sesión de usuario. ADVERTENCIA[0000] También puede activar la persistencia con: loginctl enable-linger 986 (posiblemente como root) ADVERTENCIA[0000] Volviendo a -cgroup-manager=cgroupfs
    WARN[0000] El gestor cgroupv2 está establecido en systemd pero no hay ninguna sesión de usuario systemd disponible WARN[0000] Para utilizar systemd, puede que tenga que iniciar sesión con una sesión de usuario WARN[0000] También puede activar la persistencia con: loginctl enable-linger 986 (posiblemente como root) WARN[0000] Volviendo a –cgroup-manager=cgroupfs

  2. Extraiga la imagen de contenedor de Oracle Linux Automation Manager.

    Oracle Linux 8:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol8
    

    Oracle Linux 9:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol9
    
  3. Cree el esquema de Oracle Linux Automation Manager y la cuenta de usuario administrador.

    awx-manage migrate
    awx-manage createsuperuser --username admin --email admin@example.com
    

    Nota: En el ejemplo anterior, admin@example.com es una dirección de correo electrónico de ejemplo del usuario administrador.

  4. Introduzca y confirme la contraseña del usuario administrador.

  5. Salga del shell de usuario de awx.

    exit
    
  6. Genere un certificado SSL para NGINX.

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/tower/tower.key -out /etc/tower/tower.crt
    

    Introduzca la información solicitada o simplemente pulse la clave ENTER.

  7. Sustituya la configuración predeterminada de NGINX.

    cat << EOF | sudo tee /etc/nginx/nginx.conf > /dev/null
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    }
    EOF
    
  8. Actualice el archivo de configuración del receptor.

    cat << EOF | sudo tee /etc/receptor/receptor.conf > /dev/null
    ---
    - node:
        id: $(hostname -i)
    
    - log-level: debug
    
    - tcp-listener:
        port: 27199
    
    - control-service:
        service: control
        filename: /var/run/receptor/receptor.sock
    
    - work-command:
        worktype: local
        command: /var/lib/ol-automation-manager/venv/awx/bin/ansible-runner
        params: worker
        allowruntimeparams: true
        verifysignature: false
    EOF
    
  9. Aprovisione una instancia y registre entornos de ejecución.

    sudo su -l awx -s /bin/bash
    
    awx-manage provision_instance --hostname=$(hostname -i) --node_type=hybrid
    
    awx-manage register_default_execution_environments
    
    awx-manage register_queue --queuename=default --hostnames=$(hostname -i)
    
    awx-manage register_queue --queuename=controlplane --hostnames=$(hostname -i)
    
    awx-manage create_preload_data
    
    exit
    
  10. Inicie el servicio.

    sudo systemctl enable --now ol-automation-manager.service
    
  11. Realiza la desconexión del servidor.

    exit
    

Verifique la instalación

  1. Con la misma ventana de terminal, configure un túnel SSH.

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    

    Nota: En el ejemplo anterior, <ip_address_of_instance> es el nombre de host o la dirección IP del sistema que ejecuta Oracle Linux Automation Manager. Si utiliza el nombre de host, el host debe poder resolverse.

  2. Abra un explorador web e introduzca la URL.

    https://localhost:8444
    

    Nota: Apruebe la advertencia de seguridad según el explorador utilizado. Para Chrome, haga clic en el botón Advanced y, a continuación, en el enlace Proceed to localhost (unsafe).

  3. Inicie sesión en Oracle Linux Automation Manager con el nombre de usuario admin y la contraseña creados durante la configuración.

Pasos Siguientes

Con Oracle Linux Automation Manager instalado, puede empezar a explorar la interfaz de usuario web y las distintas funciones del producto para ayudar a automatizar su infraestructura. Consulte nuestra formación adicional sobre Oracle Linux Training Station para ampliar sus conocimientos y obtener ideas.

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.