注意:

使用 AWX 集合管理 Oracle Linux Automation Manager

简介

AWX Ansible Collection 允许管理员通过手册与 Oracle Linux Automation Manager 进行交互。这些模块包括执行用户和组管理、创建项目和运行作业等任务的功能。

目标

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

先决条件

部署 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"
    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 地址。

验证 Oracle Linux Automation Manager 的部署

  1. 打开一个新的终端。

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

    ssh -o ExitOnForwardFailure=yes -f -L 8444:localhost:443 oracle@<public_ip_address_of_olam-node> sleep 300
    
    • -o ExitOnForwardFailure=yes:等待所有远程端口转发成功建立
    • -f:在后台运行 SSH 隧道
    • -L:在本地系统上创建端口 8444 上的隧道,在远程系统上创建端口 443
    • sleep 300:将远程隧道保持打开状态 5 分钟,等待已建立的连接,然后再自动关闭
  3. 打开 Web 浏览器并输入 URL。

    https://localhost:8444
    

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

  4. 使用用户名 admin 和部署期间创建的密码 admin 登录到 Oracle Linux Automation Manager。

    olam2- 登录

  5. 登录后,将显示 Web UI。

    olam2-webui

创建控制器配置文件

AWX Ansible 集合使用配置文件,在某些情况下,使用 AWX CLI 对 Oracle Linux Automation Manager 进行验证。验证参数可以使用 CLI 直接在命令行上传递或写入配置文件。

指定验证参数时,AWX Ansible Collection 需要以下任一项的组合:

上游项目中提供了更多详细信息。

  1. 返回到创建 SSH 隧道的终端。

  2. 生成配置文件。

    cat << EOF | tee ~/.tower_cli.cfg > /dev/null
    [general]
    host: https://localhost:8444
    verify_ssl: false
    username: admin
    password: admin
    use_token = false
    EOF
    
    • host: - 定义用于访问 Oracle Linux Automation Manager Web UI 的 URL
    • verify_ssl: - 关闭严格的 SSL 检查,因为教程环境使用自签名证书
    • use_token:- 虽然首选使用 OAuth2 标记,但设置为 false 会关闭使用一个标记进行验证

创建组织

正如我们在入门教程中所述,组织位于基于角色的金字塔的顶部,是用户、团队、项目和库存的逻辑集合。

与其通过 Web UI 创建,我们可以编写一个手册。

  1. 写剧本。

    cat << EOF | tee configure-olam.yaml > /dev/null
    ---
    - name: Playbook to set up training demo data using the AWX collection
      hosts: localhost
      gather_facts: false
      collections:
        - awx.awx
    
      tasks:
    
      - name: Create an organization
        awx.awx.organization:
          name: "Example"
          description: "Created using a playbook"
          state: present
    
    EOF
    
  2. 运行剧本。

    ansible-playbook configure-olam.yaml
    
  3. 验证 Web UI 中的更改。

    使用浏览器登录到 Web UI。

    :如果遇到登录失败,则 SSH 隧道可能已过期。在这种情况下,您需要重新运行 SSH 命令以重新建立连接。

    在导航菜单中,单击组织。请注意剧本创建的示例条目。

运行作业

创建组织后,现在让我们通过进行一些修改来自动执行入门教程中的其余步骤。Oracle Linux Automation Engine 的一个优势是自文档记录。

  1. 返回到创建了剧本的终端。

  2. 将其他配置附加到现有手册。

    cat << EOF | tee -a configure-olam.yaml > /dev/null
      - name: Add a user
        awx.awx.user:
          username: jdoe
          password: oracle
          email: jdoe@example.com
          first_name: John
          last_name: Doe
          organization: Example
          state: present
    
      - name: Add an inventory
        awx.awx.inventory:
          name: "Demo Inventory"
          description: "Demo OCI Instances"
          organization: Example
          state: present
    
      - name: Add a host
        awx.awx.host:
          name: localhost
          description: "Use to run tasks locally"
          inventory: "Demo Inventory"
          state: present
          variables:
            ansible_connection: local
    
      - name: Add a credential
        awx.awx.credential:
          name: "Linux Instance"
          credential_type: Machine
          organization: Example
          inputs:
            username: opc
            ssh_key_data: ""
    
      - name: Add a project
        awx.awx.project:
          name: "Hello World"
          description: "Sample Hello World Project"
          organization: Example
          default_environment: "OLAM EE (2.3)"
          scm_type: "git"
          scm_update_on_launch: false
          scm_url: https://github.com/oracle-devrel/linux-virt-labs.git
          state: present
    
      - name: Add a template
        awx.awx.job_template:
          name: "Say Hello"
          job_type: "run"
          organization: Example
          inventory: "Demo Inventory"
          project: "Hello World"
          playbook: "labs/olam-hello-world.yaml"
          state: present
    
      - name: Launch a job
        awx.awx.job_launch:
          job_template: "Say Hello"
          wait: true
        register: job
    
      - name: Print results from job
        ansible.builtin.debug:
          var: job
    
    EOF
    
  3. 重新运行剧本。

    ansible-playbook configure-olam.yaml
    

    剧本结尾是最后一个将作业状态显示为 successful 的剧本,以及一个可以忽略的警告。

  4. 在 Web UI 中验证作业。

    使用浏览器,导航到作业,然后单击说您好作业。输出显示作业期间剧本运行的结果。请注意来自调试任务的欢迎消息。

后续步骤

Web UI 中的输出确认您有一个有效的 Oracle Linux Automation Manager,并编写了手册来管理一些更常见的任务。

更多学习资源

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

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