Імпорт та експорт пристроїв➧
Огляд
Команди wca device:import та wca device:export дозволяють масово додавати пристрої з
CSV та вивантажувати список пристроїв у той самий формат. Це зручно для першого наповнення
системи, перенесення пристроїв між інсталяціями та резервного копіювання списку обладнання.
Формат CSV➧
Один рядок — один пристрій, поля розділені комою (або іншим роздільником, див. опцію -s):
| Поле | Обов'язкове | Опис |
|---|---|---|
| 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➧
| Аргумент / опція | Опис | За замовчуванням |
|---|---|---|
<файл> |
Шлях до CSV всередині контейнера. Не вказано або - — читати зі стандартного вводу (|) |
- |
-g, --group-id |
ID групи, до якої додати нові пристрої | -1 |
-s, --separator |
Роздільник полів | , |
-v |
Показувати хід імпорту | — |
Як працює імпорт➧
- Доступи. Для кожної унікальної комбінації логін/пароль/community шукається наявний
доступ з такими самими даними. Якщо його немає — створюється
новий з назвою
<public community> (sync from import - xxxxxx). - Наявні пристрої пропускаються. Пристрій з таким IP уже є в системі (зокрема вимкнений) — рядок ігнорується. Імпорт не оновлює наявні пристрої.
- Модель.
- якщо ключ моделі вказано — пристрій додається з цією моделлю без звернення до обладнання;
- якщо ні — WildcoreDMS опитує пристрій по SNMP, визначає модель і заповнює MAC та серійний номер. Недоступні та непідтримувані пристрої не додаються (з повідомленням про помилку).
- Пристрій додається до групи з опції
-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
Так само можна передати результат іншої команди або скрипта, наприклад вибірку з білінгу:
Використовуйте 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 того самого формату, що й імпорт, — файл можна одразу імпортувати в іншу інсталяцію.
| Опція | Опис | За замовчуванням |
|---|---|---|
-f, --file |
Зберегти у файл /opt/wildcore-dms/var/tmp/<ім'я> (вказується лише ім'я, без шляху). Не вказано — вивести в стандартний вивід |
— |
-g, --group-id |
Експортувати лише пристрої групи | усі |
-s, --separator |
Роздільник полів | , |
--include-disabled |
Експортувати також вимкнені пристрої | вимкнені не експортуються |
Кожен рядок містить IP, облікові дані доступу пристрою, назву та ключ моделі. Якщо значення містить роздільник або перенос рядка, його буде замінено пробілом (з попередженням) — щоб файл коректно імпортувався.
Приклади➧
Зберегти у файл на сервері:
Вивести в стандартний вивід і перенаправити у файл (використовуйте docker exec -i, щоб
службові повідомлення не потрапили у CSV):
Перенести пристрої з однієї інсталяції в іншу одним рядком:
ssh old-server "sudo docker exec -i wca wca device:export" | sudo docker exec -i wca wca device:import -v
Файл містить паролі
Експорт містить логіни, паролі та SNMP community у відкритому вигляді (навіть якщо в системі увімкнено шифрування облікових даних). Зберігайте файл у захищеному місці та видаляйте після використання.
Права➧
Команди виконуються на сервері з правами root і не залежать від ролей користувачів веб-інтерфейсу.