Note :

Installer Oracle Linux Automation Manager sur Oracle Linux

Présentation

Oracle Linux Automation Manager est un moteur de tâches et une interface utilisateur graphique basée sur le Web permettant de programmer et d'exécuter des livres de jeu Oracle Linux Automation Engine en fonction des stocks d'hôtes distants. Cette suite d'outils permet aux administrateurs de gérer facilement leur infrastructure informatique et d'effectuer des tâches répétitives de manière connue et prévisible, tout en évitant les problèmes courants d'administration manuelle.

Oracle Linux Automation Engine est un outil permettant de gérer et d'exécuter des tâches d'administration à l'aide d'une infrastructure basée sur du code en tant que fichiers de définition YAML appelés livres de jeu (IaC). Ces livres de jeu comprennent des tâches pédagogiques telles que le déploiement de logiciels, la configuration de systèmes et l'orchestration des mises à niveau et des mises à jour.

Objectifs

Dans ce tutoriel, vous apprendrez à :

Préalables

Déployer Oracle Linux

Note : Si vous exécutez votre propre location, lisez les préalables du projet linux-virt-labs GitHub README.md et remplissez les conditions requises avant de déployer l'environnement de laboratoire.

  1. Ouvrez un terminal sur le Luna Desktop.

  2. Clonez le projet linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Accédez au répertoire de travail.

    cd linux-virt-labs/olam
    
  4. Installez les collections requises.

    ansible-galaxy collection install -r requirements.yml
    
  5. Mettez à jour la configuration de l'instance Oracle Linux.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: none
    EOF
    
  6. Sert à créer un fichier d'inventaire.

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. Déployez l'environnement de l'exercice.

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

    L'environnement de laboratoire gratuit nécessite la variable supplémentaire ansible_python_interpreter pour localhost, car il installe l'ensemble RPM pour la trousse SDK Oracle Cloud Infrastructure pour Python. L'emplacement d'installation de cet ensemble est sous les modules Python par défaut du système en fonction de votre version d'Oracle Linux. L'utilisation d'une variable d'inventaire évite d'avoir une incidence sur les lectures exécutées sur des hôtes autres que localhost.

    La forme de déploiement par défaut utilise l'unité centrale AMD. Vous pouvez modifier la forme des instances en transmettant une nouvelle définition de variable de forme sur la ligne de commande.

    Par exemple : -e instance_shape="VM.Standard3.Flex"

    De même, la version par défaut de l'image Oracle Linux utilise la variable os_version définie dans le fichier `default_vars.yml. Vous pouvez modifier cette valeur en transmettant la version principale d'Oracle Linux sur la ligne de commande.

    Par exemple : -e os_version="9"

    Important : Attendez que le livre de jeu s'exécute avec succès et atteignez la tâche Mettre en pause. À ce stade du livre de jeu, l'installation d'Oracle Linux est terminée et les instances sont prêtes. Notez la lecture précédente, qui imprime les adresses IP publiques et privées des noeuds qu'il déploie.

Activer le référentiel DNF Oracle Linux et définir les règles de pare-feu

Activez les référentiels yum et les règles de pare-feu requis avant d'installer Oracle Linux Automation Manager.

  1. Ouvrez un terminal et connectez-vous via ssh au noeud olam-node.

    ssh oracle@<ip_address_of_instance>
    
  2. Installez le référentiel 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
    

    Cette commande active le dernier référentiel Oracle Linux Automation Manager par défaut pour l'installation des ensembles du produit.

  3. Ajoutez les services HTTP/HTTPS aux règles de pare-feu.

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

Installer une base de données PostgreSQL locale

  1. Activer le flux de module.

    sudo dnf module reset postgresql
    sudo dnf -y module enable postgresql:16
    
  2. Installez la base de données.

    sudo dnf -y install postgresql-server
    
  3. Initialisez la base de données.

    sudo postgresql-setup --initdb
    
  4. Remplacez le mécanisme de stockage des mots de passe par scram-sha-256.

    sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
    
  5. Activez et démarrez la base de données.

    sudo systemctl enable --now postgresql
    
  6. Créez les comptes utilisateur de la base de données.

    Important : Pour cet environnement de laboratoire gratuit, utilisez le mot de passe password à l'invite. Ce mot de passe n'est pas sécurisé et nous n'utilisons ce mot de passe qu'à des fins de démonstration dans cet environnement.

    sudo su - postgres -c "createuser -S -P awx"
    
  7. Créer la base de données.

    sudo su - postgres -c "createdb -O awx awx"
    
  8. Mettez à jour le fichier d'authentification basée sur l'hôte.

    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. Mettez à jour l'adresse IP du module d'écoute de la base de données.

    sudo sed -i "/^#port = 5432/i listen_addresses = '"$(hostname -i)"'" /var/lib/pgsql/data/postgresql.conf
    
  10. Mettez à jour les besoins en mémoire de la base de données.

    Ces calculs tirent parti de la mémoire totale du système en mégaoctets et remplacent les valeurs par défaut dans le fichier de configuration 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. Redémarrez la base de données.

    sudo systemctl restart postgresql
    

Installer et configurer Oracle Linux Automation Manager

  1. Installez l'ensemble Oracle Linux Automation Manager et toutes les dépendances.

    sudo dnf -y install ol-automation-manager
    
  2. Mettez à jour le fichier de configuration 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. Ajoutez le fichier CLUSTER_HOST_ID à un fichier de paramètres personnalisés.

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

    Note : L'utilisation de $(hostname -i) ne fonctionne pas pour les systèmes pour lesquels IPv6 est activé en raison d'espaces existants dans la sortie. Utilisez plutôt le nom d'hôte du système, ce qui est possible à l'aide de $(hostname -f), ou d'une autre chaîne sans espaces.

  4. Mettez à jour les autorisations sur le fichier de paramètres personnalisés.

    sudo chown awx.awx /etc/tower/conf.d/olam.py
    sudo chmod 0640 /etc/tower/conf.d/olam.py
    
  5. Ajoutez des paramètres de base de données à un fichier de configuration personnalisé.

    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. Activer la persistance.

    Oracle Linux 9 :

    sudo loginctl enable-linger awx
    

    Ce message est résolu lors de l'exécution sur un système sans tête :

    WARN[0000] Le gestionnaire cgroupv2 est réglé à systemd mais il n'y a pas de session d'utilisateur systemd disponible WARN[0000] Pour utiliser systemd, vous devrez peut-être vous connecter à l'aide d'une session d'utilisateur WARN[0000] Vous pouvez également activer la persistance avec : loginctl enable-linger 986 (peut-être en tant que racine) WARN[000] Retourner à –cgroup-manager=cgroupfs
    WARN[0000] Le gestionnaire cgroupv2 est réglé à systemd mais il n'y a pas de session d'utilisateur systemd disponible WARN[0000] Pour utiliser systemd, vous devrez peut-être vous connecter à l'aide d'une session d'utilisateur WARN[0000] Vous pouvez également activer la persistance avec : loginctl enable-linger 986 (peut-être en tant que racine) WARN[000] Revenir à –cgroup-manager=cgroupfs

  2. Extrayez l'image de conteneur 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. Créez le schéma Oracle Linux Automation Manager et le compte d'utilisateur administrateur.

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

    Note : Dans l'exemple précédent, admin@example.com est un exemple d'adresse de courriel de l'utilisateur administrateur.

  4. Entrez et confirmez le mot de passe de l'administrateur.

  5. Quittez l'interpréteur de commandes de l'utilisateur awx.

    exit
    
  6. Générez un certificat SSL pour NGINX.

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

    Entrez les informations demandées ou appuyez simplement sur la clé ENTER.

  7. Remplacez la configuration NGINX par défaut.

    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. Mettez à jour le fichier de configuration 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. Provisionner une instance et enregistrer des environnements d'exécution.

    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. Démarrez le service.

    sudo systemctl enable --now ol-automation-manager.service
    
  11. Déconnectez-vous du serveur.

    exit
    

Vérifiez l'installation

  1. A l'aide de la même fenêtre de terminal, configurez un tunnel SSH.

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

    Note : Dans l'exemple précédent, <ip_address_of_instance> est le nom d'hôte ou l'adresse IP du système exécutant Oracle Linux Automation Manager. Si vous utilisez le nom d'hôte, l'hôte doit être résolu.

  2. Ouvrez un navigateur Web et entrez l'URL.

    https://localhost:8444
    

    Note : Approuvez l'avertissement de sécurité en fonction du navigateur utilisé. Pour Chrome, cliquez sur le bouton Advanced, puis sur le lien Proceed to localhost (unsafe).

  3. Connectez-vous à Oracle Linux Automation Manager avec USERNAME admin et le mot de passe créé lors de la configuration.

Étapes suivantes

Une fois Oracle Linux Automation Manager installé, vous pouvez commencer à explorer l'interface utilisateur Web et les diverses fonctions du produit pour automatiser votre infrastructure. Consultez notre formation supplémentaire sur le poste de formation Oracle Linux pour approfondir vos connaissances et obtenir des idées.

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.