5.3. 自定义后阶段操作


通过以下操作,您可以在软件模板工作流中管理 Ansible Automation Platform 资源。

5.3.1. rhaap:create-project

创建一个 Ansible Automation Platform 项目,它链接到包含 Ansible 内容的源控制存储库。

输入参数

Expand
参数类型必填描述

token

string

用于 Ansible Automation Platform 身份验证的 OAuth2 令牌。

deleteIfExist

布尔值

如果为 true,则操作会在创建新项目之前删除该项目。

values

object

项目配置对象。请参阅"值"对象结构表。

"values" 对象结构

Expand
字段类型必填描述

projectName

string

项目的名称。

projectDescription

string

项目的描述。

机构

object

带有 id (数字、必需) 和名称 (字符串,可选)的机构对象。

credentials

object

带有 id (数字、必需)、name (字符串、可选)和 kind (字符串,可选)的凭证对象。

scmUrl

string

源控制 URL (如 GitHub/GitLab 存储库 URL)。

scmBranch

string

源控制分支、标签或提交。

scmUpdateOnLaunch

布尔值

如果为 true,在每个作业运行前更新项目修订。

输出参数

Expand
参数类型描述

project

object

创建项目详情。

project.id

number

Ansible Automation Platform (AAP)中的项目 ID。

project.name

string

项目名称。

project.description

string

项目描述.

project.url

string

项目的 Ansible Automation Platform URL。

示例

steps:
  - id: create-aap-project
    name: Create AAP Project
    action: rhaap:create-project
    input:
      token: ${{ parameters.AAP_TOKEN }}
      deleteIfExist: true
      values:
        projectName: ${{ parameters.projectName }}
        organization: ${{ parameters.organization }}
        scmUrl: https://github.com/my-org/ansible-playbooks
        scmBranch: main
        scmUpdateOnLaunch: true
        credentials: GitHub Token
Copy to Clipboard Toggle word wrap

5.3.2. rhaap:create-execution-environment

在 Ansible Automation Platform 中创建一个执行环境,用于定义用于运行 Ansible 作业的容器镜像。

输入参数

Expand
参数类型必填描述

token

string

用于 Ansible Automation Platform 身份验证的 OAuth2 令牌。

deleteIfExist

布尔值

如果为 true,则该操作将删除执行环境(如果已存在)。

values

object

执行环境配置对象。

"values" 对象结构

Expand
字段类型必填描述

environmentName

string

执行环境的名称。

environmentDescription

string

执行环境的描述。

机构

object

带有所需 id (数字)和可选 名称 (字符串)的机构对象。

image

string

完整镜像位置,包括 registry、镜像名称和标签(如 quay.io/ansible/creator-ee:latest)。

pull

string

镜像拉取策略: 始终缺失或 永不。默认 缺少

输出参数

Expand
参数类型描述

executionEnvironment

object

创建执行环境详情。

executionEnvironment.id

number

执行环境 ID。

executionEnvironment.name

string

执行环境名称。

executionEnvironment.description

string

执行环境描述。

executionEnvironment.url

string

执行环境的 Ansible Automation Platform (AAP) URL。

示例

steps:
  - id: create-ee
    name: Create Execution Environment
    action: rhaap:create-execution-environment
    input:
      token: ${{ parameters.AAP_TOKEN }}
      deleteIfExist: false
      values:
        environmentName: Custom EE
        environmentDescription: Execution environment with custom collections
        organization: ${{ parameters.organization }}
        image: quay.io/ansible/creator-ee:v0.16.0
        pull: missing
Copy to Clipboard Toggle word wrap

5.3.3. rhaap:create-job-template

在 Ansible Automation Platform 中创建作业模板,以定义用于运行 Ansible playbook 的可重复使用的配置。

输入参数

Expand
参数类型必填描述

token

string

用于 Ansible Automation Platform 身份验证的 OAuth2 令牌。

deleteIfExist

布尔值

如果为 true,则该操作会删除作业模板(如果已存在)。

values

object

作业模板配置对象。

"values" 对象结构

Expand
字段类型必填描述

templateName

string

作业模板的名称。

templateDescription

string

作业模板的描述。

project

object

带有所需 id (数字)和可选 名称 (字符串)的项目对象。

机构

object

带有 id (数字、必需) 和名称 (字符串,可选)的机构对象。

jobInventory

object

带有所需 id (数字)和可选 名称 (字符串)的清单对象。

playbook

string

要执行的 playbook 文件的路径。

templateDescription

string

作业模板的描述。

scmType

string

源控制类型(如 GithubGitlab)。

executionEnvironment

object

带有所需 id (数字)和可选 名称 (字符串)的执行环境对象。

extraVariables

object

传递给 playbook (键-值对)的额外变量。

输出参数

Expand
参数类型描述

模板

object

创建作业模板详情。

template.id

number

作业模板 ID。

template.name

string

作业模板名称。

template.description

string

作业模板描述。

template.url

string

作业模板的 Ansible Automation Platform (AAP) URL。

示例

steps:
  - id: create-job-template
    name: Create Job Template
    action: rhaap:create-job-template
    input:
      token: ${{ parameters.AAP_TOKEN }}
      deleteIfExist: true
      values:
        templateName: Deploy Application
        templateDescription: Deploys the application to production
        project: ${{ steps['create-aap-project'].output.project }}
        organization: ${{ parameters.organization }}
        jobInventory: ${{ parameters.jobInventory }}
        playbook: deploy.yml
        executionEnvironment: ${{ steps['create-ee'].output.executionEnvironment }}
        extraVariables:
          app_version: 1.0.0
          environment: production
Copy to Clipboard Toggle word wrap

5.3.4. rhaap:launch-job-template

在 Ansible Automation Platform 中启动现有作业模板。

输入参数

Expand
参数类型必填描述

token

string

用于 Ansible Automation Platform 身份验证的 OAuth2 令牌。

values

object

作业启动配置对象。

"values" 对象结构

Expand
字段类型必填描述

模板

string

要启动的作业模板名称。

清单(inventory)

object

使用 id (数字)和 name (字符串)覆盖清单。

credentials

数组

要使用的凭证对象数组。

extraVariables

object

传递给作业(键-值对)的额外变量。

limit

string

用于限制作业运行的主机的主机模式。

jobType

string

作业类型: 运行 或检查

executionEnvironment

object

使用 id (数字) 和名称 (字符串)覆盖执行环境。

verbosity

object

带有 idname 的详细程度对象。

forks

number

并行进程数量(默认为 5)。

jobSliceCount

number

将作业划分为 N 分片。

timeout

number

作业超时(以秒为单位)(0 = no timeout)。

diffMode

布尔值

启用 diff 模式以显示更改。

jobTags

string

以逗号分隔的标签,仅运行特定的任务。

skipTags

string

以逗号分隔的标签,用于跳过特定的任务。

输出参数

Expand
参数类型描述

data

object

作业执行详细信息.

data.id

number

作业 ID。

data.status

string

作业状态.

data.url

string

作业的 Ansible Automation Platform (AAP) URL。

示例

steps:
  - id: launch-job
    name: Launch Job Template
    action: rhaap:launch-job-template
    input:
      token: ${{ parameters.AAP_TOKEN }}
      values:
        template: Deploy Application
        inventory: ${{ parameters.jobInventory }}
        credentials: ${{ parameters.credentials }}
        extraVariables:
          app_version: v1.0.1
          deploy_env: production
        jobType: run
        verbosity: Normal
        diffMode: true
        timeout: 3600
Copy to Clipboard Toggle word wrap

5.3.5. 具有所有 backstage 操作的示例

以下示例演示了如何一起使用多个操作。

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: ansible-complete-setup
  title: Complete Ansible Setup
  description: Creates an Ansible project, execution environment, job template, and launches it
spec:
  owner: platform-team
  type: service

  parameters:
    - title: Project Information
      required:
        - projectName
        - repoUrl
      properties:
        projectName:
          title: Project Name
          type: string
          description: Name of the Ansible project
        repoUrl:
          title: Repository URL
          type: string
          description: Git repository URL containing Ansible content

    - title: AAP Configuration
      required:
        - organization
        - jobInventory
        - credentials
      properties:
        organization:
          title: Organization
          type: string
          description: AAP Organization name
          default: 1-org
          ui:field: hidden  # To hide this field in the UI
        jobInventory:
          title: Inventory name
          type: string
          description: AAP Inventory name
          resource: inventories
          ui:field: AAPResourcePicker
          default: my-inventory
        credentials:
          title: Credentials
          description: Select SCM credential for Private repositories
          resource: credentials
          ui:field: AAPResourcePicker
          default: my-machine-credential
  steps:
    # Step 1: Create AAP Project
    - id: create-project
      name: Create AAP Project
      action: rhaap:create-project
      input:
        token: ${{ parameters.AAP_TOKEN }}
        deleteIfExist: true
        values:
          projectName: ${{ parameters.projectName }}
          organization: ${{ parameters.organization }}
          scmUrl: ${{ parameters.repoUrl }}
          scmBranch: main
          scmUpdateOnLaunch: true

    # Step 2: Create Execution Environment
    - id: create-ee
      name: Create Execution Environment
      action: rhaap:create-execution-environment
      input:
        token: ${{ parameters.AAP_TOKEN }}
        values:
          environmentName: ${{ parameters.projectName }}-ee
          organization: ${{ parameters.organization }}
          image: quay.io/ansible/creator-ee:latest
          pull: missing

    # Step 3: Create Job Template
    - id: create-template
      name: Create Job Template
      action: rhaap:create-job-template
      input:
        token: ${{ parameters.AAP_TOKEN }}
        values:
          templateName: ${{ parameters.projectName }}-deploy
          templateDescription: Deployment job template
          project: ${{ steps['create-project'].output.project }}
          organization: ${{ parameters.organization }}
          jobInventory: ${{ parameters.jobInventory }}
          playbook: site.yml
          executionEnvironment: ${{ steps['create-ee'].output.executionEnvironment }}

    # Step 4: Launch the Job
    - id: launch-job
      name: Launch Job
      action: rhaap:launch-job-template
      input:
        token: ${{ parameters.AAP_TOKEN }}
        values:
          template: ${{ parameters.projectName }}-deploy
          inventory: ${{ parameters.jobInventory }}
          credentials: ${{ parameters.credentials }}
          jobType: run
          extraVariables:
            created_by: backstage
            timestamp: ${{ '' | now }}

  output:
    links:
      - title: AAP Project
        url: ${{ steps['create-project'].output.project.url }}
      - title: Job Template
        url: ${{ steps['create-template'].output.template.url }}
      - title: Job Execution
        url: ${{ steps['launch-job'].output.data.url }}
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部