我想在OS X上使用Ansible 2.1.1.0来获得一些非常基本的东西。
我的目标都是Ubuntu 16.04,所以我要做的第一件事就是安装python2.7,因为即使是“ping”也不行。
我有一个在servers上这样设置的清单:
[dbservers] 192.168.xx set_hostname=db [webservers] [servers:children] dbservers webservers
这是我在init.yml中的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组来select正确的主机,这是servers一个子集(反正只有一个),这对我来说是正确的:
# ansible dbservers -i servers --list-hosts hosts (1): 192.168.xx
我正在运行的命令是这样的:
# ansible dbservers -i servers init.yml
这就是当我得到错误ERROR! Missing target hosts ERROR! Missing target hosts 。 我不明白怎么可以有主机,没有主机在同一时间! 我究竟做错了什么?
你正在试图用一个ansible命令来运行一个playbook 。 ansible命令是用于add-hoc命令的。
尝试使用ansible-playbook命令执行你的剧本:
ansible-playbook -i servers init.yml
您的hosts文件中有[servers:children]部分,但没有[servers]部分。 所以当你设置hosts: servers没有匹配的组。