gpt4 book ai didi

vagrant - 使用 Vagrant 和 Ansible 在本地主机上运行任务

转载 作者:行者123 更新时间:2023-12-01 00:42:47 27 4
gpt4 key购买 nike

首先,我看过很多类似标签的帖子,但没有任何效果。
我有一个现有的 Ansible 主机,我成功地使用它将软件部署到其他服务器。我想使用 Vagrant 设置一个测试环境来运行我现有的剧本而不做任何更改。

我在不同的服务器上安装了 Ansible 和 Vagrant,并复制了剧本、 list 和组/主机变量文件。

但是,当我运行 vagrant up 时它使用 Ansible(远程)配置程序调用 Vagrant 主机上的剧本,在针对主机运行时给出以下消息: localhost

PLAY [Set fact for later use] **************************************************
skipping: no hosts matched

剧本(摘录)如下所示:
- name: Set fact for later use
hosts: localhost
tasks:
- name: set number of hosts for later use
set_fact: num_hosts="{{ groups[tagname] | length }}"

我也试过:
- name: Set fact for later use
hosts: 127.0.0.1
connection: local
tasks:
- name: set number of hosts for later use
set_fact: num_hosts="{{ groups[tagname] | length }}"

我的静态库存(提取物)如下所示:
'# Ungrouped hosts, specify before any group headers.
localhost ansible_connection=local

我尝试过动态库存和 localhost 的各种组合/ 127.0.0.1在剧本和 list 文件中,但在 Vagrant 主机上总是跳过这一步。

最佳答案

将 localhost 添加到 ansible.limit 解决了我的问题
我每次 Vagrantfile 执行只启动一次配置,所以我使用

ansible.limit = "all,localhost"

如果您为每个 VM 启动 Ansible 配置,您可以使用类似
ansible.limit = "#{machine.vm.hostname},localhost"

限制键直接传递给 Ansible,Vagrant 无论如何设置它。如果未直接指定限制,它将被设置为当前的 VM 主机名,以便 Ansible 仅适用于当前配置的 VM。

关于vagrant - 使用 Vagrant 和 Ansible 在本地主机上运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com