04-30-2021 07:21 AM - edited 04-30-2021 11:09 AM
I am new to cisco ISE and writing a python scripts to create internal user on ISE . I am having problem of executing it on cisco IISE .Can anyone help me out
Solved! Go to Solution.
05-02-2021 09:29 PM
python ISEInternalUserTest.py 192.198.1.1 ers-admin admin20! robert Robert Mensah Password1 rmensah@gha.com Employee 12/26/2020
"12/26/2020" should be sys.argv[10] since sys.arg[1] is "192.198.1.1".
05-01-2021 05:42 PM
This looks dup of ISE Internal user creation using Python script
05-02-2021 10:22 AM - edited 05-03-2021 03:33 AM
Hi hslai
I am try to create internal users with my Python script. This is my code I created
#!/usr/bin/python
import http.client
import base64
import ssl
import sys
import os
argv = sys.argv[1]
print ("The name of the script: ", sys.argv[0])
print ("The argument are: ", argv)
#parameters
Id = sys.argv[4] # "B100"
userName = sys.argv[5] # "Robert"
firstName = sys.argv[6] # "Robert"
lastName = sys.argv[7] # "Mensah"
password = sys.argv[8] # "Password1"
emailAddress = sys.argv[9] # "rmensah@cisco.com
expiryDate = sys.argv[11] # “12/26/2020”
identityGroups = sys.argv[10] # “identityGroups”
# host and authentication credentials
host = sys.argv[1] # "192.198”.1.1
user = sys.argv[2] # “ers-admin”
password = sys.argv[3] # “admin20!”
conn = http.client.HTTPSConnection("{}:9060".format(host), context=ssl.SSLContext(ssl.PROTOCOL_TLS))
creds = str.encode(':'.join((user, password)))
encodedAuth = bytes.decode(base64.b64encode(creds))
req_body_json = """{{
\"InternalUser"\ : {
"id" : "\{}\",
"userName" : "\{}\",
"description" : "\{}\",
"enabled" : true,
"email" : "\{}\",
"password" : "\{}\",
"firstName" : "\{}\",
"lastName" : "\{}\",
"changePassword" : true,
"identityGroups" : "\{}\",
"expiryDateEnabled" : false,
"expiryDate" : "\{}\",
"enablePassword" : "enablePassword",
"customAttributes" : {
"key1" : "value1",
"key2" : "value3"
},
"passwordIDStore" : "Internal Users"
}
}}
}}""".format(Id,UserNname,firstName,lastName,emailAddress,password,identityGroups,expiryDate)
headers = {
'accept': "application/json",
'content-type': "application/json",
'authorization': " ".join(("Basic",encodedAuth)),
'cache-control': "no-cache",
}
conn.request("POST", "/ers/config/internaluser/", headers=headers, body=req_body_json)
es = conn.getresponse()
data = res.read()
print("Status: {}".format(res.status))
print("Header:\n{}".format(res.headers))
print("Body:\n{}".format(data.decode("utf-8")))
print (req_req_json)
I got this error while executing the above code
C:\Users\ghibuser\Desktop>python ISEInternalUserTest.py 192.198.1.1 ers-admin admin20! robert Robert Mensah Password1 rmensah@gha.com Employee 12/26/2020
The name of the script: ISEInternalUserTest.py
The argument are: 192.198.1.1
Traceback (most recent call last):
Traceback (most recent call last):
File "C:\Users\ghibuser\Desktop\ISEInternalUserTest.py", line 38, in <module>
req_body_json = """{{
IndexError: Replacement index 7 out of range for positional args tuple
Any support will be welcomed
05-02-2021 09:29 PM
python ISEInternalUserTest.py 192.198.1.1 ers-admin admin20! robert Robert Mensah Password1 rmensah@gha.com Employee 12/26/2020
"12/26/2020" should be sys.argv[10] since sys.arg[1] is "192.198.1.1".
05-02-2021 10:39 PM
Hi @hslai
This is my code
#!/usr/bin/python
import http.client
import base64
import ssl
import sys
import os
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
argv = sys.argv[1]
print ("The name of the script: ", sys.argv[0])
print ("The argument are: ", argv)
#parameters
userName = sys.argv[5] # "robert"
firstName = sys.argv[6] # "Robert"
lastName = sys.argv[7] # " Mensah"
password = sys.argv[8] # "Password1"
emailAddress = sys.argv[9] # "rmensah@gh.com
expiryDate = sys.argv[10] # “12/26/2022”
identityGroups = sys.argv[4] # “Employee”
# host and authentication credentials
host = sys.argv[1] # "192.198”.1.1
user = sys.argv[2] # “ers-admin”
password = sys.argv[3] # “admin20!”
conn = http.client.HTTPSConnection("{}:9060".format(host), context=ssl.SSLContext(ssl.PROTOCOL_TLS))
creds = str.encode(':'.join((user, password)))
encodedAuth = bytes.decode(base64.b64encode(creds))
req_body_json = """{{
\"InternalUser\" : {{
\"userName\" : "\{}\",
\"description"\ : "\{}\",
"enabled" : true,
\"email\" : "\{}\",
\"password\" : "\{}\",
\"firstName\" : "\{}\",
\"lastName\" : "\{}\",
\"changePassword\" : true,
\"identityGroups\" : "\{}\",
"expiryDateEnabled" : false,
"expiryDate" : "\{}\",
"enablePassword" : "enablePassword",
"customAttributes" : {
"key1" : "value1",
"key2" : "value3"
},
"passwordIDStore" : "Internal Users"
}
}}
}}""".format(userName,firstName,lastName,emailAddress,password,identityGroups,expiryDate)
headers = {
'accept': "application/json",
'content-type': "application/json",
'authorization': " ".join(("Basic",encodedAuth)),
'cache-control': "no-cache",
}
conn.request("POST", "/ers/config/internaluser/", headers=headers, body=req_body_json)
es = conn.getresponse()
data = res.read()
print("Status: {}".format(res.status))
print("Header:\n{}".format(res.headers))
print("Body:\n{}".format(data.decode("utf-8")))
print(req_body_json)
can you help me with this error
IndexError: Replacement index 7 out of range for positional args tuple
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide