Я использую Ansible для развертывания на Amazon EC2, и у меня есть ec2.py и ec2.ini, поэтому я могу получить список серверов из Amazon. У меня есть сервер на AWS помечен rvmdocker:production
и ansible all --list
возвращает свой тег, как ec2_tag_rvmdocker_production.
я также могу работать:Ansible не может разрешить тег EC2, если он указан в статическом инвентаре
ansible -m ping tag_rvmdocker_production`
и она работает. Но если у меня есть этот тег в статическом файле инвентаризации и выполнить команду:
ansible all -m ping -i production
возвращается:
tag_rvmdocker_production | UNREACHABLE! => {
"changed": false,
"msg": "ERROR! SSH encountered an unknown error during the connection. Werecommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue",
"unreachable": true
}
Вот мой файл производства инвентаризации:
[dockerservers]
tag_rvmdocker_production
Похоже анзибль не может разрешить tag_rvmdocker_production
, когда он находится в файле статической инвентаризации.
UPDATE
Я последовал совету ydaetskcoR и я теперь получаю новое сообщение об ошибке:
$ ansible-playbook -i production app.yml
ERROR! ERROR! production:2: Section [dockerservers:children] includes undefined group: tag_rvmdocker_production
Но я знаю, что тег существует, и, похоже, анзибль и ec2.py знают это:
$ ansible tag_rvmdocker_production --list
hosts (1):
12.34.56.78
Вот мое производство инвентаря:
[dockerservers:children]
tag_rvmdocker_production
И мой app.yml Playbook файл:
---
- name: Deploy RVM app to production
hosts: dockerservers
remote_user: ec2-user
become: true
roles:
- ec2
- myapp
В конце концов, я хотел бы быть в состоянии выполнить тот же сборник пьес против развития (ВМ на моем Mac), постановка, или производство , чтобы запустить среду. Моя мысль состояла в том, чтобы иметь статические файлы инвентаризации, указывающие на теги или группы на EC2. Я даже подхожу к этому правильно?
Что заставляет вас думать, что вы можете указывать экземпляры по именам тегов в статическом файле инвентаризации? – ydaetskcoR
Он смотрел в [docs] (http://docs.ansible.com/ansible/intro_dynamic_inventory.html#static-groups-of-dynamic-groups), как будто у меня мог быть файл статической инвентаризации с динамическими группами. Я совершенно новый для Ansible и EC2, хотя и, вероятно, неправильно понял его. –
Вы неправильно поняли. В этом примере показаны две динамические группы, называемые «tag_Name_staging_foo» и «tag_Name_staging_bar», а затем статическая группа под названием «staging», которая содержит обе динамические группы как дочерние элементы группы «staging». См. [Здесь] (http://docs.ansible.com/ansible/intro_inventory.html#groups-of-groups-and-group-variables) для примера групп групп вне динамических запасов. – ydaetskcoR