Книга: PyNEng
Назад: Дополнительные материалы
Дальше: Дополнительная информация

Задания

Задания

Все задания и вспомогательные файлы можно скачать в . Если в заданиях раздела есть задания с буквами (например, 5.2a), то лучше выполнить сначала задания без букв, а затем с буквами. Задания с буквами, как правило, немного сложнее заданий без букв и развивают или усложняют идею в соответствующем задании без буквы.

Например, в разделе есть задания 5.1, 5.2, 5.2a, 5.2b, 5.3, 5.3a. Сначала лучше выполнить задания 5.1, 5.2, 5.3, а затем 5.2a, 5.2b, 5.3a

Если задания с буквами получается сделать сразу, лучше делать их по порядку.

Задание 24.1

Создайте playbook task_24_1.yml, который выполняет такие задачи:

  • подключается к маршрутизаторам и выполняет команду sh arp
    • результат записывает в переменную sh_arp_output
  • отображает содержимое переменной sh_arp_output

Проверьте работу playbook на маршрутизаторах.

Задание 24.1a

Создайте playbook task_24_1a.yml, который выполняет такие задачи:

  • подключается к маршрутизаторам и выполняет команду sh arp
    • результат записывает в переменную sh_arp_output
  • отображает результат выполнения команды, в виде списка строк, где каждая строка это одна строка вывода команды

Проверьте работу playbook на маршрутизаторах.

Задание 24.1b

Создайте playbook task_24_1b.yml, который выполняет такие задачи:

  • подключается к маршрутизаторам и выполняет команды sh arp и sh ip int br
    • обе команды должны выполняться в одной задаче
    • результат записывает в переменную result
  • вторая задача отображает результат выполнения команд

Проверьте работу playbook на маршрутизаторах.

Задание 24.1c

Создайте playbook task_24_1c.yml, который выполняет такие задачи:

  • подключается к маршрутизаторам и выполняет команды sh arp и sh ip int br
    • обе команды должны выполняться в одной задаче
    • результат записывает в переменную result
  • вторая задача отображает результат выполнения команды sh arp
  • третья задача отображает результат выполнения команды sh ip int br

Вторая и третья задачи должны отображать вывод команды в виде списка строк.

Проверьте работу playbook на маршрутизаторах.

Задание 24.2

Создайте playbook task_24_2.yml, который выполняет такие задачи:

  • собирает все факты с маршрутизаторов
    • результат нельзя записывать в переменную
  • отображает содержимое факта об интерфейсах (в факте находится словарь с интерфейсами и их параметрами)

Проверьте работу playbook на маршрутизаторах.

Задание 24.2a

Создайте playbook task_24_2a.yml, который выполняет такие задачи:

  • собирает все факты с маршрутизаторов
    • результат нельзя записывать в переменную
  • записывает содержимое факта об интерфейсах в файл в каталог all_facts:
    • имя файла должно быть такого вида: hostname_intf_facts.yaml
    • hostname - это имя текущего устройства, для которого собираются факты
    • файл должен быть в формате YAML, в виде, который удобней для чтения человеком

Проверьте работу playbook на маршрутизаторах.

Задание 24.2b

Создайте playbook task_24_2b.yml, который выполняет такие задачи:

  • собирает все факты с маршрутизаторов
    • результат не записывать в переменную
  • выполняет команду sh ipv6 int br
    • вывод команды записывает в переменную show_result
  • отображает содержимое переменной show_result, но только в том случае, когда факт, в котором содержатся IPv6 адреса в виде списка, не пустой

Проверьте работу playbook на маршрутизаторах.

Задание 24.3

В playbook task_15_3.yml описана одна задача.

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

Измените playbook таким образом, чтобы изменения вносились только в том случае, когда настройка логирования на устройстве не соответствует указанной команде.

Задание 24.4

Создайте playbook task_24_4.yml, который выполняет такие задачи:

  • создает ACL INET-to-LAN и применяет его к интерфейсу Ethernet0/1 для входящего траф ика

При этом, подразумевается, что настройка ACL выполняется только с помощью Playbook. Поэтому, в ACL должны быть только те строки, которые указаны в задаче playbook.

Задача должна выполнять такие действия:

  • удалить ACL с интерфейса
  • удалить ACL
  • создать ACL и настроить правила ACL
  • применить ACL к интерфейсу

ACL должен быть таким:

ip access-list extended INET-to-LAN  permit tcp 10.0.1.0 0.0.0.255 any eq www  permit tcp 10.0.1.0 0.0.0.255 any eq 22  permit icmp any any 

Проверьте работу playbook на маршрутизаторе R1.

Задание 24.4a

Проверьте работу playbook из задания 24.4, в ситуации, когда в ACL добавлена ещё одна строка.

Если, после добавления строки в задаче и выполнения playbook, ACL на маршрутизаторе выглядит так же, как описано в playbook, значит задание выполнено.

Если нет, исправьте соответственно задачу.

Добавьте, например, такую строку в ACL:

 permit tcp 10.0.1.0 0.0.0.255 any eq telnet 

Проверьте работу playbook на маршрутизаторе R1.

Задание 24.4b

Добавьте в playbook из задания 24.4a ещё одну задачу:

  • она должна отображать, какие команды были отправлены на оборудование, в первой задаче
    • команды должны отображаться только в том случае, если были выполнены изменения
  • если нужно, можно изменять и первую задачу

Проверьте работу playbook на маршрутизаторе R1.

Задание 24.4c

Измените playbook из задания 24.4b таким образом, чтобы имя интерфейса, который указывается в задаче, указывалось как переменная outside_intf.

Создайте переменную для маршрутизатора R1, в соответствующем файле каталога host_vars.

Проверьте работу playbook на маршрутизаторе R1.

Назад: Дополнительные материалы
Дальше: Дополнительная информация