注意:

将 OCI Ansible Collection 与 Oracle Linux Automation Manager 结合使用

简介

Oracle Cloud Infrastructure (OCI) Ansible Collection 提供了一种使用 Oracle Linux Automation Engine 或 Oracle Linux Automation Manager 在 Oracle Cloud 中预配和管理资源的简单方法。

目标

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

先决条件

部署 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: "olam-node"
        type: "control"
      2:
        instance_name: "git-server"
        type: "server"
    use_git: 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 地址。

创建手册

  1. 打开一个新的终端窗口。

  2. 将变量设置为远程 git-server 实例。

    export REMOTE=<ip_address_of_instance>
    
  3. 创建项目目录。

    mkdir ~/myproject
    
  4. 创建需求文件。

    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
    
  5. 创建剧本。

    此手册查询 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
    

向来源控制添加项目

  1. 将项目的工作目录初始化到 Git 资源库中。

    在初始化系统信息库之前,需要执行一些 Git 首次配置步骤。

    1. 设置初始化项目时使用的默认分支名称。

      git config --global init.defaultBranch main
      
    2. 设置您的身份。

      电子邮件和名称是本教程中的示例。在处理项目时使用您的电子邮件地址和名称,因为 git 在每次提交中都不可变地包含此信息。

      git config --global user.email johndoe@example.com
      git config --global user.name "John Doe"
      
    3. 转到项目的工作目录。

      cd ~/myproject
      
    4. 将目录初始化为本地 Git 系统信息库。

      git init
      

      该命令返回它初始化了空的 Git 系统信息库。

  2. 检查工作目录和项目暂存区域的状态。

    git status
    

    本地系统信息库的状态指示两个未跟踪的文件:get_namespace.ymlrequirements.yml

  3. 在中转区中添加和跟踪新文件。

    git add --all
    

    --all 选项将所有未跟踪和已更改的文件添加到回写区域。

  4. 提交当前暂存区域中的更改。

    git commit -m 'initial commit'
    

    -m 选项允许向提交的更改添加注释。

  5. 创建并初始化远程 Git 系统信息库。

    远程系统信息库是由所有项目贡献者使用的共享系统信息库,并存储在代码托管服务(例如 GitHub 或自托管服务器)上。

    ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
    

    -b 选项可确保使用名为 main 的分支初始化远程系统信息库。

  6. 通过键入 yes 接受 ECDSA 密钥指纹。

  7. 添加新的远程系统信息库连接记录。

    通过将远程连接添加到本地系统信息库,您可以将其用作 Git 命令中的命名快捷方式。

    git remote add origin git@$REMOTE:/git-server/repos/myproject.git
    

    冒号后面的路径是远程 Git 服务器上系统信息库的目录位置。

  8. 验证新添加的连接记录。

    git remote -v
    

    输出显示指向 git fetchgit push 命令的远程 Git 系统信息库位置的连接记录 origin

  9. 将本地系统信息库更改推送到远程系统信息库。

    git push origin main
    

    现在可以在 Oracle Linux Automation Manager 项目中使用 myproject 源。

创建 Ansible Galaxy 身份证明

这些凭据允许 Oracle Linux Automation Manager 从公共 Ansible Galaxy Hub 中提取 OCI Ansible Collection。

  1. 打开新终端窗口并配置指向 olam-node 实例的 SSH 隧道。

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    
  2. 打开 Web 浏览器并输入 URL。

    https://localhost:8444
    

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

  3. 登录到 Oracle Linux Automation Manager Web UI。使用在自动部署期间创建的用户名 admin 和密码 admin

    olam2- 登录

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

    olam2-webui

  5. 单击导航菜单中资源部分下的身份证明

  6. 单击添加按钮。

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

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

    • 名称My Ansible Galaxy
    • 组织Default
    • 身份证明类型Ansible Galaxy/Automation Hub API 标记

    Oracle Linux Automation Manager 利用 Ansible Galaxy 凭证,使用 ansible-galaxy 命令下载角色和集合。

    • Galaxy Server URL :https://galaxy.ansible.com

    olam2-ansible-galaxy-creds

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

  9. 单击导航菜单中访问部分下的组织

    通过在组织内分配 Ansible Galaxy 凭证,可以从 git 项目内下载 Oracle Linux Infrastructure Ansible Collection。

  10. 单击默认组织,然后单击编辑按钮。

  11. Galaxy 身份证明字段中选择 My Ansible Galaxy 身份证明,然后单击选择按钮。

  12. 复查并单击保存按钮。

    olam2-ansible-galaxy-org

创建 OCI 身份证明

OCI 身份证明提供有关特定 OCI 租户的 Oracle Linux Automation Manager 信息。

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

  2. 单击添加按钮。

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

    • 名称My OCI Credentials
    • 组织Default
    • 身份证明类型Oracle Cloud Infrastructure

    olam2-oci-cred1

    该页将刷新并请求您的 OCI 配置信息。

  4. 打开一个新的终端窗口。

  5. 显示 OCI 配置文件的内容。

    cat ~/.oci/config
    
  6. 使用终端中显示的值并将其与 Oracle Linux Automation Manager Web UI 中 OCI 凭证的特定字段匹配。

    使用每个字段旁边的 olam2-webui-show 图标可显示粘贴的值。

    olam2-oci-cred2

  7. 获取 OCI 用户 API 私钥的内容。

    在免费练习环境中,您可以运行 cat ~/.oci/oci.key 获取此信息,然后复制整个输出,包括 BEGINEND 行。

  8. 将密钥粘贴到 Oracle Linux Automation Manager Web UI 中的 Private User Key 字段。

    olam2-oci-cred3

  9. 复查并单击保存按钮。

    olam2-oci-cred4

    如果您以后需要编辑这些值,它们将在 Web UI 中显示为加密值。因此,要进行更改,请单击特定字段旁边的替换图标,然后为该字段添加新值。根据需要重复,然后在完成更改时单击保存按钮。

创建清单

  1. 单击导航菜单中的库存

  2. 单击添加按钮,然后从值下拉列表中选择添加库存

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

    • 名称My Local Inventory
    • 实例组控制板

    Oracle Cloud Infrastructure Ansible Collection 使用 Oracle Linux Automation Engine 与 OCI 租户交互时使用 localhost 网络连接。

  4. 复查并单击保存按钮。

    olam2-inv

添加源控件身份证明

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

  2. 单击添加按钮。

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

    • 名称Git Server
    • 身份证明类型源控制

    olam2-git-cred1

    页面将刷新,请求类型详细信息

  4. 输入 Git 服务器的用户名。

    • 用户名git
  5. 将 Git 服务器的私钥内容复制并粘贴到 SCM Private Key 字段中。

    空闲练习环境使用缺省的 ~/.ssh/id_rsa 文件。

    olam2-git-cred2

  6. 复查并单击保存按钮。

    olam2-git-cred3

创建项目

  1. 单击导航菜单中的项目

  2. 单击添加按钮。

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

    • 名称My Project
    • 执行环境OLAM EE (2.3)
    • 源控制身份证明类型Git

    olam2-proj1

    页面将刷新,请求类型详细信息

    • 源控制 URLgit@<ip_address_of_instance>:/git-server/repos/myproject.git
    • 源控件分支main
    • 源控制身份证明Git 服务器

    空闲练习环境使用 Source Control URL 字段中的 git-server IP 地址。

  4. 复查并单击保存按钮。

    olam2-proj2

  5. 复核项目同步状态。

    创建项目后,Web UI 将在同步开始时在详细信息汇总中显示其状态。如果配置正确并且可以访问 Git 服务器,则状态将从正在运行转换为成功

    olam2-proj-sync

创建作业模板

  1. 单击导航菜单中的 Templates

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

  3. 输入或选择所需的值。

    • 名称My Template
    • 作业类型运行
    • 库存我的本地库存
    • 项目我的项目
    • 执行环境OLAM EE (2.3)
    • 游戏手册get_namespace.yml
  4. 选择身份证明。

    选择身份证明时,将显示选择身份证明弹出对话框。从所选类别下拉列表中选择 Oracle Cloud Infrastructure 以显示该类型的身份证明。

  5. 选择我的 OCI 身份证明,然后单击选择按钮。

  6. 查看作业模板条目。

    olam2-temp1

  7. 向下滚动页面并单击保存按钮。

    olam2-temp2

  8. 启动该模板。

    通过单击启动按钮,从模板汇总页启动作业。

    olam2- 临时启动

    如果成功,作业将启动并显示模板的输出,包括 OCI 租户的名称空间。如有必要,可以单击重新加载输出链接来刷新输出面板。

    olam2- 临时输出

后续步骤

显示名称空间的输出确认您有一个工作配置和项目,用于演示如何使用 Oracle Cloud Infrastructure Ansible Collection 的手册。进一步试验收集,以将实例和其他资源部署到您的租户。

更多学习资源

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

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