Ansible + Cisco идемпотентность

Поэтому я провожу некоторое тестирование с Ansible для управления устройствами Cisco (в частности, 3750 в данном случае). Я могу добавить свои VLAN и Loopbacks без проблем.

Просто пытаюсь заставить Ansible остановить регистрацию изменения в задаче, когда существует Loopback или VLAN.

Прямо сейчас моя игра выглядит так:

    - name: Set the IP for Loop 0
  ios_config:
    provider: "{{ connection }}"
    lines:
      - description AnsibleLoop0
      - ip address 8.8.8.8 255.255.255.0
    before:
      - interface Loopback0
    match: exact

Каждый раз, когда запускается эта задача, Ansible регистрирует ее как изменение:

changed: [switch] => {"changed": true, "updates": ["interface Loopback0", "description AnsibleLoop0", "ip address 8.8.8.8 255.255.255.0"], "warnings": []}

Я пробовал разные match типы (line, exact) но безрезультатно. Может быть, я здесь что-то не так.

Я думал, что если бы у меня была пьеса, вставьте строки в точности так, как они будут отображаться в show run это не зарегистрирует это как изменение?

Любая помощь здесь будет оценена!

2 ответа

Вы можете столкнуться с этой проблемой:

https://github.com/ansible/ansible/pull/24345

Сохраняете ли вы изменения конфигурации каждый раз на устройстве Cisco, используя save: "yes” в твоей пьесе? У меня была та же проблема, и я сохранял конфигурацию каждый раз, когда запускалась книга воспроизведения. Установка этого в no просто для проверки, после первого запуска отчетов changed=True последовательные прогоны сообщат changed=False по Ansible.

Я знаю, что эта тема была давно закрыта, но у меня была такая же проблема, и я нашел, что ее вызывает.

Я настраиваю интерфейсы L3, используя файл json в качестве источника, в котором я не осознавал, что использовал значение имени интерфейса в верхнем регистре, например: Loopback123

Это результат при использовании этого:

изменено: [NX-SPINE-2] => (item={'interface': 'Loopback123', 'ip': '123.1.2.8/32', 'description': 'Loopback interface for Ansible Testing'}) изменено: [NX-SPINE-1] => (item={'interface': 'Loopback123', 'ip': '123.1.2.7/32', 'description': 'Loopback interface for Ansible Testing'}) изменено: [NX-LEAF-3] => (item={'interface': 'Loopback123', 'ip': '123.1.2.5/32', 'description': 'Loopback interface for Ansible Testing'}) изменено: [NX-LEAF-2] => (item={'interface': 'Loopback123', 'ip': '123.1.2.4/32', 'description': 'Loopback interface for Ansible Testing'}) изменено: [NX-LEAF-4] => (item={'интерфейс': 'Loopback123', 'ip': '123.1.2.6/32', 'описание': 'Интерфейс обратной петли для тестирования Ansible'})

ОБЗОР ИГРЫ ******************************************************* ******************************************************* ******************************************************* NX-LEAF-1 : ok=2 изменено=1 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-LEAF-2 : ok=2 изменено=1 недоступно=0 не удалось=0 пропущено=0 спасено= 0 проигнорировано=0 NX-LEAF-3 : ok=2 изменено=1 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-LEAF-4 : ok=2 изменено=1 недоступно=0 не удалось=0 пропущено =0 спасено=0 проигнорировано=0 NX-SPINE-1 : ok=2 изменено=1 недоступно=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-SPINE-2 : ok=2 изменено=1 недоступно=0 не удалось = 0 пропущено = 0 спасено = 0 проигнорировано = 0

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

интерфейс loopback0 описание Управление — пиринг BGP

Как только я исправил имя интерфейса в нижнем регистре в исходном файле, это решило для меня проверку идемпотентности.

ok: [NX-LEAF-4] => (item={'interface': 'loopback123', 'ip': '123.1.2.6/32', 'description': 'Loopback interface for Ansible Testing'})ok: [NX-LEAF-3] => (item={'interface': 'loopback123', 'ip': '123.1.2.5/32', 'description': 'Loopback interface for Ansible Testing'})

ОБЗОР ИГРЫ ******************************************************* ******************************************************* ******************************************************* NX-LEAF-1 : ok=2 изменено=0 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-LEAF-2 : ok=2 изменено=0 недоступно=0 не удалось=0 пропущено=0 спасено= 0 проигнорировано=0 NX-LEAF-3 : ok=2 изменено=0 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-LEAF-4 : ok=2 изменено=0 недоступно=0 не удалось=0 пропущено =0 спасено=0 проигнорировано=0 NX-SPINE-1 : ok=2 изменено=0 недоступно=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 NX-SPINE-2 : ok=2 изменено=0 недоступно=0 не удалось = 0 пропущено = 0 спасено = 0 проигнорировано = 0

Надеюсь, поможет.

Ваше здоровье!

Другие вопросы по тегам