Ansible playbook to te lnet переключатель из коммутатора для обновления маршрута * stati c - PullRequest
0 голосов
/ 14 апреля 2020

У нас есть 2 специализированных поставщика, которые разрешают соединения между двумя центрами обработки данных / сетями. Когда один поставщик временно недоступен, мы должны изменить отображение маршрута stati c в обоих коммутаторах.

Ситуация 1: Сразу после отключения

enter image description here

Ситуация 2: Когда состояние c отображение маршрута необходимо изменить на Коммутаторе A enter image description here

Для достижения Ситуация 2 у нас,

$ telnet Switch_A
> no ip route  1.1.1.0 255.255.255.0 20.1.1.1
> add ip route 1.1.1.0 255.255.255.0 30.1.1.1

Ситуация 3: Когда состояние c необходимо изменить отображение маршрута на коммутаторе B enter image description here

Для достижения Ситуация 3 мы делаем,

$ telnet Switch_A 
> telnet Switch_B
>> no ip route  2.2.2.0 255.255.255.0 20.1.1.2
>> add ip route 2.2.2.0 255.255.255.0 30.1.1.2

Здесь я должен набрать lnet, чтобы переключить B изнутри переключателя A, потому что поставщик Y отключен.

Я написал следующую книгу, но она дает мне ошибку. Подскажите пожалуйста как мне этого добиться используя ansible. Я не могу использовать s sh.

- name: SHOW VERSION 
  hosts: switch_A
  connection: local
  gather_facts: false
  tasks:
    - name: show version
      telnet:
        user: userA
        password: *****
        login_prompt: "Username: "
        prompts:
        - '[>|#]'
        command:
          - terminal length 0
          - show version
          - telnet:
              host: 30.1.1.2 // switchB
              user: userB
              password: *****
              login_prompt: "login: "
              prompts:
              - '[>|#]'
              command:
                - terminal length 0
                - show version

Ошибка, которую я получаю:

TASK [show version] *****************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TypeError: unsupported operand type(s) for +: 'dict' and 'str'
fatal: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
...