Невозможно выполнить в Packer Build
В настоящее время я экспериментирую с развертыванием, используя локальную инициализацию Packer's Ansible, и по какой-то странной причине он не выполняет задачи из playbook. Packer, после установки предварительных требований для Ansible, загружает следующее:
Инвентарный файл ("хосты")
[localhost]
localhost ansible_connection=local
И файл playbook ("local.yml"):
---
- hosts: localhost
connection: local
become: yes
become_method: sudo
tasks:
- name: Making sure that ansible is actually executing this playbook
shell: echo "hello world"
- name: install packages
package: name={{ item }} state=present
with_items:
- nginx
- git
- curl
- libmysqlclient-dev
- libmysqlclient18
- mysql-common
- nodejs
- tcpdump
Вывод выглядит следующим образом (запуск Ansible для экземпляра Ubuntu 14.04):
amazon-ebs: Executing Ansible: cd /tmp/packer-provisioner-ansible-local && ANSIBLE_FORCE_COLOR=1 PYTHONUNBUFFERED=1 ansible-playbook /tmp/packer-provisioner-ansible-local/local.yml -c local -i /tmp/packer-provisioner-ansible-local/hosts
==> amazon-ebs: Stopping the source instance...
==> amazon-ebs: Waiting for the instance to stop.
Как видите, выход Ansible отсутствует, и я предполагаю, что должен получить (кто-то поправит меня, если я ошибаюсь).
Я сделал ручной запуск пьесы, которая сработала успешно. На данный момент, я не уверен, что я что-то упустил или нет.
1 ответ
Как оказалось, проблема заключалась в том, что у меня была команда перезагрузки, выполняемая до запуска ansible.
"sudo apt-get -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' -y upgrade",
"sudo chmod -R o+rx /usr/local/lib/python2.7/dist-packages",
"sudo shutdown -r now"
]
}, {
"type": "ansible-local",
"inventory_file": "hosts",
"playbook_file": "local.yml"
}]
Это означало, что экземпляр был перезагружен сразу после запуска Ansible.