我正在尝试在 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
我通过指定组来检查它是否选择了正确的主机,该组是(无论如何只有 1 个)dbservers
的子集,对我来说这看起来是正确的:servers
# ansible dbservers -i servers --list-hosts
hosts (1):
192.168.x.x
我正在运行的命令是这样的:
# ansible dbservers -i servers init.yml
这时我收到错误ERROR! Missing target hosts
。我不明白它怎么能同时有主机和没有主机!我做错了什么?
答案1
您正在尝试playbook
使用ansible
命令运行。该ansible
命令用于add-hoc
命令。
尝试使用ansible-playbook
命令执行你的剧本:
ansible-playbook -i servers init.yml