#ansible
#ansible
Вопрос:
привет, я пытаюсь выполнить задание playbook, которое выглядит следующим образом:
- name: task of tasks
hosts: localhost
vars:
os_project: "supercoolproject_ng"
os_tenant: "supercooltenant"
tasks:
- name: Create OS instance
hosts: localhost
vars:
openstack:
state: present
locality: ng
project: "{{ os_project }}"
tenant: "{{ os_tenant }}"
zone: row-r
image: debian-10-amd64
security_groups:
- base
server_group: wobani-servergroup
instances:
wobani01: t1.4c4r50d
vars_files:
- "{{ secrets_file }}"
roles:
- adm_openstack_deploy_instance
Я ожидаю, что это будет работать так:
- name: Create OS instance
hosts: localhost
vars:
openstack:
state: present
locality: ng
project: supercoolproject_ng
tenant: supercooltenant
Реальность выглядит намного хуже, чем я ожидал:
ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>
The error appears to be in '/ansible/playbooks/deploy.yml': line 9, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
tasks:
- name: Create OS instance
^ here
Я попытался debug: msg=
использовать те переменные, которые я указал в начале, и они работают и показывают эти переменные. Но когда я использую его при tasks > vars > "{{ os_project }}"
сбое.
Причина, по которой я пытаюсь это сделать, заключается в том, что я повторяю их tasks
в нескольких средах, таких как locality и availability_zone (зона), и все эти задачи используют одно и то же имя клиента и одно и то же имя проекта. Основная причина заключалась в том, чтобы упростить настройку playbook для каждого отдельного экземпляра и не повторять клиента и проект при написании с нуля.
Спасибо за любые советы.
Комментарии:
1. Почему у вас есть
hosts
определение подtasks
? Если у вас нет никаких «задач», которые нужно выполнить, вы можете пропустить этот раздел.