Estou tentando obter algumas coisas muito básicas trabalhando com Ansible 2.1.1.0 no OS X.
Meus alvos são todos Ubuntu 16.04, então a primeira coisa que tenho que fazer é instalar o python2.7, pois sem isso nem o 'ping' funcionará.
Eu tenho um inventário configurado assim em servers
:
[dbservers]
192.168.x.x set_hostname=db
[webservers]
[servers:children]
dbservers
webservers
E esta é a minha peça em 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
Eu verifico se está selecionando os hosts corretos especificando o dbservers
grupo, que é um subconjunto de servers
(existe apenas 1 de qualquer maneira), que parece certo para mim:
# ansible dbservers -i servers --list-hosts
hosts (1):
192.168.x.x
O comando que estou executando é este:
# ansible dbservers -i servers init.yml
e é aí que recebo o erro ERROR! Missing target hosts
. Não entendo como pode ter hosts e nenhum host ao mesmo tempo! O que estou fazendo errado?
Você está tentando executar um
playbook
com oansible
comando. Oansible
comando é paraadd-hoc
comandos.Tente executar seu playbook com o
ansible-playbook
comando:Você tem uma
[servers:children]
seção, mas nenhuma[servers]
seção em seu arquivo hosts. Portanto, quando você definehosts: servers
, não há grupo correspondente.