Ansible 导航器创建指南

Red Hat Ansible Automation Platform 2.1

在 Ansible 创建器工作流中使用 Ansible 导航器.

Red Hat Customer Content Services

摘要

提供反馈:
如果您对本文档有任何改进建议,或发现错误,请联系技术支持 https://access.redhat.com,使用 Docs组件在 Ansible Automation PlatformJIRA 项目中创建一个问题。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

第 1 章 Ansible 内容导航器简介

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

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

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

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

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

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

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

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

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

1.2.1. stdout 模式

使用带有 Automation 内容导航器的 -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。

基于文本的用户界面模式

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

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

您无法在自动化内容导航器运行后在模式之间进行切换。

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

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

Automation content navigator 命令以 -m stdout 模式运行熟悉的 Ansible CLI 命令。您可以在相关的 Ansible CLI 命令中使用所有子命令和选项。详情请参阅 ansible-navigator --help

表 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

1.4. Ansible 和自动化内容导航器命令之间的关系

Automation content navigator 命令以 -m stdout 模式运行熟悉的 Ansible CLI 命令。您可以使用相关 Ansible CLI 命令中提供的所有子命令和选项。详情请参阅 ansible-navigator --help

表 1.2. 自动化内容浏览器和 Ansible CLI 命令比较

Ansible navigator 命令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 章 在 RHEL 上安装自动化内容导航器

作为内容创建者,您可以在 Red Hat Enterprise Linux (RHEL) 8 及更新版本上安装自动化内容导航程序。

2.1. 从 RPM 安装 RHEL 上的自动化内容导航器

您可以从 RPM 在 Red Hat Enterprise Linux (RHEL) 上安装自动化内容导航程序。

先决条件

  • 已安装 RHEL 8 或更高版本。
  • 使用 Red Hat Subscription Manager 注册了您的系统。

流程

  1. 附加 Red Hat Ansible Automation Platform SKU。

    $ subscription-manager attach --pool=<sku-pool-id>
  2. 为 RHEL 8 启用存储库。

    $ sudo subscription-manager repos --enable ansible-automation-platform-2.1-for-rhel-8-x86_64-rpms
  3. 安装自动化内容导航器.

    $ dnf install ansible-navigator

验证

  • 验证自动化内容导航器安装:

    $ ansible-navigator --help

以下示例演示了成功安装:

自动化内容导航器成功安装

第 3 章 使用自动化内容导航器查看自动化执行环境

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

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

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

先决条件

  • 自动执行环境

流程

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

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

    自动化执行环境详情

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

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

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

验证

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

    自动化执行环境输出

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

作为内容创建者,您可以使用 Automation 内容浏览 Ansible 清单并以交互方式签入到组和主机。

4.1. 检查 Automation 内容导航器中的清单

您可以以交互模式通过自动化内容导航器用户界面查看 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. 从 Automation 内容导航器浏览集合

您可以使用交互模式的自动化内容浏览或基于文本的用户界面浏览 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. 查看自动化内容导航器中的文档

您可以通过交互模式中的 Automation 内容导航器用户界面查看集合和插件 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
    编辑器中的文档示例

    有关如何设置编辑器的详情,请查看 第 8.2 节 “自动化内容导航器常规设置”

第 6 章 使用自动化内容导航器运行 Ansible playbook

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

6.1. 从 Automation 内容导航器执行 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>

    任务列表

    如果您为 Automation 内容导航器启用了颜色,则失败的任务以红色显示。

  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 ...>

6.2. 检查 playbook 结果,其中包含自动化内容导航器工件文件

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

先决条件

  • 从 playbook 运行中自动化内容导航器构件 JSON 文件。

流程

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

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

      Playbook 结果

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

第 7 章 使用自动化内容导航器查看 Ansible 配置

作为内容创建者,您可以使用 Automation 内容导航器来查看 Ansible 配置,并以交互方式签入设置。

7.1. 从 Automation 内容导航器查看 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 章 自动化内容导航器配置设置

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

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

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

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

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

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

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

  • 设置文件可以是 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. 自动化内容导航器常规设置

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

表 8.1. 自动化内容导航器常规参数设置

参数描述设置选项

ansible-runner-artifact-dir

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

默认:没有设置默认值

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,则工件目录不会被删除。

默认:没有设置默认值

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 强制停止执行。

默认:没有设置默认值

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

ENVANSIBLE_NAVIGATOR_APP

Settings file:

ansible-navigator:
  app:

cmdline

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

默认 :没有默认值

CLI :位置

ENVANSIBLE_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

ENVANSIBLE_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

默认: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

默认:True

CLI: --econ--editor-console

ENV:ANSIBLE_NAVIGATOR_EDITOR_CONSOLE

Settings file:

ansible-navigator:
  editor:
    console:

execute-environment

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

Choices:TrueFalse

默认: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

默认:没有设置默认值

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

默认:True

CLI: --la--log-append

ENV:ANSIBLE_NAVIGATOR_LOG_APPEND

Settings file:

ansible-navigator:
  logging:
    append:

log-file

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

Default: $PWD/ansible-navigator.log

CLI: --lf--log-file

ENV:ANSIBLE_NAVIGATOR_LOG_FILE

Settings file:

ansible-navigator:
  logging:
    file:

log-level

指定 Automation content navigator 日志级别。

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

默认:True

CLI: --osc4--osc4

ENV:ANSIBLE_NAVIGATOR_OSC4

Settings file:

ansible-navigator:
  color:
    osc4:

pass-environment-variable

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

默认:没有设置默认值

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 - 永不拉取 (pull) 镜像。

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)

默认:没有设置默认值

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

ENV:ANSIBLE_NAVIGATOR_SET_ENVIRONMENT_VARIABLES

Settings file:

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

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

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

表 8.2. 自动化内容导航器 config 子命令参数设置

参数描述设置选项

config

指定 Ansible 配置文件的路径。

默认:没有设置默认值

CLI: -c--config

ENV:ANSIBLE_CONFIG

Settings file:

ansible-navigator:
  ansible:
    config:

help-config

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

Choices:* TrueFalse

默认:False

CLI: --hc--help-config

ENV:ANSIBLE_NAVIGATOR_HELP_CONFIG

Settings file:

ansible-navigator:
  help-config:

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

下表描述了 Automation 内容浏览器 doc 子命令的每个参数和设置选项。

表 8.3. 自动化内容导航器 doc 子命令参数设置

参数描述设置选项

help-doc

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

Choices:TrueFalse

默认:False

CLI: --hd--help-doc

ENV:ANSIBLE_NAVIGATOR_HELP_DOC

Settings file:

ansible-navigator:
  help-doc:

plugin-name

指定插件名称。

默认:没有设置默认值

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 子命令设置

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

表 8.4. 自动化内容导航器 inventory 子命令参数设置

参数描述设置选项

help-inventory

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

Choices:TrueFalse

默认: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

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

默认:没有设置默认值

CLI: --ic--inventory-column

ENV:* ANSIBLE_NAVIGATOR_INVENTORY_COLUMNSSettings file:

ansible-navigator:
  inventory-columns:

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

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

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

参数描述设置选项

playbook-artifact-replay

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

默认:没有设置默认值

CLI:位置

ENV:ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_REPLAY

Settings file:

ansible-navigator:
  playbook-artifact:
    replay:

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

下表描述了 Automation 内容浏览器 run 子命令的每个参数和设置选项。

表 8.6. 自动化内容导航器 run 子命令参数设置

参数描述设置选项

playbook-artifact-replay

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

默认:没有设置默认值

CLI:位置

ENV:ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_REPLAY

Settings file:

ansible-navigator:
  playbook-artifact:
    replay:

help-playbook

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

Choices:TrueFalse

默认: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

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

默认:没有设置默认值

CLI: --ic--inventory-column

ENV:* ANSIBLE_NAVIGATOR_INVENTORY_COLUMNSSettings file:

ansible-navigator:
  inventory-columns:

playbook

指定 playbook 名称。

默认:没有设置默认值

CLI:位置

ENV:ANSIBLE_NAVIGATOR_PLAYBOOK

Settings file:*

ansible-navigator:
  ansible:
    playbook:

playbook-artifact-enable

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

Choices:TrueFalse

默认:True

CLI: --pae or --playbook-artifact-enableENV:ANSIBLE_NAVIGATOR_PLAYBOOK_ARTIFACT_ENABLE设置文件:

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:

第 9 章 使用自动化内容浏览器对 Ansible 内容进行故障排除

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

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

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

# 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 © 2023 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.