Я следил за этим примером playbook для создания стоечных серверов с использованием Ansible.
http://nicholaskuechler.com/2015/01/09/build-rackspace-cloud-servers-ansible-virtualenv/
Это прекрасно работает, но работает только на одном сервере за раз, поэтому я пытаюсь сделать его более динамичным, используя with_items для перебора количества серверов, которые я хочу построить.
tasks:
- name: Rackspace cloud server build request
local_action:
module: rax
credentials: "{{ credentials }}"
name: "{{ item }}"
flavor: "{{ flavor }}"
image: "{{ image }}"
region: "{{ region }}"
files: "{{ files }}"
wait: yes
state: present
networks:
- private
- public
with_items:
- server-app-01
- server-app-02
register: rax
Это создает серверы в порядке, но когда я пытаюсь добавить это в группу развертывания, используя метод в ссылке, я получаю сообщение об ошибке, как и ожидалось, поскольку теперь есть ключ «результаты». Я пробовал все способы попробовать и ориентируйтесь на это так, как я воспринимаю документацию, на которую ссылается:
- name: Add new cloud server to host group
local_action:
module: add_host
hostname: "{{ item.success.name }}"
ansible_ssh_host: "{{ item.success.rax_accessipv4 }}"
ansible_ssh_user: root
groupname: deploy
with_items: rax.results
(Я также пробовал много других способов нацеливания на это) Но я получаю «Одна или несколько неопределенных переменных: «объект списка» не имеет атрибута «rax_accessipv4»
Это урезанная версия объекта, который я получаю от rax через отладку. Этих серверов больше нет. http://pastebin.com/NRvM7anS
Может ли кто-нибудь сказать мне, где я ошибаюсь, я начинаю немного сходить с ума