注意:

升级 Oracle Linux Automation Manager

简介

现有的 Oracle Linux Automation Manager 管理员熟悉其一体化单实例部署。

Oracle Linux Automation Manager 允许管理员升级其现有部署,然后将升级的实例迁移到集群部署中。升级时,实例将转换为单主机部署,并将自身配置为混合节点。

学完本教程后,您将了解如何从以前的发行版升级 Oracle Linux Automation Manager。

目标

在本教程中,您将学习如何:

先决条件

部署 Oracle Linux Automation Manager

注:如果在您自己的租户中运行,请阅读 linux-virt-labs GitHub 项目 README.md ,并在部署实验室环境之前完成先决条件。

  1. 在 Luna 桌面上打开一个终端。

  2. 克隆 linux-virt-labs GitHub 项目。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 转到工作目录。

    cd linux-virt-labs/olam
    
  4. 安装所需的集合。

    ansible-galaxy collection install -r requirements.yml
    
  5. 更新 Oracle Linux 实例配置。

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    passwordless_ssh: true
    olam_type: v1
    EOF
    
  6. 部署实验室环境。

    ansible-playbook create_instance.yml -e ansible_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
    

    免费实验室环境需要额外的变量 ansible_python_interpreter,因为它为 Oracle Cloud Infrastructure SDK for Python 安装了 RPM 程序包。此软件包安装的位置位于 python3.6 模块下。

    默认部署配置使用 AMD CPU 和 Oracle Linux 8。要使用 Intel CPU 或 Oracle Linux 9,请将 -e instance_shape="VM.Standard3.Flex"-e os_version="9" 添加到部署命令。

    重要提示:等待剧本成功运行并进入暂停任务。Oracle Linux Automation Manager 安装在手册的此阶段已完成,并且实例已准备就绪。记下之前的播放,该播放输出所部署节点的公共和专用 IP 地址。

登录到 WebUI

  1. 打开终端并配置到 Oracle Linux Automation Manager 的 SSH 隧道。

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

    在免费实验室环境中,使用 olam-node 实例的外部 IP 地址。

  2. 打开 Web 浏览器并输入 URL。

    https://localhost:8444
    

    注:根据使用的浏览器批准安全警告。单击 Chrome 的 **Advanced 按钮,然后单击 Proceed to localhost (unsafe) 链接。

  3. 使用在自动部署期间创建的 USERNAME admin 和 PASSWORD admin 登录到 Oracle Linux Automation Manager。

    olam-login

  4. 登录后,将显示 WebUI。

    鄂拉姆 - 韦布伊

运行升级

  1. 切换到连接到运行 Oracle Linux Automation Manager 实例的 olam-node 实例的终端。

  2. 停止 Oracle Linux Automation Manager 服务。

    sudo systemctl stop ol-automation-manager
    
  3. 创建 Oracle Linux Automation Manager 用于加密数据库中的自动化密钥的密钥备份。

    sudo cp /etc/tower/SECRET_KEY ~/SECRET_KEY.olamv1
    
  4. 创建数据库的备份。

    此命令将数据库的内容转储到包含还原数据库所需的所有 SQL 命令和数据的文件中。

    sudo su - postgres -c pg_dumpall > /tmp/olamv1_db_dump
    
  5. 停止数据库服务。

    sudo systemctl stop postgresql
    
  6. 删除现有数据库数据文件。

    sudo rm -rf /var/lib/pgsql/data
    

    此命令将删除现有数据库数据文件。以后使用转储文件重新构建数据库。

  7. 卸载当前数据库软件包。

    sudo dnf -y remove postgresql
    
  8. 为新数据库版本启用模块流。

    Oracle Linux Automation Manager 允许在升级时使用 PostgreSQL 12 和 13。此实验室使用版本 13。

    sudo dnf -y module reset postgresql
    sudo dnf -y module enable postgresql:13
    
  9. 更新 Oracle Linux Automation Manager 系统信息库软件包。

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

    注:此步骤将报告,由于初始部署已安装 Oracle Linux Automation Manager 的最新系统信息库软件包,因此在免费练习环境中没有操作。

  10. 禁用所有 Oracle Linux Automation Manager 系统信息库。

    sudo dnf config-manager --disable ol8_automation ol8_automation2 ol8_automation2.2
    
  11. 将 Oracle Linux Automation Manager 软件包升级到发行版 2。

    sudo dnf -y install ol-automation-manager --enablerepo ol8_automation2
    
  12. 启用当前系统信息库。

    sudo dnf config-manager --enable ol8_automation2.2
    
  13. 更新 Oracle Linux Automation Manager 软件包。

    sudo dnf -y update ol-automation-manager
    

    注:在升级期间,输出中显示以下预期消息。

      Upgrading        : ol-automation-manager-2.1.0-10.el8.x86_64            26/28 
    warning: /etc/tower/settings.py created as /etc/tower/settings.py.rpmnew
    
      Running scriptlet: ol-automation-manager-2.1.0-10.el8.x86_64            26/28 
    ValueError: File context for /var/run/tower(/.*)? already defined
    
  14. 安装数据库服务器。

    sudo dnf -y install postgresql-server
    
  15. 初始化,然后启动和还原数据库。

    sudo postgresql-setup --initdb
    sudo systemctl start postgresql
    sudo su - postgres -c 'psql -d postgres -f /tmp/olamv1_db_dump'
    
  16. 确认数据库可用。

    sudo su - postgres -c 'psql -l | grep awx'
    

    输出示例:

    [oracle@control-node ~]$ sudo su - postgres -c 'psql -l | grep awx'
     awx       | awx      | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
    

    输出显示使用转储文件执行恢复后在数据库中创建的 awx 帐户。

  17. 替换默认的 Oracle Linux Automation Manager 全局设置文件。

    Oracle Linux Automation Manager 软件包升级后,新 rpm 将创建扩展名为 .rpmnew 的默认配置文件。此过程允许系统管理员检查配置差异并手动迁移必要的更改。

    sudo mv /etc/tower/settings.py /etc/tower/settings.py.save
    sudo mv /etc/tower/settings.py.rpmnew /etc/tower/settings.py
    
    
  18. 查看新全局设置文件与旧全局设置文件之间的差异。

    sudo diff /etc/tower/settings.py /etc/tower/settings.py.save
    

    注:以前添加到 settings.py 文件的任何定制设置都应在 WebUI 中设置,或者移至 /etc/tower/conf.d 下的文件。

  19. 创建包含所需设置的定制设置文件。

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

    此命令将 CLUSTER_HOST_ID 设置设置为系统的 IP 地址,将默认队列名称设置为预升级版本的默认名称 tower。输入到配置文件中的值需要遵循 Python 语法格式。

    注:升级 Oracle Linux Automation Manager 时,CLUSTER_HOST_ID 值需要与上一安装中的值匹配,以避免在升级后作业陷入暂挂状态。发行版 1 中的默认队列名称为 tower,而发行版 2 中的队列名称为 default

  20. 更新受体配置文件。

    受体网格是一个覆盖网络,在控制器和执行器之间创建对等连接,以处理工作的分配。

    sudo sed -i "s/0.0.0.0/$(hostname -i)/" /etc/receptor/receptor.conf
    
  21. 验证接收器配置文件。

    sudo cat /etc/receptor/receptor.conf
    
    • id: 是 Oracle Linux Automation Manager 系统的主机名或 IP 地址。
    • port: 是受体网格的 TCP 侦听端口,默认为 TCP 端口 27199。
  22. 部署 Oracle Linux Automation Manager。

    1. awx 用户身份打开 shell。

      sudo su -l awx -s /bin/bash
      
    2. 将任何现有容器迁移到最新的 podman 版本,同时保持无特权名称空间处于活动状态。

      podman system migrate
      
    3. 为 Oracle Linux Automation Manager 提取 Oracle Linux Automation Engine 执行环境。

      podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.2
      
    4. 使用 awx-manage 实用程序设置 Oracle Linux Automation Manager 实例。

      awx-manage makemigrations --merge
      awx-manage migrate
      awx-manage register_default_execution_environments
      exit
      
      
  23. 恢复密钥文件的备份。

    sudo cp ~/SECRET_KEY.olamv1 /etc/tower/SECRET_KEY
    
  24. 将以下参数附加到 Oracle Linux Automation Manager 设置文件。

    cat << EOF | sudo tee -a /etc/tower/conf.d/olamv2.py > /dev/null
    
    # OLAM Reaper Job Status Tracking
    REAPER_TIMEOUT_SEC = 60
    EOF
    
  25. 替换 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   
    
  26. 更新数据库优化参数。

    sudo sed -i 's/max_connections = [0-9]\+/max_connections = 1024/' /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/shared_buffers = [0-9]\+MB/shared_buffers = 5400MB/' /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/#\(work_mem = \)[0-9]\+MB/\1'540MB/ /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/#\(maintenance_work_mem = \)[0-9]\+MB/\1'720MB/ /var/lib/pgsql/data/postgresql.conf
    
  27. 重新启动数据库。

    sudo systemctl restart postgresql
    
  28. 重新启动 NGINX。

    sudo systemctl restart nginx
    
  29. 启动 Oracle Linux Automation Manager。

    sudo systemctl start ol-automation-manager
    

验证升级

  1. 刷新用于显示上一个 WebUI 的 Web 浏览器窗口,或者打开新的 Web 浏览器窗口并输入 URL。

    https://localhost:8444
    

    URL 中使用的端口需要与 SSH 隧道的本地端口匹配。

  2. 使用 Username adminPassword admin 再次登录 Oracle Linux Automation Manager。

    olam2- 登录

  3. 登录后,将显示 WebUI。

    olam2-webui

后续步骤

升级已完成,作业可以运行。要了解有关 Oracle Linux Automation Manager 的更多信息,请查看 Oracle Linux Training Station 上的其他 Oracle Linux Automation Manager 培训,查看文档并继续培养您的技能。

Oracle Linux Automation Manager 文档
Oracle Linux Automation Manager 培训
Oracle Linux 培训站

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心