首先,我看到了很多类似标签的帖子,但都没有起作用。我有一个现有的Ansible主机,我成功地使用它将软件部署到其他服务器。我想使用Vagrant设置一个测试环境,在不做任何更改的情况下运行我现有的剧本。
我已经在不同的服务器上安装了Ansible和Vagrant,并复制了playbook、inventory和group/host vars文件。
但是,当我使用Ansible (远程)配置器在Vagrant主机上运行调用剧本的vagrant up时,它在针对主机运行时会给出以下消息:
PLAY [Set fact for later use] **************************
我正在使用ansible一次对多个服务器运行一个命令。我想忽略任何由于'"SSH Error: data could not be sent to remote host \"1.2.3.4\". Make sure this host can be reached over ssh"‘错误而失败的主机,因为列表中的一些主机将离线。我该怎么做呢?ansible中是否有默认选项可以忽略离线主机,而不会导致攻略失败?有没有在剧本之外的单个ansible cli参数中执行此操作的选项?
更新:我知道适用于ansible 2.7或更高版本,但我使用的是ansib
是否有可能创建这样的ansible清单,其中可以仅在一个组、两个组或所有组上运行任务,但在组内存在称为相同的主机? 组中主机的别名与攻略中的别名相同,但在每个组中,每个服务器和虚拟机的变量不同。更重要的是,要从本地主机连接到VM,需要使用服务器作为跳转主机。 场景应该或多或少看起来像这样:库存: [group1]
server
vm
[group2]
server
vm
[group3]
server
vm 攻略: - hosts: server
tasks:
- name: ....
- hosts: vm
tasks:
- name: ...
我有一个大约10台主机的清单,我的攻略运行在除了2台主机之外的所有主机上。我能够从Ansible Server无密码地登录到这2台主机。但是当我运行攻略或者甚至是一个简单的ping模块时,我得到了错误:
192.168.x.xxx | UNREACHABLE! => {
"changed": false,
"msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permis
我已经开发了一个自定义的ansible模块,它依赖于第三方的库PyYAML。然而,运行攻略会产生以下结果 ansible_module_my_module.py, line 5, in <module>
import yaml
ImportError: No module named yaml 我在ansible requirements.txt (https://github.com/ansible/ansible/blob/stable-2.8/requirements.txt)中看到PyYAML,因此我知道它在主机上安装/使用。我想知道有没有推荐的方法在远程机器上安装它
我正在对动态清单运行攻略,因此在运行攻略时过滤掉不同的主机并不是我所做的事情。
话虽如此,我还是基于'ansible_hostname‘的事实跳过/执行了某些任务。举个例子:
- name: say 'yes' to every server except server0[12]
shell: |
echo 'yes'
when: '"server01" not in ansible_hostname and
"server02" not in ansible_hostname