Я пытаюсь заставить работать с Ansible 2.1.1.0 в OS X самые простые вещи.
Все мои цели - 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
команда. В ansible
команда предназначена для add-hoc
команды.
Попробуйте выполнить свою пьесу с помощью ansible-playbook
команда:
ansible-playbook -i servers init.yml
У тебя есть [servers:children]
раздел, но нет [servers]
в вашем файле hosts. Итак, когда вы устанавливаете hosts: servers
нет подходящей группы.