标签: ansible-inventory

模式是否不适用于 ansible-playbook 和 --limit?

我想将 ansible 运行限制为所有不在 windows 组中的网络服务器。我在创建新组时完成了这项工作:

[test]
webservers:!windows
Run Code Online (Sandbox Code Playgroud)

并像这样运行它:

ansible-playbook -i inventories/staging/ site.yml --limit test
Run Code Online (Sandbox Code Playgroud)

但是当我试图避免组定义并将所有内容放入限制语句时,它失败了!windows 事件未找到

ansible-playbook -i inventories/staging/ site.yml --limit "webservers:!windows" 
Run Code Online (Sandbox Code Playgroud)

这是不支持还是我有什么问题?

ansible ansible-2.x ansible-inventory

1
推荐指数
1
解决办法
749
查看次数

无法从 ansible 的清单文件中选择特定主机

我完成了一个直接使用同步命令在两台服务器之间传输文件的教程,我正在尝试将文件从源传输到目标,其中源将有 1 个服务器,目标将在清单文件中拥有多个服务器,如下所示:

[source]
server_1

[destination]
server_2
server_3
server_4
Run Code Online (Sandbox Code Playgroud)

并根据特定条件,我将选择“同步推送”来传输文件的服务器。但是我尝试了很多方法来提取服务器,但我什至无法选择主机:

-hosts: "{{ groups['destination'][0] }}"

-hosts: "{{destination.0}}"

-hosts: "{{destination[0]}}"
Run Code Online (Sandbox Code Playgroud)

这些都给我带来了以下错误:

有问题的行似乎是:

  • 主机:“{{目的地}}”
    ^此处

我们可能是错的,但这看起来可能是缺少引号的问题。当模板表达式括号开始值时,始终引用它们。例如:

with_items:
  - {{ foo }}
Run Code Online (Sandbox Code Playgroud)

应写为:

with_items:
  - "{{ foo }}"
Run Code Online (Sandbox Code Playgroud)

如何从 ansible playbook 的清单文件中选择目标服务器?

ansible ansible-2.x ansible-inventory

1
推荐指数
1
解决办法
51
查看次数

无法使用 win_ping ping 我的 Windows Server

当我尝试使用 ping 我的 Windows 实例时ansible windows -i hosts.ini -m win_ping,出现以下错误:

54.197.197.91 | UNREACHABLE! => {
"changed": false,
"msg": "plaintext: the specified credentials were rejected by the server",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)

我的hosts.ini文件看起来像:

[windows]
54.197.197.91

[windows:vars]
ansible_ssh_user=Administrator
ansible_ssh_pass=MyPassword123!
ansible_ssh_port=5985
ansible_connection=winrm
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我这样做了:

ansible-vault create secret.yml
Run Code Online (Sandbox Code Playgroud)

并在那里输入我的密码,如下所示:

win_initial_password: MyPassword123!
Run Code Online (Sandbox Code Playgroud)

然后,我的hosts.ini文件看起来像:

[windows]
54.197.197.91

[windows:vars]
ansible_ssh_user=Administrator
ansible_ssh_pass={{ win_initial_password }}
ansible_ssh_port=5985
ansible_connection=winrm
Run Code Online (Sandbox Code Playgroud)

当我尝试 ping 时,出现以下错误:

54.197.197.91 | FAILED! => {
"failed": true,
"msg": "the field 'password' has an invalid value, which …
Run Code Online (Sandbox Code Playgroud)

windows ansible ansible-inventory

0
推荐指数
2
解决办法
1万
查看次数

访问属于另一个组的角色的模板文件中的组变量

库存文件:

[1]
IP

[2]
IP

[1:vars]
foo=test
Run Code Online (Sandbox Code Playgroud)

如何访问foo将在组[2]上执行的角色变量?

ansible ansible-inventory

0
推荐指数
1
解决办法
5913
查看次数

EC2 外部清单脚本因 ImportError 而失败:没有名为 ansible.module_utils 的模块

我的 Mac 运行的是 macOS 10.13、python 2.7.13 和 3.6.2

Ansible 是 2.3.1.0 - http://prntscr.com/grjh34

当我尝试运行 EC2 外部清单脚本时,出现ImportError: No module named ansible.module_utils - http://prntscr.com/grjhoq

如何修复?

python boto ansible-inventory

0
推荐指数
1
解决办法
3062
查看次数

为什么 Ansible 无法解析我的 azure 动态清单配置文件?

我正在尝试为 Ansible 设置动态清单以与 Azure 一起使用,但我收到一些消息,因为 Ansible 无法解析我的 yaml 文件。

到目前为止我做了什么:

  1. 创建了 Azure 服务主体并将凭据添加到 /home/user/.azure/credentials (我知道他们建议将它们放在 /home/.azure/credentials 中,我尝试过这样做,但我的 Ansible 似乎在 /home 中查找它们/用户目录。

  2. 我将 python 插件(原始的、未经编辑的插件)及其 yaml 配置文件放置在 /etc/ansible/inventory_plugins 中。配置文件如下所示:

plugin: azure_rm

include_vm_resource_groups:

- vm_1197_rg

auth_source: auto
Run Code Online (Sandbox Code Playgroud)
  1. 使用以下命令测试功能:ansible all -m ping -i ./myazure_rm.yml

输出:

ansible 2.8.1 配置文件 = /etc/ansible/ansible.cfg 配置模块搜索路径 = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python模块位置 = /usr/lib/python2.7/site-packages/ansible 可执行文件位置 = /bin/ansible python 版本 = 2.7.5 (默认,2019 年 4 月 9 日,14:30:50) [GCC 4.8.5 20150623 ( Red Hat 4.8.5-36)] 使用 /etc/ansible/ansible.cfg 作为配置文件 由于清单源不存在或当前用户无法读取而跳过 azure_rm …

ansible ansible-inventory azure-rm

0
推荐指数
1
解决办法
4103
查看次数

将 groovy 列表转换为 Yaml

我正在寻找在 groovy 中转换列表

array = ['hostname1','hostname2','hostname3']
Run Code Online (Sandbox Code Playgroud)

转换为 Ansible inventory Yaml 格式,类似于

---
all:
  hosts:
     hostname1:
     hostname2:
     hostname3:
       
Run Code Online (Sandbox Code Playgroud)

欢迎任何建议。

groovy yaml ansible ansible-inventory

-1
推荐指数
1
解决办法
273
查看次数