注意:
- Oracle 提供的免费实验室环境中提供了此教程。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的示例值。完成实验室时,请将这些值替换为特定于云环境的值。
在 Oracle Linux Automation Manager Private Automation Hub 中管理执行环境
简介
Private Automation Hub 是一个 Oracle Linux Automation Manager 存储库,用于在客户的基础设施中本地管理集合、执行环境映像和其他精心策划的内容。
本教程介绍了如何安装 Private Automation Hub 并将定制执行环境上载到其容器注册表。有关创建定制执行环境的详细信息,请参阅构建器实用程序的教程。
目标
在本教程中,您将学习如何:
- 使用
ansible-vault
保护密码变量 - 使用变量安装 Private Automation Hub
- 将自定义执行环境上载到 Private Automation Hub 注册表
先决条件
- 运行 Oracle Linux 的两个系统
- 一个用于安装 Private Automation Hub
- 另一个用于运行 Builder 实用程序并充当 Private Automation Hub 的客户端
部署 Oracle Linux
注:如果在您自己的租户中运行,请在部署实验环境之前阅读 linux-virt-labs
GitHub 项目 README.md 并完成先决条件。
-
在 Luna Desktop 上打开一个终端。
-
克隆
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" passwordless_ssh: true use_olam_builder: true use_devops_vnc: true add_pah_ports: true olam_type: none 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 软件包
-
打开终端并通过 SSH 连接到 ol-pah 实例。
ssh oracle@<ip_address_of_instance>
-
安装 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
-
安装 Private Automation Hub 软件包。
sudo dnf install -y ol-private-automation-hub-installer
此命令安装 Private Automation Hub 安装手册和角色、
ansible-core
、python3.11
以及其他软件包依赖项。
安装 Private Automation Hub
安装 Private Automation Hub 时,必须设置 Private Automation Hub admin
超级用户帐户及其后端数据库的密码。让我们使用 ansible-vault
更安全地执行这一步骤,而不是在打开时将这些内容传递到手册。
Oracle Linux Automation Engine 附带的 ansible-vault
实用程序支持对结构化数据文件(包括文本文件、变量和 YAML 手册)进行加密和解密。
我们将加密一个包含我们两个密码的变量文件。
-
将 Private Automation Hub 手册复制到工作目录。
cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
-
转到工作目录。
cd ~/single_node
-
创建清单文件。
此手册的清单文件需要主机名和 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
作为组名。组允许在主机之间创建父子关系,并将它们分类为一个或多个类别以运行任务或分配变量。 -
创建包含口令变量的 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
关闭并保存该文件。 -
检验 Vault 的内容。
ansible-vault view vault_passwords.yml
在提示符下输入 Vault 口令,
ansible-vault
将在终端中显示 Vault 的内容。 -
运行 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) 攻击。
-
从现有 SSH 会话退出。
exit
-
打开新终端并通过 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 Web UI。
使用用户名
admin
和口令password
。此密码是我们为运行时变量文件中的olpah_admin_password
设置的值。 -
Web UI 在成功登录后显示。
使用 Web UI 添加执行环境
Private Automation Hub 管理的项目之一是执行环境。此功能使 Private Automation Hub 能够用作容器映像的存储库,使管理员能够使用 Podman 和 Web UI 与它们进行交互。
-
从导航菜单中的执行环境下的 Web UI 中单击远程注册。
-
单击添加远程注册表按钮。
-
在特定字段中输入以下值。
- 名称:
Quay Upstream Registry
- URL :
https://quay.io
- 名称:
-
单击保存按钮。
新创建的远程注册表将显示在远程注册表面板中。
-
单击导航菜单中执行环境下的执行环境。
-
单击添加执行环境按钮。
Web UI 将显示添加执行环境对话框。我们可以通过此对话框从上游或其他注册表提取容器映像。
-
在特定字段中输入或选择以下值。
- 名称:
upstream/awx-ee
- 上游名称:
ansible/awx-ee
- 注册表: Quay Upstream Registry
- 添加要包括的标记:键入
latest
,然后键入ENTER
- 名称:
-
单击保存按钮。
新创建的执行环境将显示在执行环境面板中。
-
从远程注册表同步 upstream/awx-ee 执行环境。
-
单击 upstream/awx-ee 项右侧的垂直三点菜单。
-
选择从注册表同步
此时将显示一个弹出对话框,指出同步已启动。
-
单击弹出对话框中的详细信息页链接可查看此任务的状态。
-
此任务显示已完成图标。
-
单击导航菜单中执行环境下的执行环境。
-
单击 Execution Environments(执行环境)面板中的 upstream/awx-ee 链接。
此链接显示从 Private Automation Hub 的详细信息选项卡下拉取此图像的说明。
-
单击图像标签。
此面板显示有关映像的更多详细信息,包括其 tag 、 size 和 sha256 digest 。
-
使用 Podman 推送执行环境
-
打开终端并通过 SSH 连接到 devops-node 实例。
ssh oracle@<ip_address_of_instance>
此实例包含构建器实用程序的安装和预构建的定制执行环境。有关执行这些任务的详细信息,请参阅使用 Oracle Linux Automation Manager Builder 实用程序构建定制执行环境。
-
转到项目的工作目录。
cd ~/my_custom_ee_project
此目录包含生成器实用程序的数据文件,Podman 使用这些文件创建定制执行环境映像。
-
列出现有的本地映像。
podman images
输出显示我们的定制映像和 Oracle Linux Automation Manager 的默认
olam-ee
和olam-builder
映像。 -
登录到 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 Hubadmin
用户的登录凭据匹配的密码。 -
标记本地定制映像。
在将映像推送到 Private Automation Hub 注册表之前,请使用本地映像创建所需的存储库结构和标记。
podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
-
验证新标记的图像是否存在。
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
-
将定制映像上载到 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
-
在 Web UI 中确认上载。
-
切换到包含 Private Automation Hub Web UI 的浏览器。
-
导航到执行环境。
-
请注意新增的 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 帮助中心。
Manage Execution Environments in Oracle Linux Automation Manager Private Automation Hub
G39670-01
Copyright ©2023, Oracle and/or its affiliates.