Руководство по Cisco Meraki
- Использование модулей 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 не имеют способа прямого слияния для манипулирования данными. Однако, плейлист может использовать несколько задач для разделения списка в месте, где необходимо вставить правило, а затем снова объединить их с добавленным новым правилом. Этапы включают в себя следующие действия:
-
- Создайте пустые списки «передняя» и «задняя».
-
vars: - front_rules: [] - back_rules: []
-
- Получите существующие правила брандмауэра из 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}}'
-
-
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
-
-
- Разделите правила на два списка. Это предполагает, что существующий набор правил имеет длину 2 правила.
-
- set_fact: front_rules: '{{front_rules + [ original_ruleset[:1] ]}}' - set_fact: back_rules: '{{back_rules + [ original_ruleset[1:] ]}}'
-
- Объедините правила с новым правилом посередине.
-
- set_fact: new_ruleset: '{{front_rules + new_rule + back_rules}}'
-
- Загрузите новый набор правил в 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