IBM Cloud Docs
使用Ansible

使用Ansible

Schematics 操作提供 Ansible-as-a-Service 功能,供您自动配置和管理 IBM Cloud 环境,并将复杂的多层应用程序部署到云基础结构。

查看 Schematics 操作 一节以了解操作和 Red Hat Ansible的背景。

创建和运行 Schematics 操作

创建一个 Schematics 操作,并指定您希望针对云资源运行的 Ansible 剧本。

先决条件

  • 创建 Ansible 运行手册并将该运行手册存储在 GitHub 或 GitLab 存储库中。 或者,您可以尝试使用其中一个 IBM提供的 Ansible 运行手册
  • 确保您具有 许可权 以创建 Schematics 操作。

在创建或更新 Schematics 工作空间和操作时,请确保 locationurl 端点指向同一区域。 有关位置和端点的更多信息,请参阅 信息存储在何处?

创建Ansible游戏本

  1. 登录 IBM Cloud控制台

  2. 单击菜单图标汉堡包图标>Platform Automation>Schematics>Ansible>Create playbook

    • 配置操作。
      1. 为您的操作输入游戏本名称说明。 请注意,名称最多可包含128个字符,可包含字母数字字符、空格、破折号和下划线。
      2. 可选,输入您想添加到操作中的标签。 标记有助于操作的快速搜索操作。
      3. 选择要在其中创建操作的资源组
      4. 选择您要创建操作的位置。 位置决定了您的操作运行和操作数据存储的位置。 您可以选择地理位置 (例如 North America) 或位置 (例如 FrankfurtLondon)。 如果选择地理位置,那么 Schematics 将根据可用性决定此地理位置中的位置。 请确保可以将操作数据存储在此位置,因为在创建操作后无法更改该位置。 有关更多信息,请参阅 信息存储在何处? 请注意,您操作的位置与您要运行 Ansible 剧本的云资源的位置无关。
      5. 单击创建。 您的操作是使用 Normal 状态创建的,并且会将您定向到 Details 部分。
  3. Ansible 运行手册 部分中,单击 编辑图标 以导入 Ansible 运行手册。

    1. 输入您的 Ansible 剧本存储在 GitHub 或 GitLab 存储库URL。 URL 可以指向主分支、任何其他分支或子目录。 如果存储库存储了多个运行手册,那么必须选择要运行的运行手册。 Schematics一次只能指向一个剧本。 要运行多个运行手册,必须为每个运行手册创建单独的操作。

      • 主分支示例 - https://github.com/myorg/myrepo
      • 其他分支机构的示例 - https://github.com/myorg/myrepo/tree/mybranch
      • 子目录示例 - https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory

      没有可以使用的游戏本吗? 试用其中一个 样本运行手册

    2. 如果您想使用私人 GitHub 存储库,请输入您的个人访问令牌。 个人访问令牌用于验证私人 GitHub 存储库,以访问您的 Ansible 剧本。 有关如何创建访问令牌的更多信息,请参阅 为命令行创建个人访问令牌。 如果您需要查看从 Git 存储库克隆时 允许和禁止的文件扩展名。 为了安全验证和克隆模板,您可以点击 Open reference picker 来选择您的 Secrets Manager 密钥参考。 更多信息,请参阅 创建 Secrets Manager 实例

    3. 查看用于运行运行手册的缺省 Ansible 版本。 此版本无法更改。 如果使用自己的 Ansible 运行手册,请确保运行手册使用指定的 Ansible 版本。 例如,Ansible v2.9.23

    4. 单击 检索运行手册 以连接到存储库,并从 Git 存储库检索所有 Ansible 运行手册。

    5. 选择您想要运行的剧本。 Schematics一次只能指向一个剧本。 要运行多个运行手册,必须为每个运行手册创建单独的操作。

    6. 选择详细程度。 详细程度级别确定执行 Ansible 运行手册时写入日志的信息深度。 受支持的值为 0 (Normal)1 (verbose)2 (More Verbose)3 (Debug)4 (Connection Debug。例如,如果要调试运行手册或要包含 Ansible 运行的每个任务的详细摘要,请选择较高的详细级别。 您可以在运行运行运行手册时查看日志。

    7. 可选,单击 高级选项 以定义要传递到运行手册的输入变量。 必须在键/值对中输入输入变量。 如果该变量包含敏感信息,请启用 敏感 选项,以便在创建操作后对用户隐藏该值。 如果使用 IBM提供的其中一个 Ansible 运行手册,那么可以在 readme.md 文件中找到所有输入变量。

    8. 如果您想从 Git 存储库克隆,请参阅 允许和阻止克隆的文件扩展名。 您可以编辑一个变量,通过输入键值引用 Secrets Manager 来创建一个 Secrets Manager 实例

    9. 点击 “保存” 保存操作详情。

  4. 配置资源库存。 资源清单包含要在其中运行 Ansible 运行手册的所有目标主机。

    1. 选择库存 部分中,单击 编辑图标
    2. 从资源库存表中,选择现有资源库存。 如果您还没有资源库存,请单击 创建库存 以创建库存。 有关创建资源清单的更多信息,请参阅 创建静态清单文件从 Schematics 工作空间动态构建资源清单
    3. 操作支持 SSHWinRM 类型的清单连接选项卡以连接到远程主机。
      • 选择 SSH 选项卡以输入要用于连接到目标主机的 用户名IBM Cloud 资源库存专用 SSH 密钥。 必须使用匹配的公用 SSH 密钥配置所有主机,以便 Schematics 可以连接到主机并运行运行手册。
        • 选择 需要堡垒主机访问权以进行堡垒主机访问。 要使用其他 SSH 密钥来连接到防御主机,请取消选择 对防御主机使用同一密钥 选项。 有关 SSH 密钥的更多信息,请参阅 添加 SSH 密钥
      • 选择 WinRM 选项卡以进行客户机与服务器之间的通信。 目前,WinRM 仅支持具有公共 IPs 的 Windows 系统,而不支持 Bastion 主机。
        • 使用公共 IP 提供 Windows 系统的 用户名密码
    4. 单击保存

    有关为 Schematics 操作创建库存的更多信息,请参阅 静态库存动态库存

  5. 单击 检查操作 以验证操作详细信息。 “作业”页面将自动打开,您可以在日志中查看结果。 此检查将验证您的运行手册是否可以在 Schematics中运行。 要更改操作设置,请返回到操作的“设置”页面,然后单击 “编辑”图标

  6. 单击 运行操作 以运行该操作。 您可以通过查看“作业”页面上的日志来监视操作进度。 每 30 seconds 个作业日志都会自动刷新。

    无法删除或停止 Schematics 操作的正在运行的作业。 要更改操作,请等待作业完成,然后更改设置,然后再次单击 检查操作运行操作

更新 Schematics 操作设置

  1. 登录 IBM Cloud控制台
  2. 点击菜单图标 汉堡图标 > **平台自动化> **Schematics > Ansible > click your Ansible Action name
  3. “详细信息”部分,点击 Edit 图标。
  4. 编辑操作描述GitHub URL、Personal access token 和其他参数。 然后,您可以点击 Update 保存编辑后的配置。 最后,点击 “检查操作”和 “运行操作” 以验证并重新运行操作脚本。

为了安全验证和克隆模板,在 Personal access token 中,您可以使用 Open reference picker 来选择您的 Secrets Manager 密钥参考。 更多信息,请参阅 创建 Secrets Manager 实例

您可以通过查看“作业”页面上的日志来监视操作进度。 您可以使用 ibmcloud schematics job list 命令来查看操作的完整作业日志。

在控制台中,没有设置用于显示作业日志的限制。 每 30 seconds 个作业日志都会自动刷新。 您可以使用 ibmcloud schematics job list 命令来查看操作的完整作业日志。

删除操作

如果您不再需要您的 Schematics 操作,您可以将其删除。 删除操作将除去 Ansible 运行手册和操作数据。 但是,不会除去您使用该操作在目标主机上进行的任何配置。

  1. Schematics 操作仪表板 中,查找要删除的操作。
  2. 在操作菜单中,单击删除

操作状态

操作状态指示创建和处理 Schematics 系统状态已知的操作的结果。 该表表示 Schematics 操作状态及其描述。

操作状态
状态 描述
Critical 当模板无法下载存储库,或者存储库名称无效时,模板将失败并将操作状态更改为“严重”。
Disabled 不允许用户执行。
Locked 配置处于 Normal 状态后。 管理员可以锁定操作以停止进一步的更改。
Normal 管理员发布操作以启用对用户执行的可视性。
Pending 当用户在创建,更新或删除期间提供模板时,您的操作将进入 Pending 状态。

状态图流

下表表示操作状态工作流程。

操作状态工作流程
操作 状态图 描述
创建 创建操作 用户创建操作时,操作的初始状态为 Draft 状态。 如果用户在创建期间或创建之后提供模板,那么操作将进入 Pending 状态。 如果模板处理成功,那么操作将进入 Normal 状态。 如果模板管理器设置为禁用以停止使用,那么操作将进入 Disable 状态。 如果模板处理中存在错误,那么操作将进入 Critical 状态。
删除(T) 删除操作 当用户选择删除现有操作时,初始操作将进入 Pending 状态。 如果模板删除失败操作变为 Critical 状态。
更新 更新操作 当用户单击现有操作以更新模板存储库时,立即操作变为 pending 状态。 如果模板处理成功,那么操作将进入 Normal 状态。 如果用户尝试将模板存储库设置为禁用,那么操作将进入 Disabled 状态。 最后,如果模板处理失败,那么操作将进入 Critical 状态。

复审操作作业详细信息

使用 Schematics 操作作业详细信息来查找所有 Schematics 内部活动的历史记录。 诸如下载 Ansible 运行手册或验证运行手册之类的活动,以及查看在目标主机上运行的运行手册的 Ansible 日志。

作业分为以下类别:

  • 系统作业: 这些作业表示所有 Schematics 内部活动和检查,例如,从 GitHub 下载 Ansible 运行手册或验证运行手册。 您可以在操作的“作业”页面上的 全部 选项卡中找到这些作业。
  • 用户作业: 这些作业是在您检查或运行操作时创建的。 单击操作的“作业”页面上的 用户 选项卡时,可以找到所有用户启动的作业的摘要。

查看可以分配给作业的以下状态:

作业状态
状态 描述
ok 运行 Ansible 运行手册的目标主机的总数。
changed 已访问和更改的目标主机总数。
failed 可能未成功运行 Ansible 运行手册的目标主机总数。
skipped 已访问但可能未在更改应用于主机时更新的目标主机总数。
unreachable 可能找不到或无法到达的目标主机总数。

当操作作业执行显示 DEPRECATION WARNING 消息时,您需要将输入变量设置为 ansible_python_interpreter = auto,如截屏中所示,以避免作业中出现 DEPRECATION WARNING 消息。

配置输入变量以静默警告消息
配置输入变量以静默警告消息