#ansible
#ansible
Вопрос:
Я пытаюсь создать новый Ansible playbook, который управляет некоторыми сервисами приложений.
Идея моей пьесы такова :
- Найдите службы для управления.
- Добавьте эти сервисы в массив.
- Перебирать этот массив, чтобы остановить и запустить мои разные службы.
Я сделал этот сборник пьес :
- hosts: MyHost
gather_facts: no
vars:
Services: []
tasks:
- name: "Search for service to manage"
find:
path: "/data/mgwroot/applications"
file_type: directory
patterns: '*{{ ELD }}*'
register: FoundServices
- name: "Add found services to array"
no_log: true
set_fact:
Services: "{{ Services [item.path | basename] }}"
with_items: "{{ FoundServices.files }}"
- name: "Display array content"
debug:
msg: "{{ Services }}"
- name: "- TASK A -"
shell: "echo {{ item.0 }} {{ item.1 }}"
with_nested:
- [ 'stop', 'start' ]
- [ "{{ Services }}" ]
- name: "- TASK B -"
shell: "echo {{ item.0 }} and {{ item.1 }}"
with_nested:
- ['stop', 'start']
- ['serviceA', 'serviceB']
И результат работает не так, как ожидалось 🙁 :
- » — TASK B -«, цикл которого из статического списка работает корректно, но
- » — TASK A -«, который выполняет цикл над моим динамическим массивом, не работает.
Это результат :
PLAY [MyHost] *************************************************************************************************************************************************************************
TASK [Search for service to manage] ******************************************************************************************************************************************************
Thursday 19 November 2020 13:25:46 0100 (0:00:00.109) 0:00:00.109 *****
ok: [MyHost]
TASK [Add found service to array] ********************************************************************************************************************************************************
Thursday 19 November 2020 13:25:48 0100 (0:00:01.260) 0:00:01.370 *****
ok: [MyHost] => (item=None)
ok: [MyHost] => (item=None)
ok: [MyHost]
TASK [Display array content] *************************************************************************************************************************************************************
Thursday 19 November 2020 13:25:48 0100 (0:00:00.058) 0:00:01.429 *****
ok: [MyHost] => {
"msg": [
"PREPRO_MVZV14_batch",
"PREPRO_MVZV14_tp"
]
}
TASK [- TASK A -] ************************************************************************************************************************************************************************
Thursday 19 November 2020 13:25:48 0100 (0:00:00.038) 0:00:01.467 *****
changed: [MyHost] => (item=[u'stop', u'PREPRO_MVZV14_batch', u'PREPRO_MVZV14_tp'])
changed: [MyHost] => (item=[u'start', u'PREPRO_MVZV14_batch', u'PREPRO_MVZV14_tp'])
TASK [- TASK B -] ************************************************************************************************************************************************************************
Thursday 19 November 2020 13:25:49 0100 (0:00:01.116) 0:00:02.583 *****
changed: [MyHost] => (item=[u'stop', u'serviceA'])
changed: [MyHost] => (item=[u'stop', u'serviceB'])
changed: [MyHost] => (item=[u'start', u'serviceA'])
changed: [MyHost] => (item=[u'start', u'serviceB'])
Ожидаемый результат :
- остановить PREPRO_MVZV14_batch
- запустите PREPRO_MVZV14_batch
- остановить PREPRO_MVZV14_tp
- запустите PREPRO_MVZV14_tp
Кто-нибудь может объяснить мне, что я делаю неправильно?
Спасибо за все!
Ответ №1:
Я нашел решение,
Замените — [ «{{ Services }}» ] на — «{{ Services }}»
..
🙂