Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В примере будем использовать передачу трех состояний рабочих мест в WNAM 2.  Без Нарушений,  критическое и oфлайн.

Создаем три скрипта (Справочники - Скрипты) для каждого стостояния

...

.

Без нарушений

Code Block
languagebash
#!/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
languagebash
#!/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
languagebash
#!/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 (именно в таком порядке) без заполнения параметров.

Image Added

Warning

Для работы скриптов на сервере должны быть установлены curl и jq

Создаем три сценария (Справочники  - Сценарии ) с типом исполнителя Сервер.

Image Added

и добавляем команду типа скрипт  с соответствующим скриптом.

Image Added

заполняем значения для специальных параметров ранее определенных в скриптах:

ИмяЗначение
wshostnameWS.Hostname
wsipsjoin(NAC.WNAM.IPAddresses,",")
wsmacsjoin(NAC.WNAM.MACAddresses,",")

Создаем интеграцию с WNAM (Интеграции - Интеграции NAC)

Выбираем тип интеграции  WNAM (Netams)

Image Added


и заполняем матрицу реагирования ранее созданными сценариями.

Image Added