Рейтинг:1

Как зациклить переменную массива в Ansible

флаг eg

У меня есть задача ниже, и я не могу добавить цикл для переменной массива. ShopID определяется как массив внутри group_vars. Моя цель - вызывать каждую переменную одну за другой.

- имя: создавать каталоги с необходимым разрешением
  файл:
    путь: "{{ item.dest }}"
    режим: "{{item.mode}}"
    владелец: "{{ item.owner }}"
    группа: "{{ item.group }}"
    рекурсия: да
    состояние: каталог
  петля:
  - { Dest: '/home/{{ ShopID }}', режим: '0755', владелец: 'root', группа: 'root' }
  - { Dest: '/home/{{ ShopID }}/.ssh', режим: '0700', владелец: "{{ ShopID }}", группа: "{{ ShopID }}" }
  - { Dest: '/home/{{ ShopID }}/to_xxx', режим: '0777', владелец: "{{ ShopID }}", группа: "{{ ShopID }}" }
  - { пункт назначения: '/home/{{ ShopID }}/to_xxx/known_customers', режим: '0777', владелец: "{{ ShopID }}", группа: "{{ ShopID }}" }

Вывод для вышеуказанной задачи выглядит примерно так:

не удалось: [file.xyz.com] (item={'dest': '/home/[77712351, 77712352]/.ssh', 'режим': '0700', 'владелец': [77712351, 77712352], ' group': [77712351, 77712352]}) => {"ansible_loop_var": "item", "changed": false, "gid": 0, "group": "root", "item": {"dest": "/home/[77712351, 77712352]/.ssh", "группа": [77712351, 77712352], "режим": "0700", "владелец": [77712351, 77712352]}, "режим": "0755" , "msg": "chown failed: не удалось найти пользователя [77712351, 77712352]", "owner": "root", "path": "/home/[77712351, 77712352]/.ssh", "size" : 4096, "состояние": "каталог", "uid": 0}
Рейтинг:1
флаг br

Поместите задачу в файл, например.

оболочка> кошка create_dir.yml
- имя: создавать каталоги с необходимым разрешением
  отлаживать:
    сообщение: |
      путь: "{{ item.dest }}"
      режим: "{{item.mode}}"
      владелец: "{{ item.owner }}"
      группа: "{{ item.group }}"
      рекурсия: да
      состояние: каталог
  петля:
    - {назначение: '/home/{{ ShopID }}', режим: '0755', владелец: 'root', группа: 'root'}
    - {dest: '/home/{{ ShopID }}/.ssh', режим: '0700', владелец: "{{ ShopID }}", группа: "{{ ShopID }}"}
    - {dest: '/home/{{ ShopID }}/to_xxx', режим: '0777', владелец: "{{ ShopID }}", группа: "{{ ShopID }}"}
    - {dest: '/home/{{ ShopID }}/to_xxx/known_customers', режим: '0777', владелец: "{{ ShopID }}", группа: "{{ ShopID }}"}

и включить его в цикл

оболочка> кошка test-496.yml
- хосты: локальный
  вары:
    ShopID_list: [77712351, 77712352]
  задачи:
    - include_tasks: create_dir.yml
      цикл: "{{ ShopID_list }}"
      loop_control:
        loop_var: Идентификатор магазина

дает

ЗАДАЧА [Создать каталоги с необходимыми правами] ****************************

  сообщение: |-
    путь: "/home/77712351"
    режим: "0755"
    владелец: "корень"
    группа: "корень"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712351/.ssh"
    режим: "0700"
    владелец: "77712351"
    группа: "77712351"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712351/to_xxx"
    режим: "0777"
    владелец: "77712351"
    группа: "77712351"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712351/to_xxx/known_customers"
    режим: "0777"
    владелец: "77712351"
    группа: "77712351"
    рекурсия: да
    состояние: каталог

ЗАДАЧА [Создать каталоги с необходимыми правами] ****************************

  сообщение: |-
    путь: "/home/77712352"
    режим: "0755"
    владелец: "корень"
    группа: "корень"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712352/.ssh"
    режим: "0700"
    владелец: "77712352"
    группа: "77712352"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712352/to_xxx"
    режим: "0777"
    владелец: "77712352"
    группа: "77712352"
    рекурсия: да
    состояние: каталог

  сообщение: |-
    путь: "/home/77712352/to_xxx/known_customers"
    режим: "0777"
    владелец: "77712352"
    группа: "77712352"
    рекурсия: да
    состояние: каталог

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.