我试图让一些非常基本的东西在 OS X 上使用 Ansible 2.1.1.0。
我的目标都是 Ubuntu 16.04,所以我要做的第一件事就是让它安装 python2.7,因为没有它,即使“ping”也不起作用。
我在以下位置设置了这样的库存servers
:
[dbservers]
192.168.x.x set_hostname=db
[webservers]
[servers:children]
dbservers
webservers
这是我的游戏init.yml
:
---
- hosts: servers
gather_facts: False
become: yes
tasks:
- name: apt-get update
raw: /usr/bin/apt-get update -qq
- name: Install python 2.7
raw: test -e /usr/bin/python || /usr/bin/apt-get install -q -y python2.7 python-simplejson
dbservers
我通过指定组来检查它是否选择了正确的主机,该组是servers
(无论如何只有 1 个)的子集,这对我来说看起来正确:
# ansible dbservers -i servers --list-hosts
hosts (1):
192.168.x.x
我正在运行的命令是这样的:
# ansible dbservers -i servers init.yml
那是我得到错误的时候ERROR! Missing target hosts
。我不明白它如何同时拥有主机和没有主机!我究竟做错了什么?
您正在尝试
playbook
使用ansible
命令运行 a 。ansible
命令用于add-hoc
命令。尝试使用
ansible-playbook
命令执行你的剧本:您的主机文件中有一个
[servers:children]
部分,但没有[servers]
部分。所以当你设置时hosts: servers
没有匹配的组。