注意:

通过 Oracle Linux Automation Manager 使用自定义执行环境

简介

使用定制执行环境 (ee),Oracle Linux Automation Manager 可以利用包含集合的手册以及默认 olam-ee 映像中不可用的其他资源。使用 Builder 实用程序构建它,将其存储在 Private Automation Hub 上,然后将其拉入 Oracle Linux Automation Manager 中。

这一切是如何协同工作的?

本教程介绍如何将预构建的映像上载到 Private Automation Hub,然后将其提取到 Oracle Linux Automation Manager 中以运行剧本。有关创建定制执行环境的详细信息,请参阅构建器实用程序上的教程,以及 Private Automation Hub 上的本教程

目标

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

先决条件

部署 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: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
      3:
        instance_name: "olam-node"
        type: "control"
    passwordless_ssh: true
    use_devops_vnc: true
    use_olam_builder: true
    use_olam_pah: true
    olam_type: single
    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

将自定义 ee 推送到 Private Automation Hub 的一种方法是使用命令行中的 podman,如 Private Automation Hub 教程中所示。也可以使用剧本和 containers.podman 集合执行此任务。

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

    ssh oracle@<ip_address_of_instance>
    
  2. 安装 Oracle Linux Automation Engine。

    sudo dnf install ansible-core -y
    
  3. 安装所需的集合。

    ansible-galaxy collection install containers.podman
    
  4. 创建剧本以标记和推送自定义 ee 图像。

       
    tee push-image.yml > /dev/null <<EOF
    ---
    - hosts: localhost
      collections:
        - containers.podman
    
      tasks:
    
      - name: get domain_name
        command: hostname -d
        register: domain_name
    
      - name: output domain_name var
        debug:
          msg: "{{domain_name.stdout}}"
    
      - name: push image to pah
        containers.podman.podman_image:
          name: my_custom_ee
          push: true
          push_args:
            dest: ol-pah.{{domain_name.stdout}}/my_first_olam_ee_image:latest
          username: admin
          password: password
          validate_certs: false
       
    EOF
    
  5. 运行剧本。

    ansible-playbook push-image.yml
    

    该手册在 localhost 上运行,因此不需要定义的清单文件。

打开 DevOps 实例的 VNC 会话

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

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

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

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

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

    vnc- 菜单

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

    vnc 登录

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

    vnc-wd

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

    吉欢迎

  7. 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 WebUI。

    使用用户名 admin 和密码 password。免费实验室环境在实验室部署期间设置此密码值。

    登录

  3. 成功登录后将显示 WebUI。

    柏威夷

  4. 单击 Private Automation Hub WebUI 左上角的导航菜单。

  5. 导航到 Execution EnvironmentsExecution Environments

  6. 请注意,新的 my_first_olam_ee_image 将显示在主面板中。

    人民币 -2

创建手册

Oracle Linux Automation Manager 管理员可以在文件系统本地创建剧本,使用手动源控制的项目可以利用这些剧本。我们将使用 devops-node 编写手册,使用 Oracle Linux Automation Engine 将项目手册推送到 Oracle Linux Automation Manager。此配置仅适用于单主机安装 Oracle Linux Automation Manager,因为该实例上仅存在手册。

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

  2. 创建项目目录并将工作目录更改为项目目录。

    mkdir ~/project1
    cd ~/project1
    
  3. 创建模板。

    此模板是我们将写入 Oracle Linux Automation Manager 服务器上的文件系统的手册文件,用于检索主机上的容器映像列表。

    mkdir templates
    tee templates/list-images.yml.j2 > /dev/null <<EOF
    ---
    - hosts: all
      collections:
        - containers.podman
      become: yes
    
      tasks:
    
      - name: gather info on images
        containers.podman.podman_image_info:
        register: podman_list
        become_user: oracle
    
      - name: list images
        debug:
          msg: "{{ podman_list.images | selectattr('RepoTags') '}}"
    EOF
    
  4. 创建手册以将此项目推送到 Oracle Linux Automation Manager。

       
    tee push-project.yml > /dev/null <<EOF
    ---
    - hosts: olam-node
      become: yes
    
      tasks:
    
      - name: create project directory
        ansible.builtin.file:
          path: /var/lib/awx/projects/podman
          state: directory
        become_user: awx
    
      - name: create playbook
        ansible.builtin.template:
          src: templates/list-images.yml.j2
          dest: /var/lib/awx/projects/podman/list-images.yml
        become_user: awx      
       
    EOF
    
  5. 创建清单文件。

    tee hosts > /dev/null <<EOF
    [olam]
    olam-node
    EOF
    
  6. 将手册复制到 Oracle Linux Automation Manager 服务器。

    ansible-playbook -i hosts push-project.yml
    

向 Oracle Linux Automation Manager 添加定制执行环境

登录到 WebUI

  1. 从 Luna Desktop 打开新终端。

  2. 配置到 Oracle Linux Automation Manager 的 SSH 隧道。

    ssh -L 8444:localhost:443 oracle@<ip_address_of_ol-node>
    

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

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

    https://localhost:8444
    

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

  4. 登录到 Oracle Linux Automation Manager WebUI。

    使用用户名 admin 和密码 admin。免费实验室环境在实验室部署期间设置此密码值。

    olam2- 登录

  5. 成功登录后将显示 WebUI。

    olam2- 韦布

添加容器注册表身份证明

  1. 单击导航菜单中资源下的身份证明

  2. 单击主面板中的 Add(添加)按钮。

  3. 在特定字段中输入或选择下列值。

    对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。

    • 名称My Private Automation Hub
    • 组织Default
    • 身份证明类型容器注册表
    • 验证 URLPrivate Automation Hub 的 FQDN
    • 用户名admin
    • 密码或令牌password
    • 选项:取消选中验证 SSL

    如果您不知道 Private Automation Hub 的 FQDN,请使用终端连接到 ol-pah 实例,然后运行 hostname -f

    Oracle Linux Automation Manager 使用容器注册表身份证明访问 Private Automation Hub 中的容器映像。空闲练习环境需要取消选中 Verify SSL 设置,因为该设置使用自签名证书。

  4. 查看条目并单击保存按钮。

    olam2 - 信用登记

添加执行环境

  1. 单击导航菜单中管理下的执行环境

  2. 单击主面板中的 Add(添加)按钮。

  3. 在特定字段中输入或选择下列值。

    对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。

    • 名称My Custom EE
    • 图像<fqdn_of_the_private_automation_hub>/my_first_olam_ee_image:latest
    • 注册表身份证明我的 Private Automation Hub
  4. 查看条目并单击保存按钮。

    olam2- 客户

测试执行环境

测试定制执行环境时,需要作业模板,其中包括清单、主机、计算机身份证明和项目。

添加库存

  1. 单击导航菜单中资源下的库存

  2. 单击主面板中的添加按钮,然后从值列表中选择添加库存

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

    • 名称Oracle Linux Hosts
  4. 查看该条目并单击保存按钮。

    olam2-inv- 详细信息

添加主机

  1. 单击 Oracle Linux Hosts Inventory Details 面板中的 Hosts 选项卡。

  2. 单击添加按钮。

  3. Name(名称)字段中输入主机名 devops-node

  4. 查看该条目并单击保存按钮。

添加计算机身份证明

  1. 单击导航菜单中资源下的身份证明

  2. 单击主面板中的 Add(添加)按钮。

  3. 在特定字段中输入或选择下列值。

    对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。

    • 名称Oracle Linux SSH Access
    • 组织Default
    • 身份证明类型计算机
    • 用户名oracle
    • SSH 私钥:从 ~/.SSH 目录中选择 id_rsa 密钥

    抓取 SSH 私钥的一种方法是选择该字段的浏览选项。在文件上载对话框中,选择主页,然后右键单击该对话框的主窗口。选择显示隐藏文件。选择 .ssh 文件夹和 id_rsa 文件。单击 Open 按钮将导致私钥文件的内容复制到 SSH Private Key 对话框中。

  4. 查看各项,滚动到页面底部,然后单击 Save(保存)按钮。

    olam2- 红外机器

创建新项目

  1. 单击导航菜单中资源下的项目

  2. 单击主面板中的 Add(添加)按钮。

  3. 在特定字段中输入或选择下列值。

    对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。

    • 名称Container Management
    • 执行环境我的定制 EE
    • 源控制身份证明类型手动
    • Playbook 目录podman
  4. 查看条目并单击保存按钮。

    olam2-proj- 详细信息

添加作业模板

  1. 单击导航菜单中资源下的模板

  2. 单击主面板中的 Add(添加)按钮,然后从值列表中选择 Add job template(添加作业模板)

  3. 在特定字段中输入或选择下列值。

    对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。

    • 名称List Images
    • 作业类型运行
    • 库存Oracle Linux 主机
    • 项目容器管理
    • 执行环境我的定制 EE
    • 手册list-images.yml
    • 身份证明Oracle Linux SSH 访问
  4. 查看各项,滚动到页面底部,然后单击 Save(保存)按钮。

    olam2-temp 详细信息

运行模板

  1. 单击导航菜单中资源下的模板

  2. 单击列表图像作业模板旁边的操作列中的启动模板图标。

作业将启动,面板将切换到作业输出摘要。几分钟后,作业失败。

olam2- 作业失败

发生此故障的原因是新定制 ee 不包含 containers.podman 集合,因此剧本无法运行。

修复定制执行环境

要修复定制 ee,必须使用 Builder 实用程序重建容器映像,然后将新映像推送到 Private Automation Hub,以便由 Oracle Linux Automation Manager 获取。

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

  2. 转到定制 ee 项目目录。

    cd ~/my_custom_ee_project
    
  3. 将缺少的集合添加到 Ansible Galaxy 要求文件中。

    tee -a requirements.yml > /dev/null <<EOF
    - name: containers.podman
    EOF
    
  4. 重新构建映像。

    ansible-builder build --tag my_custom_ee -v 3
    
  5. 将新映像推送到 Private Automation Hub。

    cd ~
    ansible-playbook push-image.yml
    
  6. 验证成功推送映像。

    连接到 Private Automation Hub WebUI 并查看执行环境更改,特别是 my_first_olam_ee_image上次修改时间列。

    pah-ee-modify

测试新的定制执行环境

  1. 在浏览器中切换到 Oracle Linux Automation Manager WebUI。

    刷新浏览器窗口并在必要时重新登录。

  2. 单击导航菜单中管理下的执行环境

  3. 单击我的定制 EE 图像链接旁边的操作列下的编辑执行环境图标。

  4. Pull 值更改为 Always pull container before running

    此字段为 podman 启用 --pull 选项。设置更改将强制 Oracle Linux Automation Manager 在其层校验和不匹配时提取最新映像。

  5. 查看更改并单击保存按钮。

  6. 单击导航菜单中 Views(视图)下的 Jobs(作业)

  7. 单击 … List Images(列出图像)链接旁边的 Actions(操作)列下的 Relaunch(重新启动)图标。

    从值下拉列表中选择全部

    作业将启动,面板将切换到作业输出摘要。几分钟后,它成功完成。

    olam2- 工作成功

后续步骤

WebUI 中的输出确认您在 Oracle Linux Automation Manager 中有一个可行的定制执行环境。培养您的技能并查看我们在 Oracle Linux 培训站上提供的其他 Oracle Linux Automation Manager 培训。

更多学习资源

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

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