首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用现有的仓库文件在Ansible?

如何使用现有的仓库文件在Ansible?
EN

Server Fault用户
提问于 2017-10-13 11:12:27
回答 3查看 15.1K关注 0票数 8

我想导入现有的库存,我以前使用过的Ansible (独立的),包括group_vars和金库文件到Ansible (3.2.0)。

但是,一旦Vault文件发挥作用,它似乎就不起作用了。一旦我设置了Vault密码文件凭证并使用源类型“来源于一个项目”创建库存--我无法在“源详细信息”下选择Vault凭据。

当我手动将其放入并保存源时,同步会因以下错误而失败:

代码语言:javascript
运行
复制
 1.735 INFO     Updating inventory 10: TEST
    1.753 DEBUG    Using system install of ansible-inventory CLI: /usr/bin/ansible-inventory
    1.753 INFO     Reading Ansible inventory source: /var/lib/awx/projects/_6__ansible_master/inventories/test/hosts
    1.754 DEBUG    Using private credential data in '/tmp/awx_123_LXUj9p'.
    1.755 DEBUG    Using fresh temporary directory '/tmp/awx_proot_ZURWmR' for isolation.
    1.755 DEBUG    Running from `/var/lib/awx/projects/_6__ansible_master/inventories/test` working directory.
Traceback (most recent call last):
  File "/usr/bin/awx-manage", line 9, in <module>
    load_entry_point('awx==3.2.0', 'console_scripts', 'awx-manage')()
  File "/lib/python2.7/site-packages/awx/__init__.py", line 107, in manage
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 661, in handle
    return self.handle_noargs(**options)
  File "/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 1000, in handle_noargs
  File "/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 243, in load_inventory_source
  File "/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 179, in load
  File "/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 163, in command_to_json
RuntimeError: ansible-inventory failed (rc=4) with stdout:

stderr:
ERROR! Attempting to decrypt but no vault secrets found

我还尝试创建一个ansible_vault文件,并将变量"vault_password_file“指向它--但是这也不起作用(抱怨它找不到保险库密码文件)。

以前有人遇到过这种情况吗?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2017-10-27 08:38:23

所以看起来这更像是一个实现问题。根据RedHat,不建议将库文件与库存保持在一起,因为这意味着每次库存同步运行时它都会解密该文件。

我现在解决这个问题的方法是在剧本中使用"vars_files“。看起来是这样的:

代码语言:javascript
运行
复制
  # Secrets
  vars_files:
    - '../../secrets/{{ tower_env }}/vault.yml'

在the中,我传入tower_env变量,例如"dev“或"qa",然后当剧本运行时解密相应的金库文件,而不是同步库存。

票数 6
EN

Server Fault用户

发布于 2018-10-16 15:43:11

有两件事情你正在尝试去做,它们没有得到支持(至少现在是这样):

  • 在库存输入时解密您的机密
  • 使用ansible-vault加密整个文件,而不是变量

这里的术语有点差,但是在这些文档中的“单加密变量”一节中,我有时会将这些内联变量称为内联变量。

https://docs.ansible.com/ansible/latest/user_指南/剧本_vault.html

Ansible现在支持在库存解析过程中移动这些内联变量。这种格式也同样安全,在引擎盖下也是相同的算法。加密变量的名称将公开给访问您的源代码管理的人员(这可能是合理的),但是您的值将被加密。

现在,使用该语法将值存储在.yml变量文件中的group_vars/host_vars/文件夹下。您应该发现Tower内部的库存同步是成功的(不使用任何保险库凭据),当您导航到组或主机时,您会看到变量的加密形式。

当您运行一个剧本(塔中的工作模板),然后附加一个保险库凭证在那个时候。这会将加密延迟到实际需要时的运行时上下文。

示例库存文件结构:

https://github.com/AlanCoding/Ansible-inventory-file-examples/tree/master/vault/single_变量_文件

另外,正如另一条注释所指出的,您可以将完整文件加密或内联加密变量放在文件夹结构中的源代码控制中,这将由Ansible获取,并通过附加到工作模板的保险库凭据进行解密。

票数 5
EN

Server Fault用户

发布于 2018-10-16 22:27:07

好的-经过调查,我可以承认,在2.6.5版本中,目前没有办法这样做,原因如下:

  • 可以在host_vars或group_vars中任意加密变量。
  • 拱顶-密码完全是由以下几种方式来完成的:

-- vault-password-file参数

-- ask-vault-pass,已被--vault-id=@prompt取代

如代码所述,从第220行到这里

我们需要的是另一种提供密码的可能性,例如通过一个组变量提供目前不可能的。

这意味着,Github上的布格波特不会被其他东西解决/替换。IMHO它仍然被所有其他线程所发现。我将继续这个github错误线程。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/878320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档