В примере будем использовать передачу трех состояний рабочих мест в WNAM 2. Без Нарушений, критическое и oфлайн.
Создаем три скрипта (Справочники - Скрипты) для каждого стостояния
...
.
Без нарушений
| Code Block | ||
|---|---|---|
| ||
#!/bin/bash get_token() { token=`curl -k -s -X POST -H "Content-Type: application/json" -d '{"username":"'$wnamlogin'","password":"'$wnampassword'"}' https://$wnam_address/api/2.0/authenticate | jq -r .access_token` echo $token > /tmp/token } STATUS="100" wnamlogin="admin" wnampassword="admin" wnam_address="172.16.133.12" if [ ! -f /tmp/token ]; then get_token fi access_token=`cat /tmp/token` status=`curl -s -kw "%{http_code}" -sk -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d '"{"username":"'$wnamlogin'","password":"'$wnampassword'"}' \"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/authenticate | jq -r .access_token` curl -sakura_state` if [ "$status" -eq 401 ]; then get_token access_token=`cat /tmp/token` curl -s -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d "{\"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/sakura_state fi |
Критическое
| Code Block | ||
|---|---|---|
| ||
#!/bin/bash get_token() { token=`curl -k -s -X POST -H "Content-Type: application/json" -d '{"username":"'$wnamlogin'","password":"'$wnampassword'"}' https://$wnam_address/api/2.0/authenticate | jq -r .access_token` echo $token > /tmp/token } STATUS="1" wnamlogin="admin" wnampassword="admin" wnam_address="172.16.133.12" if [ ! -f /tmp/token ]; then get_token fi access_token=`cat /tmp/token` status=`curl -ks -w "%{http_code}" -sk -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d '"{"username":"'$wnamlogin'","password":"'$wnampassword'"}' \"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/authenticate | jq -r .access_token` curlsakura_state` if [ "$status" -eq 401 ]; then get_token access_token=`cat /tmp/token` curl -s -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d "{\"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/sakura_state fi |
офлайн
| Code Block | ||
|---|---|---|
| ||
#!/bin/bash get_token() { token=`curl -k -s -X POST -H "Content-Type: application/json" -d '{"username":"'$wnamlogin'","password":"'$wnampassword'"}' https://$wnam_address/api/2.0/authenticate | jq -r .access_token` echo $token > /tmp/token } STATUS="0" wnamlogin="admin" wnampassword="admin" wnam_address="172.16.133.12" if [ ! -f /tmp/token ]; then get_token fi access_token=`cat /tmp/token`` status=`curl -ks -w "%{http_code}" -sk -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d '{"username":"'$wnamlogin'","password":"'$wnampassword'"}' "{\"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/authenticate | jq -r .access_token` curl -sakura_state` if [ "$status" -eq 401 ]; then get_token access_token=`cat /tmp/token` curl -s -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer "$access_token -d "{\"hostname\":\"$1\",\"ARM_IP\":\"$2\",\"ARM_MAC\":\"$3\",\"status\":\"$STATUS\"}" https://172.16.133.12$wnam_address/api/2.0/sakura_state fi |
В скрпиптах нужно поменять адрес сервера WNAM и реквизиты доступа к нему. Скрипты отличаются только значением переменной STATUS.
Также в каждый скрипт добавляем специальные параметры: wshostname,wsips,wsmacs (именно в таком порядке) без заполнения параметров.
| Warning |
|---|
Для работы скриптов на сервере должны быть установлены curl и jq |
Создаем три сценария (Справочники - Сценарии ) с типом исполнителя Сервер.
и добавляем команду типа скрипт с соответствующим скриптом.
заполняем значения для специальных параметров ранее определенных в скриптах:
| Имя | Значение |
|---|---|
| wshostname | WS.Hostname |
| wsips | join(NAC.WNAM.IPAddresses,",") |
| wsmacs | join(NAC.WNAM.MACAddresses,",") |
Создаем интеграцию с WNAM (Интеграции - Интеграции NAC)
Выбираем тип интеграции WNAM (Netams)
и заполняем матрицу реагирования ранее созданными сценариями.




