Spec-Zone.ru › Ansible 2.9

Модули сетевых ресурсов

В Ansible 2.9 были введены модули сетевых ресурсов для упрощения и стандартизации управления различными сетевыми устройствами.

  • Понимание модулей сетевых ресурсов
  • Состояния модулей сетевых ресурсов
  • Использование модулей сетевых ресурсов
  • Пример: Проверка того, что конфигурация сетевого устройства не изменилась

Понимание модулей сетевых ресурсов

Сетевые устройства разделяют конфигурацию на разделы (такие как интерфейсы, VLAN и т. д.), которые применяются к сетевой службе. Модули сетевых ресурсов Ansible используют это, позволяя вам настраивать подразделы или ресурсы в конфигурации сетевого устройства. Модули сетевых ресурсов обеспечивают согласованный опыт работы с различными сетевыми устройствами.

Состояния модулей сетевых ресурсов

Вы используете модули сетевых ресурсов, назначая состояние тому, что вы хотите, чтобы модуль делал. Модули ресурсов поддерживают следующие состояния:

merged
Ansible объединяет конфигурацию на устройстве с предоставленной конфигурацией в задаче.
replaced
Ansible заменяет подсекцию конфигурации на устройстве на предоставленную подсекцию конфигурации в задаче.
overridden
Ansible переопределяет конфигурацию на устройстве для ресурса с предоставленной конфигурацией в задаче. Будьте осторожны с этим состоянием, так как вы можете удалить доступ к устройству (например, путем переопределения конфигурации интерфейса управления).
deleted
Ansible удаляет подсекцию конфигурации на устройстве и восстанавливает любые значения по умолчанию.
gathered
Ansible отображает подробности ресурса, собранные с сетевого устройства, и доступные с помощью ключа gathered в результате.
rendered
Ansible отображает предоставленную конфигурацию в задаче в формате, родном для устройства (например, Cisco IOS CLI). Ansible возвращает эту отрендеренную конфигурацию в ключе rendered в результате. Обратите внимание, что это состояние не взаимодействует с сетевым устройством и может использоваться автономно.
parsed
Ansible анализирует конфигурацию из опции running_configuration в структурированные данные Ansible в ключе parsed в результате. Обратите внимание, что это не собирает конфигурацию с сетевого устройства, поэтому это состояние может быть использовано автономно.

Использование модулей сетевых ресурсов

В этом примере настраивается ресурс интерфейса L3 на устройстве Cisco IOS на основе различных настроек состояния.

- name: configure l3 interface
  ios_l3_interfaces:
    config: "{{ config }}"
    state: <state>

В следующей таблице показан пример того, как начальная конфигурация ресурса изменяется с помощью этой задачи для различных состояний.

Начальная конфигурация ресурса Конфигурация, предоставленная задачей (YAML) Окончательная конфигурация ресурса на устройстве
interface loopback100
 ip address 10.10.1.100 255.255.255.0
 ipv6 address FC00:100/64
config:
- ipv6:
 - address: fc00::100/64
 - address: fc00::101/64
 name: loopback100
merged
interface loopback100
 ip address 10.10.1.100 255.255.255.0
 ipv6 address FC00:100/64
 ipv6 address FC00:101/64
replaced
interface loopback100
 no ip address
 ipv6 address FC00:100/64
 ipv6 address FC00:101/64
overridden
Неправильный случай использования. Это удалит все интерфейсы с устройства
(включая интерфейс управления) за исключением
настроенного loopback100
deleted
interface loopback100
 no ip address

Модули сетевых ресурсов возвращают следующую информацию:

  • Состояние до - существующая конфигурация ресурса до выполнения задачи.
  • Состояние после - новая конфигурация ресурса, которая существует на сетевом устройстве после выполнения задачи.
  • Команды - любые настроенные на устройстве команды.
ok: [nxos101] =>
  result:
    after:
      contact: IT Support
      location: Room E, Building 6, Seattle, WA 98134
      users:
      - algorithm: md5
        group: network-admin
        localized_key: true
        password: '0x73fd9a2cc8c53ed3dd4ed8f4ff157e69'
        privacy_password: '0x73fd9a2cc8c53ed3dd4ed8f4ff157e69'
        username: admin
    before:
      contact: IT Support
      location: Room E, Building 5, Seattle HQ
      users:
      - algorithm: md5
        group: network-admin
        localized_key: true
        password: '0x73fd9a2cc8c53ed3dd4ed8f4ff157e69'
        privacy_password: '0x73fd9a2cc8c53ed3dd4ed8f4ff157e69'
        username: admin
    changed: true
    commands:
    - snmp-server location Room E, Building 6, Seattle, WA 98134
    failed: false

Пример: Проверка того, что конфигурация сетевого устройства не изменилась

В следующей книге задач используется модуль eos_l3_interfaces для сбора подмножества конфигурации сетевого устройства (только интерфейсы уровня 3) и проверяет, что информация верна и не изменилась. Эта книга задач передает результаты eos_facts непосредственно в модуль eos_l3_interfaces.

- name: Example of facts being pushed right back to device.
  hosts: arista
  gather_facts: false
  tasks:
    - name: grab arista eos facts
      eos_facts:
        gather_subset: min
        gather_network_resources: l3_interfaces

- name: Ensure that the IP address information is accurate.
  eos_l3_interfaces:
    config: "{{ ansible_network_resources['l3_interfaces'] }}"
    register: result

- name: Ensure config did not change.
  assert:
    that: not result.changed

См. также

Сетевые возможности в Ansible 2.9
Вводная статья в блоге о модулях сетевых ресурсов.
Глубокое погружение в модули сетевых ресурсов
Более глубокий презентация модулей сетевых ресурсов.

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

Spec-Zone.ru

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