Ansible 集合 文档 提供了多种安装集合的方法。主要重点是安装 来自 Ansible Galaxy。
但是,我想从内部 Web 服务器托管和安装构建的集合 (tar.gz)。
此时,我对自托管 Galaxy 服务器或从 git 存储库安装集合不感兴趣(我不想处理权限问题)。
有没有办法在使用时指定一个url作为采集源
ansible-galaxy collection install
.
也就是说,这个可以吗?
$ ansible-galaxy collection install http://example.com/collection-X.X.X.tar.gz
我可以在
requirements.yml
中指定 url 路径吗?
这可以直接在命令行和需求文件中完成。
ansible-galaxy
支持使用 从构建 (tar.gz) 安装集合
$ ansible-galaxy install <collection.tar.gz>
如果集合托管在 Web 服务器上,则可以将源传递给命令
$ ansible-galaxy install http://example.com/collection-X.X.X.tar.gz
Downloading http://example.com/collection-X.X.X.tar.gz to <tmp directory>
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Installing 'collection:X.X.X' to '<collection folder>'
Ansible 集合可以使用需求文件安装。
文档将
url
列为集合条目的 type
键支持的值。
因此要安装托管在的集合
http://example.com/collection-X.X.X.tar.gz
将以下条目添加到
collections
需求文件的关键
---
# requirements.yml
collections: # Note: all collections must be listed under this key
- name: <namespace.collection>
type: url
source: http://example.com/collection-X.X.X.tar.gz
并使用
安装 $ ansible-galaxy collection install -r requirements.yml
Starting galaxy collection install process
Process install dependency map
Downloading http://example.com/collection-X.X.X.tar.gz to <tmp directory>
Starting collection install process
Installing 'namespace.collection:X.X.X' to '<collections directory>'
namespace.collection:X.X.X was installed successfully
可以指定
version
键,但提供的值必须与
档案名称。
---
# requirements.yml
collections: # Note: collections must be listed under this key
- name: <namespace.collection>
type: url
version: X.Y.Z # this will fail. value must be X.X.X
source: http://example.com/collection-X.X.X.tar.gz