Содержание

Автоматизация: Развертывание через ZTP и управление конфигурацией Mellanox SX6036 с помощью Ansible

По мере масштабирования сетевой инфраструктуры ручная настройка коммутаторов через CLI уходит на второй план. Чтобы ускорить ввод в эксплуатацию новых устройств, исключить человеческий фактор и обеспечить единообразие конфигурации на всей фабрике Mellanox SX6036, применяются инструменты автоматизации.

В этой статье мы разберем два ключевых этапа автоматизации: базовое развертывание «голенького» коммутатора с помощью Zero Touch Provisioning (ZTP) и последующее управление сетевыми параметрами (VLAN, порты, MLAG) через Ansible.

1. Zero Touch Provisioning (ZTP): Автоматический старт

Технология ZTP позволяет новому или сброшенному к заводским настройкам коммутатору SX6036 автоматически получить прошивку, лицензии и стартовый конфигурационный скрипт при первом включении и подключении порта Management к сети.

Как это работает:

  1. Коммутатор загружается и отправляет DHCP-запрос через порт управления.
  2. DHCP-сервер выдает устройству IP-адрес и передает специальные опции, указывающие на расположение конфигурационного скрипта.
  3. Коммутатор скачивает скрипт по протоколу 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 и применяет изменения на коммутаторах фабрики.

Проверка автоматизации

    - name: Бэкап конфигурации
      mellanox.onyx.onyx_config:
        backup: yes