注意:

在 Oracle Linux Automation Manager Private Automation Hub 中管理执行环境

简介

Private Automation Hub 是一个 Oracle Linux Automation Manager 存储库,用于在客户的基础设施中本地管理集合、执行环境映像和其他精心策划的内容。

本教程介绍了如何安装 Private Automation Hub 并将定制执行环境上载到其容器注册表。有关创建定制执行环境的详细信息,请参阅构建器实用程序的教程

目标

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

先决条件

部署 Oracle Linux

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

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

  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: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
    passwordless_ssh: true
    use_olam_builder: true
    use_devops_vnc: true
    add_pah_ports: true
    olam_type: none
    EOF
    
  6. 创建清单文件。

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. 部署实验室环境。

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

    对于 localhost,免费实验室环境需要额外的变量 ansible_python_interpreter,因为它为 Oracle Cloud Infrastructure SDK for Python 安装 RPM 软件包。根据您的 Oracle Linux 版本,此软件包的安装位置位于系统的默认 Python 模块下面。使用清单变量可避免影响在本地主机以外的主机上运行的播放。

    默认部署配置使用 AMD CPU。您可以通过在命令行上传递新的配置变量定义来更改实例的配置。

    例如:-e instance_shape="VM.Standard3.Flex"

    同样,Oracle Linux 映像的缺省版本使用在 `default_vars.yml file' 中定义的变量 os_version。可以通过在命令行上传递 Oracle Linux 主版本来修改此值。

    例如:-e os_version="9"

    重要提示:等待手册成功运行并到达暂停任务。在手册的这一阶段,Oracle Linux 安装已完成,实例已准备就绪。请注意上一个播放,其中输出其部署的节点的公共和专用 IP 地址。

安装 Private Automation Hub 软件包

  1. 打开终端并通过 SSH 连接到 ol-pah 实例。

    ssh oracle@<ip_address_of_instance>
    
  2. 安装 Oracle Linux Automation Manager 资料档案库。

    Oracle Linux 8:

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

    Oracle Linux 9:

    sudo dnf install -y oraclelinux-automation-manager-release-el9
    
  3. 安装 Private Automation Hub 软件包。

    sudo dnf install -y ol-private-automation-hub-installer
    

    此命令安装 Private Automation Hub 安装手册和角色、ansible-corepython3.11 以及其他软件包依赖项。

安装 Private Automation Hub

安装 Private Automation Hub 时,必须设置 Private Automation Hub admin 超级用户帐户及其后端数据库的密码。让我们使用 ansible-vault 更安全地执行这一步骤,而不是在打开时将这些内容传递到手册。

Oracle Linux Automation Engine 附带的 ansible-vault 实用程序支持对结构化数据文件(包括文本文件、变量和 YAML 手册)进行加密和解密。

我们将加密一个包含我们两个密码的变量文件。

  1. 将 Private Automation Hub 手册复制到工作目录。

    cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
    
  2. 转到工作目录。

    cd ~/single_node
    
  3. 创建清单文件。

    此手册的清单文件需要主机名和 SSH 用户名,该手册将在其中安装 Private Automation Hub。您可以以 INI 或 YAML 格式定义清单文件。安装手册中的示例清单 hosts.singlenode.example 使用 YAML,因此我们将在此处使用 INI 格式来演示替代选项。

    tee hosts > /dev/null <<EOF
    [hub]
    ol-pah ansible_host=ol-pah ansible_user=oracle
    EOF
    

    与使用 hub 作为 ansible_host 的别名的样例不同,此 INI 清单文件使用 hub 作为组名。组允许在主机之间创建父子关系,并将它们分类为一个或多个类别以运行任务或分配变量。

  4. 创建包含口令变量的 Vault。

    ansible-vault create vault_passwords.yml
    

    运行该命令时,它会提示您创建 Vault 口令。ansible-vault 实用程序使用此密码解密 Vault 的内容,并从剧本中访问这些内容。密码可以是字符的任意组合,但请记住,因为您无法恢复密码。

    输入并确认密码后,该实用程序将在默认编辑器中打开 vault_passwords.yml 文件。对于免费实验室环境,编辑器为 vi。键入 i 以进入 INSERT 模式并粘贴这些示例 Private Automation Hub 密码变量。

    注:这些是手册在安装 Private Automation Hub 以及设置超级用户和数据库密码时使用的变量。

    ---
    olpah_admin_password: password
    olpah_db_password: password
    

    键入 ESC:wq!ENTER 关闭并保存该文件。

  5. 检验 Vault 的内容。

    ansible-vault view vault_passwords.yml
    

    在提示符下输入 Vault 口令,ansible-vault 将在终端中显示 Vault 的内容。

  6. 运行 Private Automation Hub 手册。

    ansible-playbook single-node-install.yml -i hosts -e "@vault_passwords.yml" --ask-vault-pass
    
    • -i 定义清单文件
    • -e 将任何运行时变量定义为 key=value 对或变量文件
    • --ask-vault-pass 提示输入 Vault 密码

    提供了 Vault 口令的替代方法,您可以在上游文档中查看这些方法。

    注意:Private Automation Hub 的安装需要 10-20 分钟。在安装过程中,手册的进度将滚动到终端中,直到所有任务都完成。

打开 DevOps 实例的 VNC 会话

VNC 会话允许您使用免费实验室环境中的主机名或全限定域名 (FQDN) 连接到 Private Automation Hub Web UI。需要使用主机名或 FQDN,因为 Django 的内置保护可以保护 Web UI 免受跨站点请求伪造 (CSRF) 攻击。

  1. 从现有 SSH 会话退出。

    exit
    
  2. 打开新终端并通过 SSH 连接到 devops-node 实例。

    -L 选项启用本地转发,这将打开本地端口以通过 SSH 隧道连接到远程 VNC 服务器。

    ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
    
  3. 切换到 Luna Desktop。

  4. Open the TigerVNC Viewer by clicking the Applications menu, Internet, and then TigerVNC Viewer.

    vnc- 菜单

  5. 通过在 VNC Server 文本框中输入 localhost:5914 并按 Connect 按钮,登录到已部署服务器的 GUI 环境。

    vnc 登录

  6. 输入 oracle 用户的 oracle 密码,然后按 OK 按钮。

    vnc-wd

  7. 此时将显示服务器的 GUI 桌面,并进行首次登录设置。

    吉欢迎

  8. Next 按钮三次,然后按 Skip 按钮,再按 Start Using Oracle Linux Server 按钮。最后,关闭或最小化入门窗口。

    开始使用 -ol

连接到 Private Automation Hub

  1. 在 VNC 会话中打开 Web 浏览器并输入 URL。

    https://ol-pah
    

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

  2. 登录到 Private Automation Hub Web UI。

    使用用户名 admin 和口令 password。此密码是我们为运行时变量文件中的 olpah_admin_password 设置的值。

    登录

  3. Web UI 在成功登录后显示。

    柏威夷

使用 Web UI 添加执行环境

Private Automation Hub 管理的项目之一是执行环境。此功能使 Private Automation Hub 能够用作容器映像的存储库,使管理员能够使用 Podman 和 Web UI 与它们进行交互。

  1. 从导航菜单中的执行环境下的 Web UI 中单击远程注册

  2. 单击添加远程注册表按钮。

  3. 在特定字段中输入以下值。

    • 名称Quay Upstream Registry
    • URL :https://quay.io
  4. 单击保存按钮。

    新创建的远程注册表将显示在远程注册表面板中。

  5. 单击导航菜单中执行环境下的执行环境

  6. 单击添加执行环境按钮。

    Web UI 将显示添加执行环境对话框。我们可以通过此对话框从上游或其他注册表提取容器映像。

  7. 在特定字段中输入或选择以下值。

    • 名称upstream/awx-ee
    • 上游名称ansible/awx-ee
    • 注册表Quay Upstream Registry
    • 添加要包括的标记:键入 latest,然后键入 ENTER
  8. 单击保存按钮。

    新创建的执行环境将显示在执行环境面板中。

  9. 从远程注册表同步 upstream/awx-ee 执行环境。

    1. 单击 upstream/awx-ee 项右侧的垂直三点菜单。

    2. 选择从注册表同步

      此时将显示一个弹出对话框,指出同步已启动。

    3. 单击弹出对话框中的详细信息页链接可查看此任务的状态。

    4. 此任务显示已完成图标。

    5. 单击导航菜单中执行环境下的执行环境

    6. 单击 Execution Environments(执行环境)面板中的 upstream/awx-ee 链接。

      此链接显示从 Private Automation Hub 的详细信息选项卡下拉取此图像的说明。

    7. 单击图像标签。

      此面板显示有关映像的更多详细信息,包括其 tagsizesha256 digest

使用 Podman 推送执行环境

  1. 打开终端并通过 SSH 连接到 devops-node 实例。

    ssh oracle@<ip_address_of_instance>
    

    此实例包含构建器实用程序的安装和预构建的定制执行环境。有关执行这些任务的详细信息,请参阅使用 Oracle Linux Automation Manager Builder 实用程序构建定制执行环境

  2. 转到项目的工作目录。

    cd ~/my_custom_ee_project
    

    此目录包含生成器实用程序的数据文件,Podman 使用这些文件创建定制执行环境映像。

  3. 列出现有的本地映像。

    podman images
    

    输出显示我们的定制映像和 Oracle Linux Automation Manager 的默认 olam-eeolam-builder 映像。

  4. 登录到 Private Automation Hub。

    podman login -u admin https://ol-pah.$(hostname -d) --tls-verify=0
    
    • -u 是有权访问容器注册表的用户
    • ol-pah.$(hostname -d) 是容器注册表 FQDN
    • --tls-verify=0 关闭 TLS 证书验证,因为免费实验室环境使用自签名证书

    该命令会提示输入 Password:。输入与 Private Automation Hub admin 用户的登录凭据匹配的密码。

  5. 标记本地定制映像。

    在将映像推送到 Private Automation Hub 注册表之前,请使用本地映像创建所需的存储库结构和标记。

    podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
    
  6. 验证新标记的图像是否存在。

    podman images
    

    输出示例:

    [oracle@devops-node my_custom_ee_project]$ podman images
    REPOSITORY                                                                  TAG         IMAGE ID      CREATED      SIZE
    localhost/my_custom_ee                                                      latest      fbc43634b168  5 hours ago  2.29 GB
    ol-pah.lv.vcn5ef1c2b6.oraclevcn.com/my_first_olam_ee_image                  latest      fbc43634b168  5 hours ago  2.29 GB
    <none>                                                                      <none>      92aa94db3699  5 hours ago  1.4 GB
    <none>                                                                      <none>      cc087fbfa018  5 hours ago  1.45 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-ee       latest      368657c8376d  5 weeks ago  1.25 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-builder  latest      5e98580f7956  5 weeks ago  546 MB
    
  7. 将定制映像上载到 Private Automation Hub。

    注:<IMAGE ID> 替换为 podman images 输出中 my_first_olam_ee_image 的实际图像 ID。

    podman push --tls-verify=0 <IMAGE ID> ol-pah.$(hostname -d)/my_first_olam_ee_image:latest
    
  8. 在 Web UI 中确认上载。

    1. 切换到包含 Private Automation Hub Web UI 的浏览器。

    2. 导航到执行环境

    3. 请注意新增的 my_first_olam_ee_image

      老鸨

后续步骤

Web UI 中的输出确认您具有有效的 Private Automation Hub,并且能够上载和存储定制映像。查看我们使用 Oracle Linux Automation Manager 练习技能的其他教程。

更多学习资源

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

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