Arhn - архитектура программирования

Как мне ссылаться на словарь? элементы в Ansible

Мне пришлось изменить playbook, потому что acl_profile_name может быть больше 1. Теперь я хочу сослаться на gama-ansible и пройти через - "*/rw/export/mobile/>" и - "*/rw/export/supplyChain/>":

acl_allow_subscribe:
  acl_profile_name: gama-ansible
    - "*/de/export/mobile/>"
    - "*/de/export/supplyChain/>" 

  acl_profile_name: beta-ansible
    - "*/uk/import/mobile/>"
    - "*/uk/import/supplyChain/>" 

ссылайтесь на них здесь:

- name: Add ACL Publish Exception
  solace_acl_subscribe_topic_exception:
    name: "{{item}}"
    acl_profile_name: "{{ item.value.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    topic_syntax: mqtt
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  loop: "{{acl_allow_subscribe}}"

Я получаю сообщение об ошибке. Ошибка: 'acl_profile_name' не определено \ n \ n

До того, как я изменил файлы yaml, он работал нормально и выглядел так:

 acl_profile_name: "gama-ansible"

 acl_allow_subscribe:
 - "*/de/export/mobile/>"
 - "*/de/export/supplyChain/>"

упоминается таким образом:

- name: Add ACL Subscribe Exception
  solace_acl_subscribe_topic_exception:
    name: "{{item}}"
    acl_profile_name: "{{ acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    topic_syntax: mqtt
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  loop: "{{acl_allow_subscribe}}"

Я попытался реализовать это таким образом (на основе первого комментария @gary lopez ниже), но получаю сообщение об ошибке:

на что я хочу сослаться: (примечание: - acl_profile_name: idocument под acl_allow_subscribe не имеет значений)

    acl_allow_subscribe:
      - acl_profile_name: gama-ansible
        values:
          - "*/de/export/mobile/>"
          - "*/de/export/supplyChain/>"
    
      - acl_profile_name: idocument
        values:

 

    acl_allow_publish:
      - acl_profile_name: gama-ansible
        values:
            - "*/uk /export/mobile/>"
            - "*/uk/export/mobile/>"
    
      - acl_profile_name: idocument
        values:
          - "*/de/idoc/>"
          - "*/de/idoc/>"

This is how I referenced it:

- name: Remove ACL Profile
  solace_acl_profile:
    name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    state: absent

- name: Add ACL Profile
  solace_acl_profile:
    name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    settings:
      clientConnectDefaultAction: allow
      
- name: Update ACL Profile
  solace_acl_profile:
    name: "{{item.0.acl_profile_name}}"
    msg_vpn: "{{ msg_vpn }}"
    settings:
      publishTopicDefaultAction: disallow

# PUBLISH
- name: Remove ACL Publish Exception
  solace_acl_publish_topic_exception:
    name: "{{item.1}}"
    acl_profile_name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    state: absent
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  loop: "{{acl_allow_publish}}" 

- name: Add ACL Publish Exception
  solace_acl_publish_topic_exception:
    name: "{{item.1}}"
    acl_profile_name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    topic_syntax: mqtt
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  with_subelements:
    - "{{ acl_allow_publish }}"
    - values

# SUBSCRIBE
- name: Remove ACL Subscribe Exception
  solace_acl_subscribe_topic_exception:
    name: "{{item.1}}"
    acl_profile_name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    state: absent  
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}" 
  with_subelements:
    - "{{ acl_allow_subscribe }}"
    - values
- name: Add ACL Subscribe Exception
  solace_acl_subscribe_topic_exception:
    name: "{{item.1}}"
    acl_profile_name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    topic_syntax: mqtt
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  with_subelements:
    - "{{ acl_allow_subscribe }}"
    - values

При ссылке он должен перебирать acl_profile_names и значения

15.10.2020

Ответы:


1

В вашем случае acl_allow_subscribe не является списком. Вы могли бы попробовать это таким образом

acl_allow_subscribe:
  - acl_profile_name: gama-insible
    values:
      - "*/de/export/mobile/>"
      - "*/de/export/supplyChain/>"

  - acl_profile_name: beta-ansible
    values:
      - "*/uk/import/mobile/>"
      - "*/uk/import/supplyChain/>"

и упоминается таким образом

- name: Add ACL Publish Exception
  solace_acl_subscribe_topic_exception:
    name: "{{item.1}}"
    acl_profile_name: "{{ item.0.acl_profile_name }}"
    msg_vpn: "{{ msg_vpn }}"
    topic_syntax: mqtt
    semp_version: "{{ ansible_facts.solace.about.api.sempVersion }}"
  with_subelements:
    - "{{ acl_allow_subscribe }}"
    - values
15.10.2020
  • К сожалению, это не сработало. Я отредактирую вопрос, чтобы показать, что я сделал 17.10.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..