注意:
- 此教程位于 Oracle 提供的免费实验室环境中。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
将 OCI Ansible Collection 与 Oracle Linux Automation Manager 结合使用
简介
Oracle Cloud Infrastructure (OCI) Ansible Collection 提供了一种使用 Oracle Linux Automation Engine 或 Oracle Linux Automation Manager 在 Oracle Cloud 中预配和管理资源的简单方法。
目标
在本教程中,您将学习如何:
- 创建使用 OCI Ansible Collection 的手册
- 配置 Ansible Galaxy 的身份证明
- 添加 Oracle Cloud Infrastructure 身份证明
- 创建作业模板
- 运行作业
先决条件
- 安装了 Oracle Linux Automation Manager 的系统
- 访问 git 资料档案库
- Oracle Cloud Infrastructure (OCI) 账户
- OCI 账户中的用户,有权使用区间中的资源
- 访问该账户的身份证明和 OCID 信息
部署 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: "olam-node" type: "control" 2: instance_name: "git-server" type: "server" use_git: 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 地址。
创建手册
-
打开一个新的终端窗口。
-
将变量设置为远程 git-server 实例。
export REMOTE=<ip_address_of_instance>
-
创建项目目录。
mkdir ~/myproject
-
创建需求文件。
Oracle Linux Automation Engine 使用需求文件在运行时将任何必需的集合或角色提取到项目中。
cat << EOF > ~/myproject/requirements.yml --- collections: - name: oracle.oci - name: community.general EOF
注:对于 Oracle Linux Automation Engine < 2.13.9 的版本,您可以配置要求文件以直接从集合 GitHub 系统信息库中提取集合。
cat << EOF > ~/myproject/requirements.yml --- collections: - name: https://github.com/oracle/oci-ansible-collection.git type: git version: master - name: https://github.com/ansible-collections/community.general.git type: git version: main EOF
-
创建剧本。
此手册查询 Oracle Cloud Infrastructure 租户的对象存储名称空间。稍后,我们将在 Oracle Linux Automation Manager Web UI 中配置租户详细信息。
cat << EOF > ~/myproject/get_namespace.yml --- - name: Get namespace name hosts: localhost tasks: - name: get namespace oracle.oci.oci_object_storage_namespace_facts: register: output - name: print namespace ansible.builtin.debug: msg: "" EOF
向来源控制添加项目
-
将项目的工作目录初始化到 Git 资源库中。
在初始化系统信息库之前,需要执行一些 Git 首次配置步骤。
-
设置初始化项目时使用的默认分支名称。
git config --global init.defaultBranch main
-
设置您的身份。
电子邮件和名称是本教程中的示例。在处理项目时使用您的电子邮件地址和名称,因为 git 在每次提交中都不可变地包含此信息。
git config --global user.email johndoe@example.com git config --global user.name "John Doe"
-
转到项目的工作目录。
cd ~/myproject
-
将目录初始化为本地 Git 系统信息库。
git init
该命令返回它初始化了空的 Git 系统信息库。
-
-
检查工作目录和项目暂存区域的状态。
git status
本地系统信息库的状态指示两个未跟踪的文件:get_namespace.yml 和 requirements.yml
-
在中转区中添加和跟踪新文件。
git add --all
--all
选项将所有未跟踪和已更改的文件添加到回写区域。 -
提交当前暂存区域中的更改。
git commit -m 'initial commit'
-m
选项允许向提交的更改添加注释。 -
创建并初始化远程 Git 系统信息库。
远程系统信息库是由所有项目贡献者使用的共享系统信息库,并存储在代码托管服务(例如 GitHub 或自托管服务器)上。
ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
-b
选项可确保使用名为 main 的分支初始化远程系统信息库。 -
通过键入
yes
接受 ECDSA 密钥指纹。 -
添加新的远程系统信息库连接记录。
通过将远程连接添加到本地系统信息库,您可以将其用作 Git 命令中的命名快捷方式。
git remote add origin git@$REMOTE:/git-server/repos/myproject.git
冒号后面的路径是远程 Git 服务器上系统信息库的目录位置。
-
验证新添加的连接记录。
git remote -v
输出显示指向
git fetch
和git push
命令的远程 Git 系统信息库位置的连接记录 origin 。 -
将本地系统信息库更改推送到远程系统信息库。
git push origin main
现在可以在 Oracle Linux Automation Manager 项目中使用 myproject 源。
创建 Ansible Galaxy 身份证明
这些凭据允许 Oracle Linux Automation Manager 从公共 Ansible Galaxy Hub 中提取 OCI Ansible Collection。
-
打开新终端窗口并配置指向 olam-node 实例的 SSH 隧道。
ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
-
打开 Web 浏览器并输入 URL。
https://localhost:8444
注:根据使用的浏览器批准安全警告。对于 Chrome 浏览器,单击 Advanced(高级)按钮,然后单击 Proceed to localhost (unsafe) 链接。
-
登录到 Oracle Linux Automation Manager Web UI。使用在自动部署期间创建的用户名
admin
和密码admin
。 -
Web UI 在成功登录后显示。
-
单击导航菜单中资源部分下的身份证明。
-
单击添加按钮。
-
在特定字段中输入或选择下列值。
对于具有搜索或值列表的字段,我们可以开始键入请求的值,然后从列表中选择该值。
- 名称:
My Ansible Galaxy
- 组织:
Default
- 身份证明类型:Ansible Galaxy/Automation Hub API 标记
Oracle Linux Automation Manager 利用 Ansible Galaxy 凭证,使用
ansible-galaxy
命令下载角色和集合。- Galaxy Server URL :
https://galaxy.ansible.com
- 名称:
-
查看条目并单击保存按钮。
-
单击导航菜单中访问部分下的组织。
通过在组织内分配 Ansible Galaxy 凭证,可以从 git 项目内下载 Oracle Linux Infrastructure Ansible Collection。
-
单击默认组织,然后单击编辑按钮。
-
在 Galaxy 身份证明字段中选择 My Ansible Galaxy 身份证明,然后单击选择按钮。
-
复查并单击保存按钮。
创建 OCI 身份证明
OCI 身份证明提供有关特定 OCI 租户的 Oracle Linux Automation Manager 信息。
-
单击导航菜单中的身份证明。
-
单击添加按钮。
-
在特定字段中输入或选择下列值。
- 名称:
My OCI Credentials
- 组织:
Default
- 身份证明类型:Oracle Cloud Infrastructure
该页将刷新并请求您的 OCI 配置信息。
- 名称:
-
打开一个新的终端窗口。
-
显示 OCI 配置文件的内容。
cat ~/.oci/config
-
使用终端中显示的值并将其与 Oracle Linux Automation Manager Web UI 中 OCI 凭证的特定字段匹配。
使用每个字段旁边的
图标可显示粘贴的值。
-
获取 OCI 用户 API 私钥的内容。
在免费练习环境中,您可以运行
cat ~/.oci/oci.key
获取此信息,然后复制整个输出,包括 BEGIN 和 END 行。 -
将密钥粘贴到 Oracle Linux Automation Manager Web UI 中的 Private User Key 字段。
-
复查并单击保存按钮。
如果您以后需要编辑这些值,它们将在 Web UI 中显示为加密值。因此,要进行更改,请单击特定字段旁边的替换图标,然后为该字段添加新值。根据需要重复,然后在完成更改时单击保存按钮。
创建清单
-
单击导航菜单中的库存。
-
单击添加按钮,然后从值下拉列表中选择添加库存。
-
在特定字段中输入或选择下列值。
- 名称:
My Local Inventory
- 实例组:控制板
Oracle Cloud Infrastructure Ansible Collection 使用 Oracle Linux Automation Engine 与 OCI 租户交互时使用 localhost 网络连接。
- 名称:
-
复查并单击保存按钮。
添加源控件身份证明
-
单击导航菜单中的身份证明。
-
单击添加按钮。
-
在特定字段中输入或选择下列值。
- 名称:
Git Server
- 身份证明类型:源控制
页面将刷新,请求类型详细信息。
- 名称:
-
输入 Git 服务器的用户名。
- 用户名:
git
- 用户名:
-
将 Git 服务器的私钥内容复制并粘贴到 SCM Private Key 字段中。
空闲练习环境使用缺省的
~/.ssh/id_rsa
文件。 -
复查并单击保存按钮。
创建项目
-
单击导航菜单中的项目。
-
单击添加按钮。
-
在特定字段中输入或选择下列值。
- 名称:
My Project
- 执行环境: OLAM EE (2.3)
- 源控制身份证明类型: Git
页面将刷新,请求类型详细信息。
- 源控制 URL :
git@<ip_address_of_instance>:/git-server/repos/myproject.git
- 源控件分支:
main
- 源控制身份证明: Git 服务器
空闲练习环境使用 Source Control URL 字段中的 git-server IP 地址。
- 名称:
-
复查并单击保存按钮。
-
复核项目同步状态。
创建项目后,Web UI 将在同步开始时在详细信息汇总中显示其状态。如果配置正确并且可以访问 Git 服务器,则状态将从正在运行转换为成功。
创建作业模板
-
单击导航菜单中的 Templates 。
-
单击 Add(添加)按钮,然后从值下拉列表中选择 Add job template(添加作业模板)。
-
输入或选择所需的值。
- 名称:
My Template
- 作业类型:运行
- 库存:我的本地库存
- 项目:我的项目
- 执行环境: OLAM EE (2.3)
- 游戏手册:get_namespace.yml
- 名称:
-
选择身份证明。
选择身份证明时,将显示选择身份证明弹出对话框。从所选类别下拉列表中选择 Oracle Cloud Infrastructure 以显示该类型的身份证明。
-
选择我的 OCI 身份证明,然后单击选择按钮。
-
查看作业模板条目。
-
向下滚动页面并单击保存按钮。
-
启动该模板。
通过单击启动按钮,从模板汇总页启动作业。
如果成功,作业将启动并显示模板的输出,包括 OCI 租户的名称空间。如有必要,可以单击重新加载输出链接来刷新输出面板。
后续步骤
显示名称空间的输出确认您有一个工作配置和项目,用于演示如何使用 Oracle Cloud Infrastructure Ansible Collection 的手册。进一步试验收集,以将实例和其他资源部署到您的租户。
相关链接
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Use OCI Ansible Collection with Oracle Linux Automation Manager
F76740-03
Copyright ©2023, Oracle and/or its affiliates.