注意:
- 此教程位于 Oracle 提供的免费实验室环境中。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
通过 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 上的本教程。
目标
在本教程中,您将学习如何:
- 使用手册将自定义 ee 推送到 Private Automation Hub
- 将自定义 ee 添加到 Oracle Linux Automation Manager
- 使用自定义 ee 运行作业
先决条件
- 运行 Oracle Linux 的三个系统
- 使用构建器实用程序的开发环境
- 一款适用于 Private Automation Hub
- 另一个用于运行 Oracle Linux Automation Manager
部署 Oracle Linux Automation Manager
注:如果在您自己的租户中运行,请阅读 linux-virt-labs
GitHub 项目 README.md ,并在部署实验室环境之前完成先决条件。
-
在 Luna 桌面上打开一个终端。
-
克隆
linux-virt-labs
GitHub 项目。git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
转到工作目录。
cd linux-virt-labs/olam
-
安装所需的集合。
ansible-galaxy collection install -r requirements.yml
-
更新 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
-
创建清单文件。
cat << EOF | tee hosts > /dev/null localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6 EOF
-
部署实验室环境。
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 集合执行此任务。
-
打开终端并通过 SSH 连接到 devops-node 实例。
ssh oracle@<ip_address_of_instance>
-
安装 Oracle Linux Automation Engine。
sudo dnf install ansible-core -y
-
安装所需的集合。
ansible-galaxy collection install containers.podman
-
创建剧本以标记和推送自定义 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
-
运行剧本。
ansible-playbook push-image.yml
该手册在
localhost
上运行,因此不需要定义的清单文件。
打开 DevOps 实例的 VNC 会话
VNC 会话允许您使用免费实验室环境中的主机名或全限定域名 (FQDN) 连接到 Private Automation Hub Web UI。需要使用主机名或 FQDN,因为 Django 的内置保护可以保护 Web UI 免受跨站点请求伪造 (CSRF) 攻击。
-
打开新终端并通过 SSH 连接到 devops-node 实例。
-L
选项启用本地转发,这将打开本地端口以通过 SSH 隧道连接到远程 VNC 服务器。ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
-
切换到 Luna Desktop。
-
Open the TigerVNC Viewer by clicking the Applications menu, Internet, and then TigerVNC Viewer.
-
通过在 VNC Server 文本框中输入
localhost:5914
并按 Connect 按钮,登录到已部署服务器的 GUI 环境。 -
输入
oracle
用户的 oracle 密码,然后按 OK 按钮。 -
此时将显示服务器的 GUI 桌面,并进行首次登录设置。
-
按 Next 按钮三次,然后按 Skip 按钮,再按 Start Using Oracle Linux Server 按钮。最后,关闭或最小化入门窗口。
Private Automation Hub 中存在验证映像
-
在 VNC 会话中打开 Web 浏览器并输入 URL。
https://ol-pah
注:根据使用的浏览器批准安全警告。对于 Chrome,单击
Advanced
按钮,然后单击Proceed to localhost (unsafe)
链接。 -
登录到 Private Automation Hub WebUI。
使用用户名
admin
和密码password
。免费实验室环境在实验室部署期间设置此密码值。 -
成功登录后将显示 WebUI。
-
单击 Private Automation Hub WebUI 左上角的导航菜单。
-
导航到 Execution Environments 和 Execution Environments 。
-
请注意,新的 my_first_olam_ee_image 将显示在主面板中。
创建手册
Oracle Linux Automation Manager 管理员可以在文件系统本地创建剧本,使用手动源控制的项目可以利用这些剧本。我们将使用 devops-node 编写手册,使用 Oracle Linux Automation Engine 将项目手册推送到 Oracle Linux Automation Manager。此配置仅适用于单主机安装 Oracle Linux Automation Manager,因为该实例上仅存在手册。
-
切换到终端或打开终端,并通过 SSH 连接到 devops-node 实例。
-
创建项目目录并将工作目录更改为项目目录。
mkdir ~/project1 cd ~/project1
-
创建模板。
此模板是我们将写入 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
-
创建手册以将此项目推送到 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
-
创建清单文件。
tee hosts > /dev/null <<EOF [olam] olam-node EOF
-
将手册复制到 Oracle Linux Automation Manager 服务器。
ansible-playbook -i hosts push-project.yml
向 Oracle Linux Automation Manager 添加定制执行环境
登录到 WebUI
-
从 Luna Desktop 打开新终端。
-
配置到 Oracle Linux Automation Manager 的 SSH 隧道。
ssh -L 8444:localhost:443 oracle@<ip_address_of_ol-node>
在免费实验环境中,使用 olam-node 实例的 IP 地址。
-
打开 Web 浏览器并输入 URL。
https://localhost:8444
注:根据使用的浏览器批准安全警告。对于 Chrome,单击 Advanced(高级)按钮,然后单击 Proceed to localhost (unsafe) 链接。
-
登录到 Oracle Linux Automation Manager WebUI。
使用用户名
admin
和密码admin
。免费实验室环境在实验室部署期间设置此密码值。 -
成功登录后将显示 WebUI。
添加容器注册表身份证明
-
单击导航菜单中资源下的身份证明。
-
单击主面板中的 Add(添加)按钮。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。
- 名称:
My Private Automation Hub
- 组织:
Default
- 身份证明类型:容器注册表
- 验证 URL :Private Automation Hub 的 FQDN
- 用户名:
admin
- 密码或令牌:
password
- 选项:取消选中验证 SSL
如果您不知道 Private Automation Hub 的 FQDN,请使用终端连接到 ol-pah 实例,然后运行
hostname -f
。Oracle Linux Automation Manager 使用容器注册表身份证明访问 Private Automation Hub 中的容器映像。空闲练习环境需要取消选中 Verify SSL 设置,因为该设置使用自签名证书。
- 名称:
-
查看条目并单击保存按钮。
添加执行环境
-
单击导航菜单中管理下的执行环境。
-
单击主面板中的 Add(添加)按钮。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。
- 名称:
My Custom EE
- 图像:
<fqdn_of_the_private_automation_hub>/my_first_olam_ee_image:latest
- 注册表身份证明:我的 Private Automation Hub
- 名称:
-
查看条目并单击保存按钮。
测试执行环境
测试定制执行环境时,需要作业模板,其中包括清单、主机、计算机身份证明和项目。
添加库存
-
单击导航菜单中资源下的库存。
-
单击主面板中的添加按钮,然后从值列表中选择添加库存。
-
在特定字段中输入以下值。
- 名称:
Oracle Linux Hosts
- 名称:
-
查看该条目并单击保存按钮。
添加主机
-
单击 Oracle Linux Hosts Inventory Details 面板中的 Hosts 选项卡。
-
单击添加按钮。
-
在 Name(名称)字段中输入主机名 devops-node
-
查看该条目并单击保存按钮。
添加计算机身份证明
-
单击导航菜单中资源下的身份证明。
-
单击主面板中的 Add(添加)按钮。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。
- 名称:
Oracle Linux SSH Access
- 组织:
Default
- 身份证明类型:计算机
- 用户名:
oracle
- SSH 私钥:从 ~/.SSH 目录中选择 id_rsa 密钥
抓取 SSH 私钥的一种方法是选择该字段的浏览选项。在文件上载对话框中,选择主页,然后右键单击该对话框的主窗口。选择显示隐藏文件。选择 .ssh 文件夹和 id_rsa 文件。单击 Open 按钮将导致私钥文件的内容复制到 SSH Private Key 对话框中。
- 名称:
-
查看各项,滚动到页面底部,然后单击 Save(保存)按钮。
创建新项目
-
单击导航菜单中资源下的项目。
-
单击主面板中的 Add(添加)按钮。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。
- 名称:
Container Management
- 执行环境:我的定制 EE
- 源控制身份证明类型:手动
- Playbook 目录: podman
- 名称:
-
查看条目并单击保存按钮。
添加作业模板
-
单击导航菜单中资源下的模板。
-
单击主面板中的 Add(添加)按钮,然后从值列表中选择 Add job template(添加作业模板)。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后选择它。
- 名称:
List Images
- 作业类型:运行
- 库存:Oracle Linux 主机
- 项目:容器管理
- 执行环境:我的定制 EE
- 手册: list-images.yml
- 身份证明:Oracle Linux SSH 访问
- 名称:
-
查看各项,滚动到页面底部,然后单击 Save(保存)按钮。
运行模板
-
单击导航菜单中资源下的模板。
-
单击列表图像作业模板旁边的操作列中的启动模板图标。
作业将启动,面板将切换到作业输出摘要。几分钟后,作业失败。
发生此故障的原因是新定制 ee 不包含 containers.podman 集合,因此剧本无法运行。
修复定制执行环境
要修复定制 ee,必须使用 Builder 实用程序重建容器映像,然后将新映像推送到 Private Automation Hub,以便由 Oracle Linux Automation Manager 获取。
-
切换到终端或打开终端,并通过 SSH 连接到 devops-node 实例。
-
转到定制 ee 项目目录。
cd ~/my_custom_ee_project
-
将缺少的集合添加到 Ansible Galaxy 要求文件中。
tee -a requirements.yml > /dev/null <<EOF - name: containers.podman EOF
-
重新构建映像。
ansible-builder build --tag my_custom_ee -v 3
-
将新映像推送到 Private Automation Hub。
cd ~ ansible-playbook push-image.yml
-
验证成功推送映像。
连接到 Private Automation Hub WebUI 并查看执行环境更改,特别是 my_first_olam_ee_image 的上次修改时间列。
测试新的定制执行环境
-
在浏览器中切换到 Oracle Linux Automation Manager WebUI。
刷新浏览器窗口并在必要时重新登录。
-
单击导航菜单中管理下的执行环境。
-
单击我的定制 EE 图像链接旁边的操作列下的编辑执行环境图标。
-
将 Pull 值更改为 Always pull container before running 。
此字段为
podman
启用--pull
选项。设置更改将强制 Oracle Linux Automation Manager 在其层校验和不匹配时提取最新映像。 -
查看更改并单击保存按钮。
-
单击导航菜单中 Views(视图)下的 Jobs(作业)。
-
单击 … List Images(列出图像)链接旁边的 Actions(操作)列下的 Relaunch(重新启动)图标。
从值下拉列表中选择全部。
作业将启动,面板将切换到作业输出摘要。几分钟后,它成功完成。
后续步骤
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 帮助中心。
Use Custom Execution Environments with Oracle Linux Automation Manager
G32013-03
Copyright ©2023, Oracle and/or its affiliates.