پاسخ: تله های ilo snmp



بالاخره درست شد

1. دریافت شناسه جلسه OneView 2. فهرست کاربران فعلی SNMP v3 را بازیابی کنید. مطمئن شوید که فضایی برای اضافه کردن یک مورد دیگر وجود دارد. SERVER=my-fqdn.org ACTV=$(python -c “import urllib, sys; print urllib.quote(sys.argv[1])”‘serverName’ = ‘${SERVER}’\””) UUID=$(curl –insecure –header “X-API-Version: ${currentVersion}” –header “auth: ${sessionID}” –silent \ –درخواست دریافت ${OneView}/rest/server-hardware?filter=${ACTV} | jq -r ‘.members[] | .uuid’}) خواندن iLOSSO iLOAuth <<< $(curl --silent --insecure --header "X-API-Version: ${currentVersion}" --header "auth: ${sessionID}" \ --request دریافت ${OneView}/rest/server-hardware/${UUID}/remoteConsoleUrl | \ jq -r '.remoteConsoleUrl ' | sed -e 's|hplocons|https|' -e 's|addr=||' \ -e 's|^\(.*\)&sessionkey=\(.*\)$|\1 \2|') curl --silent --insecure --header "X-Auth-Token: ${iLOAuth} " \ --درخواست دریافت ${iLOSSO}/redfish/v1/Managers/1/snmpservice | \ jq --arg سرور ${SERVER} '. | .وضعیت به عنوان $Status | .کاربران[] | select(.SecurityName!="") | {"Server": $SERVER، "Status": $Status، "Users": . }' > ./${SERVER}-SNMPv3-Users if [[ $(grep -c SecurityName ${SERVER}-SNMPv3-Users) -lt 8 ]]؛ سپس # جا دارد. بررسی کنید که آیا این کاربر از قبل حضور دارد یا خیر: SECNAME=’newuser’ if [[ $(grep -c ‘”SecurityName”: “‘${SECNAME}'”‘ ${SERVER}-SNMPv3-Users) -eq 0 ]]؛ سپس “می‌توان کاربر SNMPv3 دیگری را به این رابط iLO اضافه کرد” AuthTp=’SHA’ PrivTp=’AES’ AuthP=’somepassword’ PrivP=’someotherpassword’ DATA='{“SecurityName”: “‘${SECNAME}”، “AuthProtocol”: “‘${AuthTp}”، “AuthPassphrase”: “;${AuthP}”، “PrivacyProtocol”: “‘${PrivTp}”، “PrivacyPassphrase”: “‘${PrivP}” “}’ echo ${DATA} | jq -r ‘.’ curl –silent –unsecure –header “X-Auth-Token: ${iLOAuth}” –data “${DATA}” –header “content-type: application/json” \ — ​​request POST ${ iLOSSO}/redfish/v1/Managers/1/SnmpService/SNMPUsers/ | jq -r ‘.’ else echo “${SECNAME} قبلاً به این رابط iLO اضافه شده است” fi else echo “هیچ کاربر دیگری از SNMPv3 ممکن است به این رابط iLO اضافه نشود” fi 3. فهرست مقصدهای تله فعلی را بازیابی کنید. مطمئن شوید که فضایی برای اضافه کردن یک مورد دیگر وجود دارد. curl –silent –insecure –header “X-Auth-Token: ${iLOAuth}” –درخواست دریافت ${iLOSSO}/redfish/v1/Managers/1/SnmpService | \ jq -r ‘{“AlertDestinationAssociations”:.AlertDestinationAssociations,”AlertsDestinations”:.AlertsDestinations,”AlertsEnabled”:.AlertsEnabled}’ > ./${SERVER}-مقصدها اگر [[ $(grep -vE ‘\[|\]|null|{|}|SNMPAlertProtocol|SecurityName’ ${SERVER}-destinations | wc -l) -lt 8 ]; سپس # ببینید آیا مقصد تله قبلاً خارج شده است: i=0 DESTIP=’1.2.3.4′ ArrayEnd=$(jq -r ‘.AlertDestinationAssociations | length’ ${SERVER}-destinations) [[ ${i} < ${ArrayEnd} ]]؛ انجام دهید اگر [[ $(echo “$(jq -c “.AlertDestinationAssociations[${i}]”${SERVER}-destinations)” | grep -c ‘”SecurityName”: “‘${SECNAME}'”‘) -gt 0 ]]; سپس اگر [[ $(echo “$(jq -c “.AlertDestinations[${i}]”${SERVER}-destinations)” | grep -c ${DESTIP}) -gt 0 ]]; سپس تکرار کنید “این ترکیب کاربر/مقصد قبلاً در این رابط iLO وجود دارد” شکستن 3 fi fi ((i++)) انجام شد # اگر به اینجا رسیدیم، مطابقت پیدا نکردیم. echo “می‌تواند مقصد تله دیگری را به این رابط iLO اضافه کند” DATA='{“SNMPAlertProtocol”:”SNMPv3Trap”, “SecurityName”:”‘${SECNAME}’، “AlertDestination”:”‘${DESTIP}'”} ‘ curl –silent –insecure –header “X-API-Token: ${iLOAuth}” –header “content-type: application/json” \ –data “${DATA}” — request PATCH $ {iLOSSO}/redfish/v1/Managers/v1/SnmpService/SNMPAlertDestinations | jq -r ‘.’ else ecoh “هیچ مقصد هشدار دیگری ممکن است به این رابط iLO اضافه نشود” fi

امیدواریم این برای شخص دیگری مفید باشد؟




منبع: https://community.hpe.com/t5/proliant-servers-ml-dl-sl/ilo-snmp-traps/m-p/7179591#M180078