Spec-Zone.ru › Ansible 2.11

Руководство по Cisco Meraki

  • Что такое Cisco Meraki?

    • Переключатели MS
    • Брандмауэры MX
    • Беспроводные точки доступа MR
  • Использование модулей Meraki
  • Общие параметры
  • Аутентификация Meraki
  • Возвращаемые структуры данных
  • Обработка возвращаемых данных
  • Слияние существующих и новых данных
  • Обработка ошибок

Что такое Cisco Meraki?

Cisco Meraki — это простая в использовании облачная платформа для сетевой инфраструктуры корпоративных сред. В то время как большинство сетевого оборудования использует командные интерфейсы (CLI) для настройки, Meraki использует удобную панель управления (Dashboard), размещённую в облаке Meraki. Не требуется локальное управляющее оборудование или программное обеспечение — только сетевая инфраструктура для работы вашего бизнеса.

Переключатели MS

Переключатели Meraki MS доступны в различных вариантах и форм-факторах. Переключатели Meraki поддерживают порты 10/100/1000/10000, а также технологию mGig Cisco для медной связи 2,5/5/10 Гбит/с. Доступны варианты с 8, 24 и 48 портами с PoE (802.3af/802.3at/UPoE) на многих моделях.

Брандмауэры MX

Брандмауэры MX Meraki поддерживают полную проверку пакетов на всех уровнях 3–7. Брандмауэры MX совместимы с различными технологиями VPN, включая IPSec, SSL VPN и простым в использовании AutoVPN Meraki.

Беспроводные точки доступа MR

Точки доступа MR — это точки доступа корпоративного класса с высокой производительностью для предприятий. Точки доступа MR имеют технологию MIMO и встроенное формирование луча для высокопроизводительных приложений. BLE позволяет разрабатывать расширенные приложения для определения местоположения без использования локальных аналитических платформ.

Использование модулей Meraki

Модули Meraki предоставляют удобный интерфейс для управления вашей средой Meraki с помощью Ansible. Например, подробности о настройках SNMP для конкретной организации можно получить с помощью модуля meraki_snmp <meraki_snmp_module>.

- name: Query SNMP settings
  meraki_snmp:
    api_key: abc123
    org_name: AcmeCorp
    state: query
  delegate_to: localhost

Можно запросить информацию о конкретном объекте. Например, модуль meraki_admin <meraki_admin_module> поддерживает

- name: Gather information about Jane Doe
  meraki_admin:
    api_key: abc123
    org_name: AcmeCorp
    state: query
    email: janedoe@email.com
  delegate_to: localhost

Общие параметры

Все модули Ansible Meraki поддерживают следующие параметры, которые влияют на взаимодействие с API Meraki Dashboard. Большинство из них должны использоваться только разработчиками Meraki, а не широкой публикой.

host

Имя хоста или IP-адрес Meraki Dashboard.

use_https

Указывает, следует ли использовать HTTPS для связи. (По умолчанию yes)

use_proxy

Использовать ли прокси-сервер для связи.

validate_certs

Определяет, следует ли проверять или доверять сертификатам. (По умолчанию yes)

Это общие параметры, используемые практически во всех модулях.

org_name

Имя организации, в которой нужно выполнить действия.

org_id

Идентификатор организации, в которой нужно выполнить действия.

net_name

Имя сети, в которой нужно выполнить действия.

net_id

Идентификатор сети, в которой нужно выполнить действия.

state

Общие указания о действии. query выполняет поиск. present создаёт или редактирует. absent удаляет.

Подсказка

Используйте параметры org_id и net_id при возможности. org_name и net_name требуют дополнительных вызовов API для получения значений идентификаторов. org_id и net_id будут работать быстрее.

Аутентификация Meraki

Для доступа к API Meraki Dashboard требуется ключ API. Ключ API можно сгенерировать на странице настроек организации. Каждый шаг в книге задач требует указания параметра api_key.

Функция «Vault» в Ansible позволяет хранить конфиденциальные данные, такие как пароли или ключи, в зашифрованных файлах вместо обычного текста в ваших книгах задач или ролях. Затем эти файлы Vault можно распространять или размещать в системе контроля версий. Для получения дополнительной информации см. Использование зашифрованных переменных и файлов.

API Meraki возвращает ошибку 404, если ключ API неверен. Он не предоставляет никакой конкретной ошибки, указывающей на неправильный ключ. Если вы получаете ошибку 404, проверьте ключ API в первую очередь.

Возвращаемые структуры данных

Meraki и связанные с ним модули Ansible возвращают большую часть информации в виде списка. Например, это возвращаемая информация модулем meraki_admin при запросе администраторов. Он возвращает список, даже если их всего один.

[
    {
        "orgAccess": "full",
        "name": "John Doe",
        "tags": [],
        "networks": [],
        "email": "john@doe.com",
        "id": "12345677890"
    }
]

Обработка возвращаемых данных

Поскольку данные ответов Meraki используют списки вместо должным образом проиндексированных словарей, при запросе данных для конкретной информации следует использовать определенные стратегии. Во многих ситуациях используйте функцию Jinja2 selectattr().

Слияние существующих и новых данных

Модули Meraki в Ansible не позволяют манипулировать данными. Например, может потребоваться вставить правило в середину набора правил брандмауэра. Ansible и модули Meraki не имеют способа прямого слияния для манипулирования данными. Однако, плейлист может использовать несколько задач для разделения списка в месте, где необходимо вставить правило, а затем снова объединить их с добавленным новым правилом. Этапы включают в себя следующие действия:

  1. Создайте пустые списки «передняя» и «задняя».
    vars:
      - front_rules: []
      - back_rules: []
    
  2. Получите существующие правила брандмауэра из Meraki и создайте новую переменную.
    - name: Get firewall rules
      meraki_mx_l3_firewall:
        auth_key: abc123
        org_name: YourOrg
        net_name: YourNet
        state: query
      delegate_to: localhost
      register: rules
    - set_fact:
        original_ruleset: '{{rules.data}}'
    
  3. Write the new rule. The new rule needs to be in a list so it can be merged with other lists in an upcoming step. The blank - puts the rule in a list so it can be merged.
    - set_fact:
        new_rule:
          -
            - comment: Block traffic to server
              src_cidr: 192.0.1.0/24
              src_port: any
              dst_cidr: 192.0.1.2/32
              dst_port: any
              protocol: any
              policy: deny
    
  4. Разделите правила на два списка. Это предполагает, что существующий набор правил имеет длину 2 правила.
    - set_fact:
        front_rules: '{{front_rules + [ original_ruleset[:1] ]}}'
    - set_fact:
        back_rules: '{{back_rules + [ original_ruleset[1:] ]}}'
    
  5. Объедините правила с новым правилом посередине.
    - set_fact:
        new_ruleset: '{{front_rules + new_rule + back_rules}}'
    
  6. Загрузите новый набор правил в Meraki.
    - name: Set two firewall rules
      meraki_mx_l3_firewall:
        auth_key: abc123
        org_name: YourOrg
        net_name: YourNet
        state: present
        rules: '{{ new_ruleset }}'
      delegate_to: localhost
    

Обработка ошибок

Модули Meraki в Ansible часто завершаются ошибкой, если указаны неправильные или несовместимые параметры. Однако, вероятно, будут ситуации, когда модуль принимает информацию, но Meraki API отклоняет данные. Если это произойдёт, ошибка будет возвращена в поле body для HTTP кода состояния 400.

API Meraki возвращает ошибку 404, если API ключ неверный. Он не предоставляет никакой конкретной ошибки, указывающей на некорректность ключа. Если вы получаете ошибку 404, сначала проверьте API ключ. Ошибки 404 также могут возникать, если указаны некорректные идентификаторы объектов (например, org_id).

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/scenario_guides/guide_meraki.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API