使用内容导航器


Red Hat Ansible Automation Platform 2.5

开发与 Ansible Automation Platform 兼容的内容

Red Hat Customer Content Services

摘要

本指南演示了如何使用自动化内容导航器开发与 Ansible Automation Platform 兼容的 Ansible playbook、集合和角色。

对红帽文档提供反馈

如果您对本文档有任何改进建议,或发现错误,请通过 https://access.redhat.com 联系技术支持来创建一个请求。

第 1 章 自动化内容导航器简介

作为内容创建者,您可以使用自动化内容浏览器来开发与红帽 Ansible Automation Platform 兼容的 Ansible playbook、集合和角色。您可以在以下环境中使用自动化内容导航器,并在所有这些环境中无缝且可预测的结果:

  • 本地开发机器
  • 自动执行环境

自动化内容导航器还会生成可用于帮助您开发 playbook 和对问题区域进行故障排除的工件文件。

注意

自动化内容导航器是 Ansible 开发工具的一个组件。要使用自动化内容导航器,您必须安装 Ansible 开发工具。

1.1. 使用自动化内容导航器

自动化内容导航器是一种命令行以内容创建者为导向的工具,具有基于文本的用户界面。您可以使用自动化内容导航器:

  • 启动和观察作业和 playbook。
  • 以 JSON 格式共享存储、完成的 playbook 和作业运行工件。
  • 浏览和内省自动化执行环境.
  • 浏览基于文件的清单。
  • 呈现 Ansible 模块文档,并提取您可以在 playbook 中使用的示例。
  • 查看用户界面的详细命令输出。

1.2. 自动化内容导航器模式

自动化内容导航器以两种模式运行:

stdout 模式
在命令行中接受大多数现有的 Ansible 命令和扩展。
基于文本的用户界面模式
为 Ansible 命令提供基于文本的交互式界面。使用工件文件运行 playbook 后,使用此模式评估内容、运行 playbook 并对它们进行故障排除。

1.2.1. stdout 模式

使用带有自动化内容导航器的 -m stdout 子命令在自动化执行环境或本地开发环境中使用熟悉的 Ansible 命令,如 ansible-playbook。您可以使用您熟悉的命令来执行快速任务。

在此模式中,自动化内容导航器还提供大量帮助:

--help
可从 ansible-navigator 命令或任何子命令访问,如 ansible-navigator config --help
子命令帮助
可从子命令访问,如 ansible-navigator config --help-config。此帮助显示相关 Ansible 命令支持的所有参数的详细信息。

1.2.2. 基于文本的用户界面模式

基于文本的用户界面模式增强了与自动化执行环境、集合、playbook 和清单的交互。此模式兼容集成开发环境 (IDE),如 Visual Studio Code。

基于文本的用户界面模式

这个模式包括很多有用的用户界面选项:

冒号命令
您可以使用冒号访问所有自动化内容导航器命令,如 :run:collections
导航基于文本的界面
屏幕中显示了如何向上或向下滚动页面、滚动到之前的屏幕或 access:help
按行号输出
您可以在输出中的任何行编号前面加上冒号,例如 :12
颜色编码的输出
启用颜色后,自动化内容导航器以红色显示项目,如已弃用的模块。
分页和滚动
您可以使用每个自动化内容导航器屏幕底部显示的选项,上一页或向下滚动或转义。

您不能在自动化内容导航器运行后在模式间切换。

本文档对大多数步骤都使用基于文本的用户界面模式。

1.3. 自动化内容导航器命令

自动化内容导航器命令在 m stdout 模式下运行熟悉的 Ansible CLI 命令。您可以在相关的 Ansible CLI 命令中使用所有子命令和选项。详情请参阅 ansible-navigator --help

Expand
表 1.1. 自动化内容导航器命令
命令描述CLI 示例

collections

探索可用的集合

ansible-navigator collections --help

config

探索当前的 Ansible 配置

ansible-navigator config --help

doc

查看模块或插件的文档

ansible-navigator doc --help

images

探索执行环境镜像

ansible-navigator images --help

清单(inventory)

探索清单

ansible-navigator inventory --help

replay

使用 playbook 工件浏览之前的运行

ansible-navigator replay --help

run

运行 playbook

ansible-navigator run --help

welcome

从欢迎页面开始

ansible-navigator welcome --help

自动化内容导航器命令在 m stdout 模式下运行熟悉的 Ansible CLI 命令。您可以使用相关 Ansible CLI 命令中提供的所有子命令和选项。详情请参阅 ansible-navigator --help

Expand
表 1.2. 自动化内容导航器和 Ansible CLI 命令比较
自动化内容导航器命令Ansible CLI 命令

ansible-navigator collections

ansible-galaxy collection

ansible-navigator config

ansible-config

ansible-navigator doc

ansible-doc

ansible-navigator inventory

ansible-inventory

ansible-navigator run

ansible-playbook

第 2 章 安装 Ansible 开发工具

红帽提供了两个安装 Ansible 开发工具的选项。

  • 在 VS Code 中运行的 RHEL 容器上安装。您可以在 MacOS、Windows 和 Linux 系统上安装这个选项。
  • 使用 RPM (Red Hat Package Manager)软件包在本地 RHEL 8 或 RHEL 9 系统中安装。

    注意

    RHEL 10 不支持 RPM 安装。

2.1. 要求

要安装和使用 Ansible 开发工具,您必须满足以下要求。此流程中指明了对 Windows 安装和容器化安装的额外要求。

2.1.1. Windows 上 Ansible 开发工具的要求

如果要在 Windows 上的 VS Code 中安装 Ansible 开发工具,则需要额外的要求:

  • Windows Subsystem for Linux(WSL2)
  • podman Desktop

流程

  1. 安装不带发行版的 WSL2:

    $ `wsl --install --no-distribution`
  2. 通过为 WSL2 禁用 cgroupsv1 来使用 cgroupsv2

    编辑 %USERPROFILE%/wsl.conf 文件并添加以下行来强制 cgroupv2 使用:

    [wsl2]
    kernelCommandLine = cgroup_no_v1="all"
  3. 安装 Podman 桌面。按照 Podman 桌面文档中的在 Windows 上安装 Podman 桌面和 Podman 的说明。

    您不需要更改设置向导中的默认设置。

  4. 确保 podman 机器使用 cgroupsv2

    $ podman info | findstr cgroup
  5. 测试 Podman 桌面:

    $ podman run hello
  6. 配置 Podman 桌面的设置。使用以下内容添加 %USERPROFILE%\bin\docker.bat 文件:

    @echo off
    podman %*

    这可避免根据 VS Code Dev 容器扩展所需的 Docker 安装。

  7. %USERPROFILE%\bin 目录添加到 PATH 中:

    1. 选择 Settings 并搜索 "Edit 环境变量 for your account" 以显示所有用户环境变量。
    2. 突出显示顶部用户变量框中的"路径",单击 编辑 并添加路径。
    3. Save 设置您打开的任何新控制台的路径。

2.1.2. 使用红帽容器 registry 进行身份验证

红帽容器目录提供的所有容器镜像都托管在镜像 registry 上,即 registry.redhat.io。registry 需要进行身份验证才能访问镜像。

要使用 registry.redhat.io registry,您必须有一个红帽登录。这与您用来登录到红帽客户门户网站(access.redhat.com)并管理您的红帽订阅的帐户相同。

注意

如果您计划在 VS Code 中的容器上安装 Ansible 开发工具,则必须在启动 VS Code 前登录 registry.redhat.io,以便 VS Code 可以从 registry.redhat.io 拉取 devtools 容器。

如果您在 VS Code 中的容器中运行 Ansible 开发工具,并且希望拉取执行环境或 devcontainer 以用作执行环境,则必须从 devcontainer 中从 VS Code 中的终端提示符登录。

您可以将 podman logindocker login 命令与凭证一起使用,以访问 registry 中的内容。

Podman
$ podman login registry.redhat.io
Username: my__redhat_username
Password: ***********
Docker
$ docker login registry.redhat.io
Username: my__redhat_username
Password: ***********

有关红帽容器 registry 身份验证的更多信息,请参阅红帽客户门户网站中的 Red Hat Container Registry Authentication

2.1.3. 安装 VS Code

2.1.4. 安装 VS Code Ansible 扩展

Ansible 扩展添加了对 Ansible 的语言支持到 VS Code。它整合了 Ansible 开发工具,以协助创建和运行自动化内容。

有关 Ansible 扩展的完整描述,请参阅 Visual Studio Code Marketplace

请参阅 学习路径 - Ansible VS Code 扩展入门,以了解使用扩展名 的教程。

安装 Ansible VS Code 扩展:

  1. 打开 VS Code.
  2. 点活动栏中的 Extensions ( Extensions )图标,或者点击 ViewExtensions 来显示 Extensions 视图。
  3. Extensions 视图中的搜索字段中,键入 Ansible Red Hat
  4. 选择 Ansible 扩展,然后单击 Install

当文件语言被识别为 Ansible 时,Ansible 扩展提供了自动完成、悬停、诊断和 goto 等功能。为文件标识的语言显示在 VS Code 窗口底部的 Status 栏中。

为以下文件分配 Ansible 语言:

  • /playbooks 目录中的 YAML 文件
  • 双重扩展名的文件: .ansible.yml.ansible.yaml
  • Ansible 识别的某些 YAML 名称,如 site.ymlsite.yaml
  • 文件名包含 "playbook": playbook .ymlplaybook .yaml的 YAML 文件

如果扩展没有标识您的 playbook 文件的语言,请按照 将 Ansible 语言关联到 YAML 文件 的步骤进行操作。

2.1.5. 配置 Ansible 扩展设置

Ansible 扩展支持多个配置选项。

您可以在用户级别、工作区级别或特定目录配置扩展设置。基于用户的设置会全局应用,适用于打开的 VS Code 实例。工作区设置存储在您的工作区中,只有在当前工作区被打开时才适用。

出于以下原因,为您的工作区配置设置非常有用:

  • 如果您定义和维护特定于 playbook 项目的配置,您可以为单个项目自定义 Ansible 开发环境,而无需为其他工作更改您首选的设置。您可以为 Python 项目、Ansible 项目和 C++ 项目有不同的设置,每个项目都针对相应的堆栈进行了优化,而无需在每次切换项目时手动重新配置设置。
  • 如果您在为要与团队共享的项目设置版本控制时包括工作区设置,则每个人都对该项目使用相同的配置。

流程

  1. 打开 Ansible 扩展设置:

    1. 点活动栏中的"扩展"图标。
    2. 选择 Ansible 扩展,然后单击"gear"图标,然后选择 Extension Settings 以显示扩展设置。

      或者,点 Code Settings 打开 Settings 页面。

    3. 在搜索栏中输入 Ansible,以显示扩展的设置。
  2. 选择 Workspace 选项卡来配置当前 VS Code 工作区的设置。
  3. Ansible 扩展设置已预先填充。修改设置以符合您的要求:

    • 选中 AnsibleValidationLint: Enabled 框以启用 ansible-lint。
    • 选中 Ansible Execution Environment: Enabled 框,以使用执行环境。
    • Ansible > Execution Environment: image 字段中指定您要使用的执行环境镜像。
    • 要使用 Red Hat Ansible Lightspeed,请选中 Ansible > Lightspeed: Enabled 框,并输入 Lightspeed 的 URL。

设置记录在 VisualStudio marketplace 文档中的 红帽页面的 Ansible VS Code 扩展 上。

2.1.6. 将 Ansible 语言与 YAML 文件关联

只有与文件关联的语言设置为 Ansible 时,Ansible VS Code 扩展才起作用。扩展提供有助于创建 Ansible playbook 的功能,如自动完成、悬停和诊断。

Ansible VS Code 扩展会自动将 Ansible 语言与某些文件关联。以下流程描述了如何为不识别为 Ansible 文件的文件设置语言。

手动将 Ansible 语言与 YAML 文件关联

以下流程描述了如何手动将 Ansible 语言分配给在 VS Code 中打开的 YAML 文件。

  1. 在 VS Code 中打开或创建 YAML 文件。
  2. 将光标悬停在 VS Code 窗口底部的状态栏中标识的语言上,以打开 Select Language Mode 列表。
  3. 从列表中选择 Ansible

    文件 VS Code 窗口底部的状态栏中显示的语言已更改为 Ansible。

将 Ansible 语言的永久文件关联添加到 settings.json

或者,您可以在 settings.json 文件中添加 Ansible 语言的文件关联。

  1. 打开 settings.json 文件:

    1. 单击 ViewCommand openmpi 以打开命令面板。
    2. 在搜索框中输入 Workspace 设置,然后选择 Open Workspace Settings (JSON)
  2. 将以下代码添加到 settings.json

    {
      ...
    
      "files.associations": {
        "*plays.yml": "ansible",
        "*init.yml": "yaml",
      }
    }

2.1.7. 安装和配置 Dev Containers 扩展

如果要安装容器化版本的 Ansible 开发工具,则必须在 VS Code 中安装 Microsoft Dev Containers 扩展。

  1. 打开 VS Code.
  2. 点活动栏中的 Extensions ( Extensions )图标,或者点击 ViewExtensions 来显示 Extensions 视图。
  3. Extensions 视图中的 search 字段中,键入 Dev Containers
  4. 从 Microsoft 选择 Dev Containers 扩展,再单击 Install

如果您使用 Podman 或 Podman Desktop 作为容器化平台,您必须修改 Dev Containers 扩展中的默认设置。

  1. Dev Containers 扩展设置中将 docker 替换为 podman :

    1. 在 VS Code 中,打开设置编辑器。
    2. 搜索 @ext:ms-vscode-remote.remote-containers

      或者,单击活动栏中的 Extensions 图标,再单击 Dev Containers 扩展的齿轮图标。

  2. Dev > Containers:Docker Path 设置为 podman
  3. Dev > Containers:Docker Compose Path 设置为 podman-compose

2.2. 在 VS Code 中的容器上安装 Ansible 开发工具

Dev Containers VS Code 扩展需要一个 .devcontainer 文件来存储 dev 容器的设置。您必须使用 Ansible 扩展来为 dev 容器构建配置文件,并在 VS Code 中的容器中重新打开您的目录。

先决条件

  • 已安装容器化平台,如 Podman、Podman Desktop、Docker 或 Docker 桌面。
  • 您有一个红帽登录信息,并已登陆到 registry.redhat.io 上的 Red Hat registry。有关登录到 registry.redhat.io 的详情,请参考使用红帽容器 registry 身份验证
  • 您已安装了 VS Code。
  • 您已在 VS Code 中安装了 Ansible 扩展。
  • 您已在 VS Code 中安装了 Microsoft Dev Containers 扩展。
  • 如果要在 Windows 上安装 Ansible 开发工具,请启动 VS Code 并连接到 WSL 机器:

    1. Remote ( Remote )图标。
    2. 在出现的下拉菜单中,选择用于连接 WSL 机器的选项。

流程

  1. 在 VS Code 中,导航到您的项目目录。
  2. 单击 VS Code 活动栏中的 Ansible 图标,以打开 Ansible 扩展。
  3. 在 Ansible 扩展的 Ansible Development Tools 部分中,向下滚动到 ADD 选项,再选择 Devcontainer
  4. Create a devcontainer 页面中,从容器镜像选项中选择 Downstream 容器镜像

    此操作在 .devcontainer 目录中为 Podman 和 Docker 添加 devcontainer.json 文件。

  5. 重新打开或重新载入项目目录:

    • 如果 VS Code 检测到您的目录包含 devcontainer.json 文件,则会出现以下通知:

      在容器中重新打开

      单击 Reopen in Container

    • 如果没有显示通知,点 Remote ( Remote )图标。在出现的下拉菜单中,选择 Reopen in Container
  6. 根据您使用的容器化平台,为 Podman 或 Docker 选择 dev 容器。

    VS Code Status 栏中的 Remote () 状态会显示 打开 Remote,通知表示打开容器的进度。

验证

当容器中的目录重新打开时,远程() 状态会显示 Dev Container: ansible-dev-container

注意

容器的基础镜像是一个通用基础镜像 Minimal (UBI Minimal)镜像,它使用 microdnf 作为软件包管理器。dnfyum 软件包管理器没有在容器中可用。

有关在基于 UBI Minimal 镜像的容器中使用 microdnf 的详情,请参考 Red Hat Enterprise Linux 构建、运行和管理容器指南中的在 最小 UBI 容器中添加软件

2.3. 从 RHEL 上的软件包安装 Ansible 开发工具

Ansible 开发工具捆绑在 Ansible Automation Platform RPM (红帽软件包管理器)软件包中。有关安装 Ansible Automation Platform 的信息,请参阅 RPM 安装文档

先决条件

  • 已安装 RHEL 8 或 RHEL 9。

    注意

    RHEL 10 不支持 RPM 安装。

  • 已使用 Red Hat Subscription Manager 注册您的系统。
  • 已安装容器化平台,如 Podman 或 Docker。

流程

  1. 运行以下命令检查是否启用了简单内容访问(SCA):

    $ sudo subscription-manager status

    如果启用了简单内容访问,输出将包含以下信息:

    Content Access Mode is set to Simple Content Access.
    1. 如果没有启用简单内容访问,请附加 Red Hat Ansible Automation Platform SKU:

      $ sudo subscription-manager attach --pool=<sku-pool-id>
  2. 使用以下命令安装 Ansible 开发工具:

    $ sudo dnf install --enablerepo=ansible-automation-platform-2.5-for-rhel-8-x86_64-rpms ansible-dev-tools
    $ sudo dnf install --enablerepo=ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms ansible-dev-tools

验证:

验证 Ansible 开发工具组件是否已安装:

$ rpm -aq | grep ansible

输出显示已安装的 Ansible 软件包:

ansible-sign-0.1.1-2.el9ap.noarch
ansible-creator-24.4.1-1.el9ap.noarch
python3.11-ansible-runner-2.4.0-0.1.20240412.git764790f.el9ap.noarch
ansible-runner-2.4.0-0.1.20240412.git764790f.el9ap.noarch
ansible-builder-3.1.0-0.2.20240413.git167ed5c.el9ap.noarch
ansible-dev-environment-24.1.0-2.el9ap.noarch
ansible-core-2.16.6-0.1.20240413.gite636132.el9ap.noarch
python3.11-ansible-compat-4.1.11-2.el9ap.noarch
python3.11-pytest-ansible-24.1.2-1.el9ap.noarch
ansible-lint-6.14.3-4.el9ap.noarch
ansible-navigator-3.4.1-2.el9ap.noarch
python3.11-tox-ansible-24.2.0-1.el9ap.noarch
ansible-dev-tools-2.5-2.el9ap.noarch

在成功安装时,您可以查看 ansible-creator 的帮助文档:

$ ansible-creator --help

usage: ansible-creator [-h] [--version] command ...

The fastest way to generate all your ansible content.

Positional arguments:
 command
  add           Add resources to an existing Ansible project.
  init          Initialize a new Ansible project.

Options:
 --version      Print ansible-creator version and exit.
 -h     --help  Show this help message and exit

作为内容开发人员,您可以使用自动化内容导航器查看自动化执行环境,并显示自动化执行环境中包含的软件包和集合。自动化内容导航器运行 playbook 来提取和显示结果。

3.1. 从自动化内容导航器查看自动化执行环境

您可以使用自动化内容导航器基于文本的用户界面查看自动化执行环境。

先决条件

  • 自动执行环境

流程

  1. 查看自动化内容导航器配置中包含的自动化执行环境。

    $ ansible-navigator images
    自动化执行环境列表
  2. 如需更多详细信息,请键入您要提取的自动化执行环境的数量。

    自动化执行环境详情

    您可以检查每个安装的自动化执行环境的软件包和版本,以及任何包含的集合的 Ansible 版本。

  3. 可选:传递您要使用的自动化执行环境。这将是自动化内容导航器使用的自动化执行环境。

    $ ansible-navigator images --eei registry.example.com/example-enterprise-ee:latest

验证

  • 查看自动化执行环境输出。

    自动化执行环境输出

第 4 章 查看带有自动化内容导航器的清单

作为内容创建者,您可以使用自动化内容导航器并以交互方式查看 Ansible 清单,并以交互方式签入到组和主机。

4.1. 检查自动化内容导航器中的清单

您可以在交互模式中使用自动化内容导航器用户界面查看 Ansible 清单,并将 delve 放入组和主机中以了解更多详细信息。

先决条件

  • 有效的清单文件或清单插件。

流程

  1. 启动自动化内容导航器。

    $ ansible-navigator

    可选:从命令行键入 ansible-navigator inventory -i simple_inventory.yml 来查看清单。

  2. 检查清单。

     :inventory -i simple_inventory.yml
    
       TITLE            DESCRIPTION
    0│Browse groups    Explore each inventory group and group members members
    1│Browse hosts     Explore the inventory with a list of all hosts
  3. 键入 0 以浏览组。

      NAME               TAXONOMY                      TYPE
    0│general            all                           group
    1│nodes              all                           group
    2│ungrouped          all                           group

    TAXONOMY 字段详细说明所选组或节点所属组的层次结构。

  4. 键入与您要转至的组对应的数字。

      NAME              TAXONOMY                        TYPE
    0│node-0            all▸nodes                       host
    1│node-1            all▸nodes                       host
    2│node-2            all▸nodes                       host
  5. 输入与您要提取的主机对应的数字,或者如果大于 9,键入 :<number>

    [node-1]
    0│---
    1│ansible_host: node-1.example.com
    2│inventory_hostname: node-1

验证

  • 检查清单输出。

      TITLE            DESCRIPTION
    0│Browse groups   Explore each inventory group and group members members
    1│Browse hosts    Explore the inventory with a list of all hosts

第 5 章 使用自动化内容导航器浏览集合

作为内容创建者,您可以使用自动化内容导航器并以交互方式浏览 Ansible 集合,以交互方式浏览本地或自动化执行环境中开发的每个集合。

5.1. 自动化内容导航程序集合显示

自动化内容导航器显示有关您的集合的信息,每个集合的详情如下:

SHADOWED
表示在搜索顺序中,集合的额外副本较高,playbook 首选使用该集合。
TYPE
显示集合是否包含在作为 bind_mount 的自动化执行环境或挂载到自动化执行环境中的卷中。
PATH
根据集合 TYPE 字段,反映自动化执行环境或本地文件系统中的集合位置。
自动化内容导航程序集合显示

5.2. 从自动化内容导航器浏览集合

您可以使用交互模式的自动化内容导航器用户界面浏览 Ansible 集合,并转至每个集合。自动化内容导航器显示当前项目目录中的集合,以及自动化执行环境中可用的集合

先决条件

  • 本地可访问的集合或安装的自动化执行环境。

流程

  1. 启动自动化内容导航器

    $ ansible-navigator
  2. 浏览该集合。或者,您也可以键入 ansible-navigator collections 来直接浏览集合。

    $ :collections
    自动化内容导航器中显示的 Ansible 集合列表
  3. 键入您要浏览的集合数。

    :4
    自动化内容导航器中显示的集合
  4. 键入与您要转至的模块对应的数字。

    ANSIBLE.UTILS.IP_ADDRESS: Test if something in an IP address
     0│---
     1│additional_information: {}
     2│collection_info:
     3│  authors:
     4│  - Ansible Community
     5│  dependencies: {}
     6│  description: Ansible Collection with utilities to ease the management, manipulation,
     7│    and validation of data within a playbook
     8│  documentation: null
     9│  homepage: null
    10│  issues: null
    11│  license: []
    12│  license_file: LICENSE
    13│  name: ansible.utils
    14│  namespace: ansible
    15│  path:/usr/share/ansible/collections/ansible_collections/ansible/utils/
    16│  readme: README.md
    <... output truncated...>
  5. 可选:跳至此模块的文档示例。

    :{{ examples }}
    
    0│
    1│
    2│#### Simple examples
    3│
    4│- name: Check if 10.1.1.1 is a valid IP address
    5│  ansible.builtin.set_fact:
    6│    data: "{{ '10.1.1.1' is ansible.utils.ip_address }}"
    7│
    8│# TASK [Check if 10.1.1.1 is a valid IP address] *********************
    9│# ok: [localhost] => {
    10│#     "ansible_facts": {
    11│#         "data": true
    12│#     },
    13│#     "changed": false
    14│# }
    15│
  6. 可选:打开编辑器中的示例,将其复制到 playbook 中。

    :open
    编辑工具中显示的文档示例

验证

  • 浏览集合列表。

    集合列表

5.3. 查看自动化内容导航器中的文档

您可以使用交互模式的自动化内容导航器用户界面查看集合和插件的 Ansible 文档。自动化内容导航器显示当前项目目录中的集合,以及自动化执行环境中可用的集合

先决条件

  • 本地可访问的集合或安装的自动化执行环境。

流程

  1. 启动自动化内容导航器

    $ ansible-navigator
  2. 查看您感兴趣的模块。或者,您也可以键入 ansible-navigator doc 来访问文档。

    :doc ansible.utils.ip_address
    ANSIBLE.UTILS.IP_ADDRESS: Test if something in an IP address
     0│---
     1│additional_information: {}
     2│collection_info:
     3│  authors:
     4│  - Ansible Community
     5│  dependencies: {}
     6│  description: Ansible Collection with utilities to ease the management, manipulation,
     7│    and validation of data within a playbook
     8│  documentation: null
     9│  homepage: null
    10│  issues: null
    11│  license: []
    12│  license_file: LICENSE
    13│  name: ansible.utils
    14│  namespace: ansible
    15│  path:/usr/share/ansible/collections/ansible_collections/ansible/utils/
    16│  readme: README.md
    <... output truncated...>
  3. 跳转到此模块的文档示例。

    :{{ examples }}
    
    0│
    1│
    2│#### Simple examples
    3│
    4│- name: Check if 10.1.1.1 is a valid IP address
    5│  ansible.builtin.set_fact:
    6│    data: "{{ '10.1.1.1' is ansible.utils.ip_address }}"
    7│
    8│# TASK [Check if 10.1.1.1 is a valid IP address] *********************
    9│# ok: [localhost] => {
    10│#     "ansible_facts": {
    11│#         "data": true
    12│#     },
    13│#     "changed": false
    14│# }
    15│
  4. 可选:打开编辑器中的示例,将其复制到 playbook 中。

    :open
    编辑器中的文档示例

    有关如何设置编辑器的详情,请参阅自动化内容导航器常规设置

作为内容创建者,您可以使用自动化内容导航器并以交互方式执行 Ansible playbook,以交互方式查看每个 play 的结果,以及验证或排除 playbook 的任务。您还可以在执行环境中执行 Ansible playbook,且无需执行环境,以比较和排除任何问题。

6.1. 从自动化内容导航器执行 playbook

您可以使用自动化内容导航器基于文本的用户界面运行 Ansible playbook,以跟踪任务执行并转至每个任务的结果。

先决条件

  • 一个 playbook。
  • 有效的清单文件(如果没有使用 localhost)或清单插件。

流程

  1. 启动自动化内容导航器

    $ ansible-navigator
  2. 运行 playbook。

    $ :run
  3. 可选:键入 ansible-navigator run simple-playbook.yml -i inventory.yml 以运行 playbook。
  4. 验证或添加清单以及任何其他命令行参数。

    INVENTORY OR PLAYBOOK NOT FOUND, PLEASE CONFIRM THE FOLLOWING
    ─────────────────────────────────────────────────────────────────────────
       Path to playbook: /home/ansible-navigator_demo/simple_playbook.yml
       Inventory source: /home/ansible-navigator-demo/inventory.yml
      Additional command line parameters: Please provide a value (optional)
    ──────────────────────────────────────────────────────────────────────────
                                                               Submit Cancel
  5. Submit 并按回车。您应该会看到任务正在执行。

    执行 playbook 任务
  6. 输入 play 旁边的数字以进入 play 结果,或者如果大于 9, 键入 :<number>

    任务列表

    请注意,如果您为自动化内容导航器启用了颜色,则失败的任务以红色显示。

  7. 键入要查看任务结果的任务旁边的数字,或者如果大于 9,键入 :<number>

    失败的任务结果
  8. 可选: type:doc 调出任务中使用的模块或插件文档,以帮助进行故障排除。

    ANSIBLE.BUILTIN.PACKAGE_FACTS (MODULE)
      0│---
      1│doc:
      2│  author:
      3│  - Matthew Jones (@matburt)
      4│  - Brian Coca (@bcoca)
      5│  - Adam Miller (@maxamillion)
      6│  collection: ansible.builtin
      7│  description:
      8│  - Return information about installed packages as facts.
    <... output omitted ...>
     11│  module: package_facts
     12│  notes:
     13│  - Supports C(check_mode).
     14│  options:
     15│    manager:
     16│      choices:
     17│      - auto
     18│      - rpm
     19│      - apt
     20│      - portage
     21│      - pkg
     22│      - pacman
    
    <... output truncated ...>

自动化内容导航器将 playbook 运行的结果保存到 JSON 构件文件中。您可以使用此文件与其他人共享 playbook 结果,出于安全或合规性的原因将其保存,或者稍后进行检查和故障排除。您只需要构件文件即可查看 playbook 运行。您不需要访问 playbook 本身或清单访问权限。

先决条件

  • 来自 playbook 运行的自动化内容导航器工件 JSON 文件。

流程

  • 使用工件文件启动自动化内容导航器。

    $ ansible-navigator replay simple_playbook_artifact.json
    1. 检查 playbook 运行时的 playbook 结果。

      Playbook 结果

现在,您可以键入 play 和任务旁边的数字,以逐一检查结果,如执行 playbook 后一样。

作为内容创建者,您可以使用自动化内容导航器并以交互方式查看 Ansible 配置。

7.1. 从自动化内容导航器查看 Ansible 配置

您可以使用交互模式的自动化内容导航器用户界面查看 Ansible 配置,并转至设置中。自动化内容导航器从可访问的 Ansible 配置文件中提取结果,或者返回默认值(如果没有配置文件)。

先决条件

流程

  1. 启动自动化内容导航器

    $ ansible-navigator

    可选:从命令行键入 ansible-navigator config 来访问 Ansible 配置设置。

  2. 检查 Ansible 配置。

     :config
    Ansible 配置

    某些值反映了自动化执行环境正常工作所需的自动化执行环境中进行的设置。这些设置显示为您在 Ansible 配置文件中无法设置的非默认设置。

  3. 输入与您要提取的设置对应的数字,或者如果大于 9,键入 :<number>

    ANSIBLE COW ACCEPTLIST (current: ['bud-frogs', 'bunny', 'cheese']) (default:
     0│---
     1│current:
     2│- bud-frogs
     3│- bunny
     4│- cheese
     5│default:
     6│- bud-frogs
     7│- bunny
     8│- cheese
     9│- daemon

输出显示了当前设置以及 默认设置。请注意,本例中的 sourceenv,因为设置来自自动化执行环境。

验证

  • 检查配置输出。

    配置输出

第 8 章 自动化内容导航器配置设置

作为内容创建者,您可以配置自动化内容导航器以适合您的开发环境。

8.1. 创建自动化内容导航器设置文件

您可以通过以下方法更改默认自动化内容导航器设置:

  • 命令行
  • 在一个设置文件中
  • 作为一个环境变量

自动化内容导航器按以下顺序检查设置文件,并使用第一个匹配项:

  • ANSIBLE_NAVIGATOR_CONFIG - 设置文件路径环境变量(如果已设置)。
  • ./ansible-navigator.<ext> - 当前项目目录中的设置文件,文件名中没有点。
  • \~/.ansible-navigator.<ext> - 您的主目录,文件名中有一个点。

在创建自动化内容导航器设置文件时请考虑以下几点:

  • 设置文件可以是 JSONYAML 格式。
  • 对于 JSON 格式的设置,扩展名必须为 .json
  • 对于 YAML 格式的设置,扩展名必须为 .yml.yaml
  • 项目和主目录分别只能包含一个设置文件。
  • 如果自动化内容导航器在任一目录中找到多个设置文件,则会导致错误。

您可以将以下示例设置文件复制到其中一种路径中,以启动 ansible-navigator 设置文件。

    ---
    ansible-navigator:
    #   ansible:
    #     config: /tmp/ansible.cfg
    #     cmdline: "--forks 15"
    #     inventories:
    #     - /tmp/test_inventory.yml
    #     playbook: /tmp/test_playbook.yml
    #   ansible-runner:
    #     artifact-dir: /tmp/test1
    #     rotate-artifacts-count: 10
    #     timeout: 300
    #   app: run
    #   collection-doc-cache-path: /tmp/cache.db
    #   color:
    #     enable: False
    #     osc4: False
    #   editor:
    #     command: vim_from_setting
    #     console: False
    #   documentation:
    #     plugin:
    #       name: shell
    #       type: become
    #   execution-environment:
    #     container-engine: podman
    #     enabled: False
    #     environment-variables:
    #       pass:
    #         - ONE
    #         - TWO
    #         - THREE
    #       set:
    #         KEY1: VALUE1
    #         KEY2: VALUE2
    #         KEY3: VALUE3
    #     image: test_image:latest
    #     pull-policy: never
    #     volume-mounts:
    #     - src: "/test1"
    #       dest: "/test1"
    #       label: "Z"
    #   help-config: True
    #   help-doc: True
    #   help-inventory: True
    #   help-playbook: False
    #   inventory-columns:
    #     - ansible_network_os
    #     - ansible_network_cli_ssh_type
    #     - ansible_connection
      logging:
    #     append: False
        level: critical
    #     file: /tmp/log.txt
    #   mode: stdout
    #   playbook-artifact:
    #     enable: True
    #     replay: /tmp/test_artifact.json
    #     save-as: /tmp/test_artifact.json

8.2. 自动化内容导航器常规设置

下表描述了自动化内容导航器的每个常规参数和设置选项。

Expand
表 8.1. 自动化内容导航器常规参数设置
参数描述设置选项

ansible-runner-artifact-dir

存储由 ansible-runner 生成工件的目录路径。

Default:没有设置默认值

CLI: --rad--ansible-runner-artifact-dir

ENV: ANSIBLE_NAVIGATOR_ANSIBLE_RUNNER_ARTIFACT_DIR

Settings file:

ansible-navigator:
  ansible-runner:
    artifact-dir:

ansible-runner-rotate-artifacts-count

为最后 n 个运行保留 ansible-runner 构件目录。如果设置为 0,则工件目录不会被删除。

Default:没有设置默认值

CLI: --rac--ansible-runner-rotate-artifacts-count

ENV: ANSIBLE_NAVIGATOR_ANSIBLE_RUNNER_ROTATE_ARTIFACTS_COUNT

Settings file:

ansible-navigator:
  ansible-runner:
    rotate-artifacts-count:

ansible-runner-timeout

ansible-runner 强制停止执行超时值。

Default:没有设置默认值

CLI: --rt--ansible-runner-timeout

ENV: ANSIBLE_NAVIGATOR_ANSIBLE_RUNNER_TIMEOUT

Settings file:

ansible-navigator:
  ansible-runner:
    timeout:

app

自动化内容导航器的入口点。

Choices: collections, config, doc, images, inventory, replay, run or welcome

Default: welcome

CLI example: ansible-navigator collections

ENV: ANSIBLE_NAVIGATOR_APP

Settings file:

ansible-navigator:
  app:

cmdline

传递给相应命令的额外参数。

Default: 没有默认值

CLI :位置

ENV: ANSIBLE_NAVIGATOR_CMDLINE

Settings file:

ansible-navigator:
  ansible:
    cmdline:

collection-doc-cache-path

集合 doc 缓存的路径。

Default: $HOME/.cache/ansible-navigator/collection_doc_cache.db

CLI: --cdcp--collection-doc-cache-path

ENV: ANSIBLE_NAVIGATOR_COLLECTION_DOC_CACHE_PATH

Settings file:

ansible-navigator:
  collection-doc-cache-path:

container-engine

指定容器引擎(auto=podman then docker)。

Choices: auto, podmandocker

Default: auto

CLI: --ce--container-engine

ENV: ANSIBLE_NAVIGATOR_CONTAINER_ENGINE

Settings file:

ansible-navigator:
  execution-environment:
    container-engine:

display-color

在显示中使用颜色。

Choices: TrueFalse

Default: True

CLI: --dc--display-color

ENV: NO_COLOR

Settings file:

ansible-navigator:
  color:
    enable:

editor-command

指定自动化内容导航器使用的编辑器

默认值:* vi +{line_number} {filename}

CLI: --ecmd--editor-command

ENV: ANSIBLE_NAVIGATOR_EDITOR_COMMAND

Settings file:

ansible-navigator:
  editor:
    command:

editor-console

指定编辑器是否基于控制台.

Choices: TrueFalse

Default: True

CLI: --econ--editor-console

ENV: ANSIBLE_NAVIGATOR_EDITOR_CONSOLE

Settings file:

ansible-navigator:
  editor:
    console:

execute-environment

启用或禁用自动化执行环境的使用。

Choices: TrueFalse

Default: True

CLI: --ee--execution-environment

ENV:* ANSIBLE_NAVIGATOR_EXECUTION_ENVIRONMENT

Settings file:

ansible-navigator:
  execution-environment:
    enabled:

execution-environment-image

指定自动化执行环境镜像的名称。

Default: quay.io/ansible/ansible-runner:devel

CLI: --eei--execution-environment-image

ENV: ANSIBLE_NAVIGATOR_EXECUTION_ENVIRONMENT_IMAGE

Settings file:

ansible-navigator:
  execution-environment:
    image:

execution-environment-volume-mounts

指定要在自动化执行环境中绑定的卷(--eev /home/user/test:/home/user/test:Z

Default:没有设置默认值

CLI: --eev--execution-environment-volume-mounts

ENV: ANSIBLE_NAVIGATOR_EXECUTION_ENVIRONMENT_VOLUME_MOUNTS

Settings file:

ansible-navigator:
  execution-environment:
    volume-mounts:

log-append

指定是否应将日志消息附加到现有日志文件中,否则每个会话都会创建新的日志文件。

Choices: TrueFalse

Default: True

CLI: --la--log-append

ENV: ANSIBLE_NAVIGATOR_LOG_APPEND

Settings file:

ansible-navigator:
  logging:
    append:

log-file

指定自动化内容导航器日志文件的完整路径。

Default: $PWD/ansible-navigator.log

CLI: --lf--log-file

ENV: ANSIBLE_NAVIGATOR_LOG_FILE

Settings file:

ansible-navigator:
  logging:
    file:

log-level

指定自动化内容导航器日志级别。

Choices: debug, info, warning, errorcritical

Default: warning

CLI: --ll--log-level

ENV: ANSIBLE_NAVIGATOR_LOG_LEVEL

Settings file:

ansible-navigator:
  logging:
    level:

模式

指定 user-interface 模式。

Choices: stdoutinteractive

Default: interactive

CLI: -m--mode

ENV: ANSIBLE_NAVIGATOR_MODE

Settings file:

ansible-navigator:
  mode:

osc4

启用或禁用 OSC 4 支持的终端颜色。

Choices: TrueFalse

Default: True

CLI: --osc4--osc4

ENV: ANSIBLE_NAVIGATOR_OSC4

Settings file:

ansible-navigator:
  color:
    osc4:

pass-environment-variable

指定要传递给的退出环境变量,并在自动化执行环境 (--penv MY_VAR) 内设置.

Default:没有设置默认值

CLI: --penv--pass-environment-variable

ENV: ANSIBLE_NAVIGATOR_PASS_ENVIRONMENT_VARIABLES

Settings file:

ansible-navigator:
  execution-environment:
    environment-variables:
      pass:

pull-policy

指定镜像拉取策略。

always - 总拉取 (pull) 镜像

missing - 在本地没有时拉取

Never - 不拉取镜像

tag - 如果镜像标签为 latest 则总拉取镜像,否则在本地没有时进行拉取

Choices: always, missing, never, 或 tag

Default: tag

CLI: --pp--pull-policy

ENV: ANSIBLE_NAVIGATOR_PULL_POLICY

Settings file:

ansible-navigator:
  execution-environment:
    pull-policy:

set-environment-variable

指定要在自动化执行环境内设置的环境变量和值 (--senv MY_VAR=42)

Default:没有设置默认值

CLI: --senv--set-environment-variable

ENV: ANSIBLE_NAVIGATOR_SET_ENVIRONMENT_VARIABLES

Settings file:

ansible-navigator:
  execution-environment:
    environment-variables:
      set:

8.3. 自动化内容导航器配置子命令设置

下表描述了自动化内容导航器 config 子命令的每个参数和设置选项。

Expand
表 8.2. 自动化内容导航器 config 子命令参数设置
参数描述设置选项

config

指定 Ansible 配置文件的路径。

Default:没有设置默认值

CLI: -c--config

ENV: ANSIBLE_CONFIG

Settings file:

ansible-navigator:
  ansible:
    config:
      path:

help-config

stdout 模式显示 ansible-config 命令的帮助选项。

Choices:* TrueFalse

Default: False

CLI: --hc--help-config

ENV: ANSIBLE_NAVIGATOR_HELP_CONFIG

Settings file:

ansible-navigator:
  help-config:

8.4. 自动化内容导航器 doc 子命令设置

下表描述了自动化内容导航器 doc 子命令的每个参数和设置选项。

Expand
表 8.3. 自动化内容导航器 doc 子命令参数设置
参数描述设置选项

help-doc

stdout 模式中显示 ansible-doc 命令的帮助选项。

Choices: TrueFalse

Default: False

CLI: --hd--help-doc

ENV: ANSIBLE_NAVIGATOR_HELP_DOC

Settings file:

ansible-navigator:
  help-doc:

plugin-name

指定插件名称。

Default:没有设置默认值

CLI:位置

ENV: ANSIBLE_NAVIGATOR_PLUGIN_NAME

Settings file:

ansible-navigator:
  documentation:
    plugin:
      name:

plugin-type

指定插件类型。

Choices: become, cache, callback, cliconf, connection, httpapi, inventory, lookup, module, netconf, shell, strategy, or vars

Default: module

CLI: -t----type

ENV: ANSIBLE_NAVIGATOR_PLUGIN_TYPE

Settings file:

ansible-navigator:
  documentation:
    plugin:
      type:

8.5. 自动化内容导航器 inventory 子命令设置

下表描述了自动化内容导航器 inventory 子命令的每个参数和设置选项。

Expand
表 8.4. 自动化内容导航器 inventory 子命令参数设置
参数描述设置选项

help-inventory

stdout 模式显示 ansible-inventory 命令的帮助选项。

Choices: TrueFalse

Default: False

CLI: --hi--help-inventory

ENV: ANSIBLE_NAVIGATOR_INVENTORY_DOC

Settings file:

ansible-navigator:
  help-inventory:

清单(inventory)

指定清单文件路径或逗号分隔的主机列表。

Default: 没有设置默认值

CLI: --i--inventory

ENV: ANSIBLE_NAVIGATOR_INVENTORIES

Settings file:

ansible-navigator:
  inventories:

inventory-column

指定要在清单视图中显示的主机属性。

Default:没有设置默认值

CLI: --ic--inventory-column

ENV:* ANSIBLE_NAVIGATOR_INVENTORY_COLUMNSSettings file:

ansible-navigator:
  inventory-columns:

8.6. 自动化内容导航器 replay 子命令设置

下表描述了自动化内容导航器 replay 子命令的每个参数和设置选项。

Expand
表 8.5. 自动化内容导航器 replay 播放子命令参数设置
参数描述设置选项

playbook-artifact-replay

指定要重播的 playbook 构件的路径。

Default:没有设置默认值

CLI:位置

ENV: ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_REPLAY

Settings file:

ansible-navigator:
  playbook-artifact:
    replay:

8.7. 自动化内容导航器 run 子命令设置

下表描述了自动化内容导航器 run 子命令的每个参数和设置选项。

Expand
表 8.6. 自动化内容导航器 run 子命令参数设置
参数描述设置选项

playbook-artifact-replay

指定要重播的 playbook 构件的路径。

Default:没有设置默认值

CLI:位置

ENV: ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_REPLAY

Settings file:

ansible-navigator:
  playbook-artifact:
    replay:

help-playbook

stdout 模式显示 ansible-playbook 命令的帮助选项。

Choices: TrueFalse

Default: False

CLI: --hp--help-playbook

ENV: ANSIBLE_NAVIGATOR_HELP_PLAYBOOK

Settings file:

ansible-navigator:
  help-playbook:

清单(inventory)

指定清单文件路径或逗号分隔的主机列表。

Default: 没有设置默认值

CLI: --i--inventory

ENV: ANSIBLE_NAVIGATOR_INVENTORIES

Settings file:

ansible-navigator:
  inventories:

inventory-column

指定要在清单视图中显示的主机属性。

Default:没有设置默认值

CLI: --ic--inventory-column

ENV:* ANSIBLE_NAVIGATOR_INVENTORY_COLUMNSSettings file:

ansible-navigator:
  inventory-columns:

playbook

指定 playbook 名称。

Default:没有设置默认值

CLI:位置

ENV: ANSIBLE_NAVIGATOR_PLAYBOOK

Settings file:*

ansible-navigator:
  ansible:
    playbook:

playbook-artifact-enable

启用或禁用为已完成的 playbook 创建工件。注意:当 playbook 需要用户输入时,与 --mode stdout 不兼容。

Choices: TrueFalse

Default: True

CLI: --pae--playbook-artifact-enableENV: ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_ENABLESettings file:

ansible-navigator:
  playbook-artifact:
    enable:

playbook-artifact-save-as

指定从完成的 playbook 创建的工件的名称。

Default: {playbook_dir}/{playbook_name}-artifact-{ts_utc}.json

CLI: --pas--playbook-artifact-save-as

ENV: ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_SAVE_AS

Settings file:

ansible-navigator:
  playbook-artifact:
    save-as:

作为内容创建者,您可以使用自动化内容导航器对 Ansible 内容(集合、自动化执行环境和 playbook)进行故障排除,并以交互方式对 playbook 进行故障排除。您还可以比较自动化执行环境内部或外部的结果,并对任何问题进行故障排除。

自动化内容导航器将 playbook 运行的结果保存到 JSON 构件文件中。您可以使用此文件与其他人共享 playbook 结果,出于安全或合规性的原因将其保存,或者稍后进行检查和故障排除。您只需要构件文件即可查看 playbook 运行。您不需要访问 playbook 本身或清单访问权限。

先决条件

  • 来自 playbook 运行的自动化内容导航器工件 JSON 文件。

流程

  • 使用工件文件启动自动化内容导航器。

    $ ansible-navigator replay simple_playbook_artifact.json
    1. 检查 playbook 运行时的 playbook 结果。

      Playbook 结果

现在,您可以键入 play 和任务旁边的数字,以逐一检查结果,如执行 playbook 后一样。

9.2. 有关自动化内容导航器的常见问题

使用以下自动化内容导航器常见问题解答,以帮助您对环境中的问题进行故障排除。

在使用自动化执行环境时,ansible.cfg 文件应位于什么位置?
最简单的方法是将 ansible.cfg 文件放置在直接位于 playbook 旁边的项目目录中。playbook 目录自动挂载到自动化执行环境中,自动化内容导航器会在其中找到 ansible.cfg 文件。如果 ansible.cfg 文件位于其他目录中,设置 ANSIBLE_CONFIG 变量,并将该目录指定为一个自定义卷挂载。(请参阅 execution-environment-volume-mounts的自动化内容导航器设置。)
在没有使用自动化执行环境时,ansible.cfg 文件应位于什么位置?
在没有使用自动化执行环境时,Ansible 会在典型位置查找 ansible.cfg。详情请参阅 Ansible 配置设置
在使用自动化执行环境时,Ansible 集合应放置在哪里?
使用 Ansible 集合的最简单位置是位于项目目录中,位于 playbook 相邻集合目录中(例如 ansible-galaxy collections install ansible.utils -p ./collections)。playbook 目录自动挂载到自动化执行环境中,自动化内容导航器会在其中找到集合。另一种选择是使用 Ansible Builder 将集合构建到自动化执行环境中。这有助于内容创建者编写准备好生产的 playbook,因为自动化控制器支持 playbook 相邻集合目录。如果集合位于另一个目录中,请设置 ANSIBLE_COLLECTIONS_PATHS 变量,并为该目录配置自定义卷挂载。(请参阅 execution-environment-volume-mounts自动化内容导航器常规设置
如果不使用自动化执行环境,应放置 Ansible 集合的位置?
如果不使用自动化执行环境,Ansible 会查看集合的默认位置。请参阅使用 Ansible 集合指南。
在使用 vars_promptpause/prompt 时,为什么 playbook 会出现挂起的情况?
默认情况下,自动化内容导航器以与自动化控制器运行 playbook 相同的方式运行 playbook。这有助于内容创建者编写生产就绪的 playbook。如果无法使用 vars_promptpause\prompt,则禁用 playbook-artifact 创建会导致自动化内容导航器以与 ansible-playbook 兼容并允许用户交互的方式运行 playbook。
为什么自动化内容导航器会更改终端颜色或外观?
自动化内容导航器查询终端以获取 OSC4 兼容性。OSC4、10、11、104、110、111 表示终端支持颜色更改和恢复。这可能是终端错误地代表了其能力。您可以通过设置 --osc4 false 来禁用 OSC4 检测。(请参阅 自动化内容导航器常规设置,以了解如何使用环境变量或设置文件中处理此设置)。
如何更改自动化内容导航器使用的颜色?
use-- osc4 false,以强制自动化内容导航器使用定义的终端颜色。(请参阅 自动化内容导航器常规设置,以了解如何使用环境变量或设置文件中处理此设置)。
playbook 目录中所有这些 site-artifact-2021-06-02T16:02:33.911259+00:00.json 文件是什么?
自动化内容导航器为每个 playbook 运行创建一个 playbook 工件。这有助于在自动化完成后,审查自动化的结果,与同事共享并进行故障排除,或保持合规或满足更改控制的目的。playbook 工件文件包含有关每个 play 和任务的详细信息,以及 playbook 运行的 stdout。您可以在自动化内容导航器会话中查看 ansible-navigator replay <filename>:replay <filename > 的 playbook 工件。您可以根据所需的视图,使用模式 stdout 和-- mode 互动 查看所有 playbook 工件。您可以禁用 playbook 工件编写和默认的文件命名约定。(请参阅 自动化内容导航器常规设置,以了解如何使用环境变量或设置文件中处理此设置)。
当使用 :open 时,为什么会打开 vi

自动化内容浏览器会在默认编辑器的终端中打开任何显示内容。默认值为 vi +{line_number} {filename}EDITOR 环境变量的当前值。与此相关的是 editor-console 设置,它指示编辑器基于控制台还是终端。以下是可能有用的备用设置示例:

# emacs
ansible-navigator:
  editor:
    command: emacs -nw +{line_number} {filename}
    console: true
# vscode
ansible-navigator:
  editor:
    command: code -g {filename}:{line_number}
    console: false
#pycharm
ansible-navigator:
  editor:
    command: charm --line {line_number} {filename}
    console: false
配置设置应用的顺序是什么?

自动化内容导航器配置系统从各种来源拉取设置,并根据以下顺序应用它们(其中,上次应用的更改是最流行的):

  1. 默认内部值
  2. 来自设置文件中的值
  3. 来自环境变量中的值
  4. 命令行中指定的标志和参数
  5. 在基于文本的用户界面中输入 : 命令
我如何进行故障排除?
自动化内容导航器具有相关的日志记录消息。您可以使用 --log-level debug 来启用 debug 级别的日志。如果您认为可能发现了一个程序漏洞,请报告相关问题,并包含日志文件中的详细信息。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部