ansible-galaxy

执行各种与角色和专辑相关的操作。

简介

usage: ansible-galaxy [-h] [--version] [-v] TYPE ...

描述

用于管理 Ansible 角色和专辑的命令。

该 CLI 的工具全都被设计为不能同时运行。请使用外部调度器,并/或加锁,以确保不会出现操作冲突。

常用选项

  • --version,显示程序的版本号、配置文件位置、所配置的模组搜索路径、模组位置、可执行文件位置并退出;
  • -h, --help,打印此帮助消息并退出;
  • -v, --verbose,会导致 Ansible 打印更多调试信息。添加多个 -v 会增加调试信息的冗余度,内置插件目前最多会评估到 -vvvvv。 开始时的合理级别是 -vvv,连接的调试则可能需要 -vvvv。可以多次指定此参数;

操作

collection

对 Ansible Galaxy 专辑执行操作。必须与下文列出的 init/install 等下一步操作结合使用。

  • collection download,以 tar 包形式下载专辑及其依赖项,以便离线安装;

    • --clear-response-cache,清除现有的服务器响应缓存;
    • --no-cache,不使用服务器响应缓存;
    • --pre,包括预发布版本。默认会忽略语义版本控制的预发布版本;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -n, --no-deps,不要下载列为依赖项的那些专辑;
    • -p <DOWNLOAD_PATH>, --download-path <DOWNLOAD_PATH>,要下载专辑的目录;
    • -r, <REQUIREMENTS>, --requirements-file <REQUIREMENTS>,包含要下载专辑列表的文件;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection init,创建符合 Galaxy 元数据格式的角色或专辑的骨架框架。需要角色或专辑名称。专辑名称的格式必须是 <namespace>.<collection>

    • --collection-skeleton, <COLLECTION_SKELETON>,新专辑应基于的专辑骨架路径;
    • --init-path <INIT_PATH>,创建骨架专辑的路径。默认为当前工作目录;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -f, --force,强制覆盖现有角色或专辑;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection build,构建某个 Ansible Galaxy 专辑工件,a Ansible Galaxy collection artifact,该工件可存储在类似 Ansible Galaxy 的某个中心资源库中。默认情况下,该命令从当前工作目录构建。咱们可以选择传入该专辑的输入路径(galaxy.yml 文件的所在位置)。

    • --output-path <OUTPUT_PATH>,该专辑要构建到的路径。默认为当前工作目录;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -f, --force,强制覆盖现有角色或专辑;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection publish,将某个专辑发布到 Ansible Galaxy。需要提供所发布专辑 tar 压缩包的路径;

    • --imoprt-timeout <IMPORT_TIMEOUT>,等待专辑导入过程完成的时间;
    • --no-wait,无需等待导入验证的结果;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection install,安装一或多个角色(ansible-galaxy role install),或一或多个专辑(ansible-galaxy collection install)。咱们可以传入一个列表(角色或专辑的),也可以使用下面列出的文件选项(二者是互斥的)。如果咱们传入了个列表,则他可以是个名称(将通过 galaxy API 和 github 下载),也可以是个本地的 tar 归档文件。

    • --clear-response-cache,清除现有的服务器响应缓存;
    • --disable-gpg-verify,从某个 Galaxy 服务器安装专辑时,禁用 GPG 签名验证;
    • --force-with-deps,强制覆盖现有专辑及其依赖关系;
    • --ignore-signature-status-code,--消息抑制--。该参数可以指定多次;
    • --ignore-signature-status-codes,以空格分隔的状态代码列表,用于在签名验证过程中忽略这些代码(例如,NO_PUBKEY FAILURE 等)。有关这些选项的说明,请参见 General status codes。注意:请在位置参数后指定这些参数,或使用 - 分隔他们。该参数可指定多次。
    • keyring,签名验证时使用的密钥环;
    • --no-cache,不使用服务器响应缓存;
    • --offline,在不联系任何分发服务器下,安装专辑工件(tar 包)。此选项不适用于远程 Git 仓库中的专辑,或指向远端压缩包的 URL;
    • --pre,包括预发布版本。默认会忽略语义版本控制的预发布版本;
    • --required-valid-signature-count <REQUIRED_VALID_SIGNATURE_COUNT>,必须成功验证该专辑的签名数。该值应为正整数,或表示必须使用所有签名来验证该专辑的 -1。如果未找到该专辑的有效签名,则以前导的 + 表示验证失败(例如 +all);
    • --signature,额外签名源,用于在从 Galaxy 服务器上安装专辑前,验证 MANIFEST.json 的真实性。与随后的专辑名称一起使用(与 -requirements-file 相互排斥)。该参数可指定多次;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -U, --upgrade,升级已安装的专辑工件。除非提供 -no-deps,否则也会更新依赖项;
    • -f, --force,强制覆盖现有角色或专辑;
    • -i, --ignore-errors,忽略安装过程中的错误,并继续下一指定专辑。这不会忽略依赖冲突错误;
    • -n, --no-deps,不要下载列为依赖项的那些专辑;
    • -p <COLLECTION_PATH>, --collection-path <COLLECTION_PATH>,包含咱们专辑目录的路径;
    • -n, --no-deps,不要下载列为依赖项的那些专辑;
    • -r, <REQUIREMENTS>, --requirements-file <REQUIREMENTS>,包含要下载专辑列表的文件;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection list,列出已安装的专辑或角色;

    • --format <OUTPUT_FORMAT>,显示专辑列表的格式;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -p, --collections-path,除默认的 COLLECTIONS_PATHS 目录外,还要搜索的一或多个目录。多个路径之间用 : 分隔。此参数可指定多次;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • collection verify,比较服务器上发现的专辑,与所安装副本的校验和。这不会验证依赖关系;

    • --ignore-signature-status-code,--消息抑制--。该参数可以指定多次;
    • --ignore-signature-status-codes,以空格分隔的状态代码列表,用于在签名验证过程中忽略这些代码(例如,NO_PUBKEY FAILURE 等)。有关这些选项的说明,请参见 General status codes。注意:请在位置参数后指定这些参数,或使用 - 分隔他们。该参数可指定多次。
    • keyring,签名验证时使用的密钥环;
    • --offline,在不联系服务器获取规范清单哈希值下,于本地验证专辑的完整性;
    • --required-valid-signature-count <REQUIRED_VALID_SIGNATURE_COUNT>,必须成功验证该专辑的签名数。该值应为正整数,或表示必须使用所有签名来验证该专辑的 -1。如果未找到该专辑的有效签名,则以前导的 + 表示验证失败(例如 +all);
    • --signature,额外签名源,用于在从 Galaxy 服务器上安装专辑前,验证 MANIFEST.json 的真实性。与随后的专辑名称一起使用(与 -requirements-file 相互排斥)。该参数可指定多次;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -i, --ignore-errors,忽略安装过程中的错误,并继续下一指定专辑。这不会忽略依赖冲突错误;
    • -p, --collections-path,除默认的 COLLECTIONS_PATHS 目录外,还要搜索的一或多个目录。多个路径之间用 : 分隔。此参数可指定多次;
    • -r, <REQUIREMENTS>, --requirements-file <REQUIREMENTS>,包含要下载专辑列表的文件;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。

role

对某个 Ansible Galaxy 角色执行操作。必须与下文列出的 delete/install/init 等进一步操作相结合。

  • role init,创建符合 Galaxy 元数据格式的角色或专辑的骨架框架。需要一个角色或专辑名称。专辑名称的格式必须是 <namespace>.<collection>
    • --init-path <INIT_PATH>,将在其中创建骨架角色的路径。默认为当前工作目录;
    • --offline,在创建角色时不查询 Galaxy API;
    • --role-skeleton <ROLE_SKELETON>,新角色所基于角色骨架的路径; {{#include cli.md:533:534}}
    • --type <ROLE_TYPE>,使用某种替代角色类型初始化。有效类型包括 containerapbnetwork
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
  • -e, --extra-vars,以 key=value 方式, 或文件名前添加了 @ 的 YAML/JSON 方式,设置一些额外变量。此参数可指定多次;
    • -f, --force,强制覆盖现有角色或专辑;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role remove,移除作为参数传递的本地系统上的角色列表;

    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -p, --roles-path,包含角色的目录路径。默认路径是通过 DEFAULT_ROLES_PATH 配置的第一个可写路径: {{ ANSIBLE_HOME ~ "/roles:/usr/share/ansible/roles:/etc/ansible/roles" }} 。该参数可指定多次;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role delete,删除来自 Ansible Galaxy 的某个角色;

    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role list,列出已安装的专辑或角色;

    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -p, --roles-path,包含角色的目录路径。默认路径是通过 DEFAULT_ROLES_PATH 配置的第一个可写路径: {{ ANSIBLE_HOME ~ "/roles:/usr/share/ansible/roles:/etc/ansible/roles" }} 。该参数可指定多次;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role search,检索 Ansible Galaxy 服务器上的角色;

    • --author <AUTHOR>,GitHub 用户名;
    • --galaxy-tags <GALAXY_TAGS>,要过滤的 galaxy 标签列表;
    • --platforms <PLATFORMS>,要过滤的 OS 平台列表;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role import,用于将某个角色,导入 Ansible Galaxy;

    • --branch <REFERENCE>,要导入的分支名称。默认为版本库的默认分支(通常是 master/main);
    • --no-wait,无需等待导入结果;
    • --role-name <ROLE_NAME>,在不同于源码库名字时,该角色应有的名字;
    • --status,检查给定 github_user/github_repo 的最新导入请求状态;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role setup,为 Ansible Galaxy 角色设置自 GitHub 或 Travis 的集成;

    • --list,列出咱们的所有集成;
    • --remove <REMOVE_ID>,删除与所提供 ID 值相匹配的集成。请使用 --list 查看 ID 值;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -p, --roles-path,包含角色的目录路径。默认路径是通过 DEFAULT_ROLES_PATH 配置的第一个可写路径: {{ ANSIBLE_HOME ~ "/roles:/usr/share/ansible/roles:/etc/ansible/roles" }} 。该参数可指定多次;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role info,打印出某个已安装角色的详细信息,以及 galaxy API 提供的信息;

    • --offline,在创建角色时不查询 Galaxy API;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -p, --roles-path,包含角色的目录路径。默认路径是通过 DEFAULT_ROLES_PATH 配置的第一个可写路径: {{ ANSIBLE_HOME ~ "/roles:/usr/share/ansible/roles:/etc/ansible/roles" }} 。该参数可指定多次;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。
  • role install,安装一或多个角色(ansible-galaxy role install),或一或多个专辑(ansible-galaxy collection install)。咱们可传入一个列表(角色或专辑的),也可以使用下面所列出的文件选项(二者互斥)。如果咱们传入了个列表,则其可以是一个名称(将通过 galaxy API 和 github 下载),也可以是一个本地 tar 压缩文件。

    • --force-with-deps,强制覆盖现有角色及其依赖关系;
    • --timeout <TIMEOUT>,对 Galaxy 服务器进行操作的等待时间,默认为 60 秒;
    • --token <API_KEY>, --api-key <API_KEY>,Ansible Galaxy 的 API 密钥,可在 https://galaxy.ansible.com/me/preferences 处找到;
    • -c, --ignore-certs,忽略 SSL 证书验证错误;
    • -f, --force,强制覆盖现有角色或专辑;
    • -g, --keep-scm-meta,打包角色时,使用 tar 而不是 SCM 的归档选项;
    • -i, --ignore-errors,忽略安装过程中的错误,并继续下一指定角色;
    • -n, --no-deps,不要下载列为依赖项的那些角色;
    • -p, --roles-path,包含角色的目录路径。默认路径是通过 DEFAULT_ROLES_PATH 配置的第一个可写路径: {{ ANSIBLE_HOME ~ "/roles:/usr/share/ansible/roles:/etc/ansible/roles" }} 。该参数可指定多次;
    • -r <REQUIREMENTS>, --role-file <REQUIREMENTS>,包含待安装角色列表的文件;
    • -s <API_SERVER>, --server <API_SERVER>,Galaxy API 服务器的 URL。

环境

可以指定以下环境变量。

  • ANSIBLE_CONFIG - 覆盖默认的 ansible 配置文件。

ansible.cfg 中的大多数选项,都有更多可用选项。

文件

  • /etc/ansible/ansible.cfg - 若存在,就会用到的配置文件;
  • ~/.ansible.cfg - 用户配置文件,会覆盖存在的默认配置。

(End)

(End)

Last change: 2025-01-19, commit: 9b3644f

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。