Содержание
Автоматизация: Развертывание через ZTP и управление конфигурацией Mellanox SX6036 с помощью Ansible
По мере масштабирования сетевой инфраструктуры ручная настройка коммутаторов через CLI уходит на второй план. Чтобы ускорить ввод в эксплуатацию новых устройств, исключить человеческий фактор и обеспечить единообразие конфигурации на всей фабрике Mellanox SX6036, применяются инструменты автоматизации.
В этой статье мы разберем два ключевых этапа автоматизации: базовое развертывание «голенького» коммутатора с помощью Zero Touch Provisioning (ZTP) и последующее управление сетевыми параметрами (VLAN, порты, MLAG) через Ansible.
1. Zero Touch Provisioning (ZTP): Автоматический старт
Технология ZTP позволяет новому или сброшенному к заводским настройкам коммутатору SX6036 автоматически получить прошивку, лицензии и стартовый конфигурационный скрипт при первом включении и подключении порта Management к сети.
Как это работает:
- Коммутатор загружается и отправляет DHCP-запрос через порт управления.
- DHCP-сервер выдает устройству IP-адрес и передает специальные опции, указывающие на расположение конфигурационного скрипта.
- Коммутатор скачивает скрипт по протоколу TFTP/HTTP и применяет его.
Настройка DHCP-сервера (пример для ISC DHCPD на Linux):
Для поддержки ZTP в файл конфигурации DHCP-сервера /etc/dhcp/dhcpd.conf необходимо добавить специальную опцию 224 (или использовать стандартную опцию 67 для передачи имени файла):
Определяем кастомный формат для Mellanox ZTP (если требуется) И указываем загрузочный скрипт для Mellanox SX6036
option space mellanox;
option mellanox.script-name code 1 = text;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.20 192.168.10.50;
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option bootfile-name "http://192.168.10";
}
Стартовый скрипт ztp_script.sh может содержать стандартные CLI-команды MLNX-OS (например, создание базовых учетных записей, включение SSH и настройку IP-адресации).
2. Управление конфигурацией с помощью Ansible
После того как коммутатор получил базовый IP-адрес и доступ по SSH, дальнейшее управление передается в Ansible. Для работы с ОС MLNX-OS используется поддерживаемая коллекция модулей mellanox.onyx (Onyx — это современное название MLNX-OS).
Шаг 1. Настройка инвентаря (Inventory)
Создаём файл hosts.ini, где указываем параметры подключения к коммутаторам фабрики:
[leaf_switches] switch-01 ansible_host=192.168.10.21 switch-02 ansible_host=192.168.10.22 [leaf_switches:vars] ansible_network_os=mellanox.onyx.onyx ansible_user=admin ansible_ssh_pass=your_secure_password ansible_connection=network_cli
Шаг 2. Написание Playbook для настройки VLAN и интерфейсов
Создаём Playbook deploy_fabric.yml, который автоматически создаст необходимые VLAN и применит настройки Jumbo Frames.
---
- name: Автоматизация сетевой фабрики Mellanox SX6036
hosts: leaf_switches
gather_facts: no
tasks:
- name: Создание продуктивных VLAN (10, 20, 30)
mellanox.onyx.onyx_vlan:
vlan_id: "{{ item.id }}"
name: "{{ item.name }}"
state: present
loop:
- { id: 10, name: 'Management_Network' }
- { id: 20, name: 'vMotion_Network' }
- { id: 30, name: 'Storage_Network' }
- name: Настройка портов хостов виртуализации (Trunk и MTU 9216)
mellanox.onyx.onyx_interface:
name: ethernet 1/1
description: "Uplink to ESXi/Proxmox Host"
mtu: 9216
enabled: true
- name: Перевод интерфейса в режим Trunk и назначение VLAN
mellanox.onyx.onyx_l2_interface:
name: ethernet 1/1
mode: trunk
trunk_allowed_vlans: 10,20,30
- name: Сохранение текущей конфигурации в Startup-Config
mellanox.onyx.onyx_config:
save: true
Запуск Playbook выполняется стандартной командой из консоли сервера управления:
ansible-playbook -i hosts.ini deploy_fabric.yml
Интеграция в CI/CD (Infrastructure as Code)
Для продвинутых инженеров конфигурационные файлы Ansible рекомендуется хранить в Git-репозитории (например, GitLab). При необходимости изменить конфигурацию (например, добавить новый VLAN для нового кластера Proxmox) инженер вносит правки в Git, проходит этап Code Review, после чего PipeLine GitLab CI автоматически запускает Ansible и применяет изменения на коммутаторах фабрики.
Проверка автоматизации
- [X] Проверка работы ZTP: Новый коммутатор при подключении к сети успешно скачивает стартовый скрипт без ручного ввода команд в консоли.
- [X] Idempotency Ansible: Повторный запуск Playbook Ansible не должен приводить к изменениям (
changed=0), если конфигурация на коммутаторе уже соответствует эталону. - [X] Резервное копирование: Playbook автоматизации можно дополнить задачей регулярного бэкапа конфигурации свитчей:
- name: Бэкап конфигурации
mellanox.onyx.onyx_config:
backup: yes
