Перейти до змісту

Імпорт та експорт пристроїв➧

Огляд

Команди wca device:import та wca device:export дозволяють масово додавати пристрої з CSV та вивантажувати список пристроїв у той самий формат. Це зручно для першого наповнення системи, перенесення пристроїв між інсталяціями та резервного копіювання списку обладнання.

Формат CSV➧

Один рядок — один пристрій, поля розділені комою (або іншим роздільником, див. опцію -s):

<IP>,<Логін>,<Пароль>,<Public community>,<Private community>,<Ім'я>,<Ключ моделі>
Поле Обов'язкове Опис
IP так IP-адреса пристрою
Логін так* Логін консолі (Telnet/SSH)
Пароль так* Пароль консолі
Public community так* SNMP community для читання
Private community так* SNMP community для запису
Ім'я ні Назва пристрою. Порожньо — використовується IP
Ключ моделі ні Ключ моделі у WildcoreDMS (колонка «Ключ» у Керування пристроями > Моделі або wca device-model:list)

* Поле має бути присутнім у рядку, але може бути порожнім (наприклад, якщо консольний доступ не потрібен): 192.0.2.20,,,public,,Switch-20.

Приклад файлу (умовні дані):

192.0.2.10,admin,<пароль>,public,private,OLT-Central,
192.0.2.11,admin,<пароль>,public,private,,
192.0.2.20,,,public,,Switch-20,dlink_des_3200_28_a1

Обмеження формату

  • Без рядка заголовків — перший рядок теж вважається пристроєм.
  • Екранування та лапки не підтримуються: значення не можуть містити роздільник. Якщо у паролях або назвах є коми — використовуйте інший роздільник, наприклад ; або | (опція -s).
  • Порожні рядки пропускаються.

Імпорт: wca device:import➧

wca device:import [<файл>] [-g <group_id>] [-s <роздільник>] [-v]
Аргумент / опція Опис За замовчуванням
<файл> Шлях до CSV всередині контейнера. Не вказано або - — читати зі стандартного вводу (|) -
-g, --group-id ID групи, до якої додати нові пристрої -1
-s, --separator Роздільник полів ,
-v Показувати хід імпорту —

Як працює імпорт➧

  1. Доступи. Для кожної унікальної комбінації логін/пароль/community шукається наявний доступ з такими самими даними. Якщо його немає — створюється новий з назвою <public community> (sync from import - xxxxxx).
  2. Наявні пристрої пропускаються. Пристрій з таким IP уже є в системі (зокрема вимкнений) — рядок ігнорується. Імпорт не оновлює наявні пристрої.
  3. Модель.
    • якщо ключ моделі вказано — пристрій додається з цією моделлю без звернення до обладнання;
    • якщо ні — WildcoreDMS опитує пристрій по SNMP, визначає модель і заповнює MAC та серійний номер. Недоступні та непідтримувані пристрої не додаються (з повідомленням про помилку).
  4. Пристрій додається до групи з опції -g.

Варіант 1. Через стандартний ввід (|) — рекомендовано➧

Файл не потрібно копіювати в контейнер — CSV передається командою напряму:

cat devices.csv | sudo docker exec -i wca wca device:import -g 3 -v
# або
sudo docker exec -i wca wca device:import -g 3 -v < devices.csv

Так само можна передати результат іншої команди або скрипта, наприклад вибірку з білінгу:

./export-from-billing.sh | sudo docker exec -i wca wca device:import -g 3 -s ';' -v

Використовуйте docker exec -i

Звичайна команда wca запускається з терміналом (docker exec -it) і не приймає дані через | — буде помилка the input device is not a TTY. Для передачі даних використовуйте sudo docker exec -i wca wca ... або скрипт /opt/wildcore-dms/bin/wca-no-pty.sh.

Варіант 2. З файлу➧

Каталог /opt/wildcore-dms на сервері доступний у контейнері як /www. Покладіть файл у /opt/wildcore-dms/var/tmp/ і вкажіть шлях усередині контейнера:

sudo cp devices.csv /opt/wildcore-dms/var/tmp/
sudo wca device:import /www/var/tmp/devices.csv -g 3 -v

Tip

Після імпорту перевірте результат у Керування пристроями > Пристрої та видаліть файл з паролями: sudo rm /opt/wildcore-dms/var/tmp/devices.csv.


Експорт: wca device:export➧

Вивантажує пристрої у CSV того самого формату, що й імпорт, — файл можна одразу імпортувати в іншу інсталяцію.

wca device:export [-f <ім'я файлу>] [-g <group_id>] [-s <роздільник>] [--include-disabled]
Опція Опис За замовчуванням
-f, --file Зберегти у файл /opt/wildcore-dms/var/tmp/<ім'я> (вказується лише ім'я, без шляху). Не вказано — вивести в стандартний вивід —
-g, --group-id Експортувати лише пристрої групи усі
-s, --separator Роздільник полів ,
--include-disabled Експортувати також вимкнені пристрої вимкнені не експортуються

Кожен рядок містить IP, облікові дані доступу пристрою, назву та ключ моделі. Якщо значення містить роздільник або перенос рядка, його буде замінено пробілом (з попередженням) — щоб файл коректно імпортувався.

Приклади➧

Зберегти у файл на сервері:

sudo wca device:export -f devices.csv
# файл: /opt/wildcore-dms/var/tmp/devices.csv

Вивести в стандартний вивід і перенаправити у файл (використовуйте docker exec -i, щоб службові повідомлення не потрапили у CSV):

sudo docker exec -i wca wca device:export -g 3 > olts.csv

Перенести пристрої з однієї інсталяції в іншу одним рядком:

ssh old-server "sudo docker exec -i wca wca device:export" | sudo docker exec -i wca wca device:import -v

Файл містить паролі

Експорт містить логіни, паролі та SNMP community у відкритому вигляді (навіть якщо в системі увімкнено шифрування облікових даних). Зберігайте файл у захищеному місці та видаляйте після використання.

Права➧

Команди виконуються на сервері з правами root і не залежать від ролей користувачів веб-інтерфейсу.