问题标签 [ansible-inventory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4929 浏览

amazon-web-services - Ansible Dynamic Inventory 无法获取最新的 ec2 信息

我正在使用ec2.py动态库存来配置 ansible。我已放置ec2.pyin/etc/ansible/hosts文件并将其标记为可执行文件。我也有ec2.ini文件在/etc/ansible/hosts.

以上是我的ec2.ini文件

现在配置脚本如下

但是,当调用配置脚本时,第二个脚本会导致找不到主机。如果我ec2-configure.yml单独执行,并且 EC2 服务器已启动并运行,那么它能够找到并配置它。

我添加了wait_for以确保实例在ec2-configure.yml调用之前处于运行状态。

如果有人能指出我的错误,将不胜感激。谢谢

0 投票
1 回答
1692 浏览

python - 如何将 vars 设置为 ansible 库存?

在剧本中,我使用变量 {{excluded_service}}。我想从 python 运行 ansible playbook 并提供这个变量。而且我不能使用外部库存脚本来提供这个变量。我用来创建库存:

但我不明白我可以在哪里添加变量的值?

我的代码,适用于外部库存脚本:

0 投票
7 回答
28449 浏览

ansible - 重新加载 Ansible 的动态清单

我正在使用 Ansible 设置 EC2 实例并部署应用程序。有一个主机脚本收集标签相关的服务器和组信息。我想将这些动作作为一个单一的剧本来运行,所以

  1. 如果需要,将创建新实例
  2. 主机脚本加载清单(包括服务器的事实)
  3. 部署剧本有效

但是,库存会提前加载,因此如果在游戏期间创建/更新服务器,则没有服务器/组数据。我可以 1) 单独提供和部署剧本 2) 使用 add_host 技巧在服务器更新时模拟动态库存,但这些方法存在缺陷。

我可以强制 Ansible 重新加载库存吗?我的测试文件是: hosts脚本:

样品playbook.yml

我运行它ansible-playbook -i hosts playbook.yml -v并看到两个运行:

但我还没有找到加倍它的命令。

0 投票
0 回答
1391 浏览

python-2.7 - ****ansible.errors.AnsibleError:无法找到库存文件,请使用 -i 指定一个?****

****ansible.errors.AnsibleError:无法找到库存文件,请使用 -i 指定一个?****

我的脚本:

样品1.yml:

/etc/ansible/主机:

0 投票
3 回答
898 浏览

ansible - 显示主机的自定义名称

我有一本用于处理 EC2 实例的 Ansible 剧本。我正在使用动态清单 ( ec2.py ) 来获取我想要使用的实例组 ( hosts: tag_Service_Foo)。当我运行它时,它会产生如下输出:

但是,我可以从 Amazon 获取特定实例的“名称”标签(我这样做并将其存储在一个变量中,以便在剧本的几个部分中使用)。

有没有办法让 Ansible 在显示进度时将此字符串用作主机名?我希望看到更具描述性的内容(因为我没有记住 IP):

清单脚本的输出ec2.py如下所示(被截断;它很长)。

0 投票
1 回答
617 浏览

jenkins - 如何在 Ansible 清单之外的主机上运行播放?

我们有这 3 个 ansible-playbooks 和 Jenkins 工作:

  • 网络/部署应用
  • 应用程序/部署应用程序
  • db/deploy_app

每个 playbook 只在 2 个节点上运行,web-playbook 的清单只有 2 个主机,web01 和 web02,app-playbook 的清单只有 app01/app02。

现在我们要构建“无停机部署”,这意味着在部署 db01 之前必须关闭 app01 上的服务。

当 app01 甚至不在 db01/deploy_app playbook 的 Ansible 清单中时,如何在 Ansible 中运行 app01 的播放?

0 投票
2 回答
19416 浏览

ansible - 如何在 ansible 库存文件中定义哈希(dict)?

我可以在 group_vars/all 中定义如下哈希(字典):

但是对于我的生活,我无法弄清楚如何在主机文件下定义它

我知道这是不正确的,但我不知道正确的方法。有人可以启发我吗?

0 投票
1 回答
2233 浏览

ansible - 合并两个默认的 Ansible 主机文件,其中一个是 ec2.py?

我使用的 Ansible 是 AWS 和非 AWS 机器的混合环境。我想避免在命令行上传递主机。如何在 Ansible 中组合多个主机文件并将其设为默认值?Ansible 站点上的当前建议是使用 ec2.py 覆盖 /etc/ansible/hosts。这使我无法添加其他主机。谢谢。

0 投票
4 回答
3885 浏览

amazon-ec2 - Ansible EC2 动态库存最低 IAM 策略

有人想出通过 IAM 角色在ansibleec2.py上运行 EC2 动态清单脚本 ( )所需的最低 IAM 策略吗?

到目前为止,除了boto在 ansible 的官方文档中指定库的凭证之外,我还没有看到关于这个问题的具体参考,但是,在生产环境中,我很少使用密钥对从 EC2 实例访问 AWS 服务,而是我有接受在该案例场景中使用 IAM 角色。

我已经尝试过允许ec2:Describe*操作的策略,但对于脚本来说似乎还不够,因为它总是以Unauthorized operation.

你能帮帮我吗?

0 投票
3 回答
4174 浏览

ansible - Ansible:如何为主机设置序列号

我正在尝试在 EC2 上配置主机,因此我正在使用 Ansible Dynamic Inventory。

我想做的是;为每个节点设置序列号。

例如:Zookeeper 的“myid”配置

Zookeeper 要求每个节点都有名为“myid”的序列号;hostA 为 1,hostB 为 2,hostC 为 3,依此类推。

这是我的剧本中将“myid”文件复制到主机的部分。

myid.j2应该是下面这样的。

问题是:变量“{{ serial_number }}”应该是什么样的?