Read and declaratively manage network devices and endpoints in Cisco Identity Services Engine (ISE) from any Windmill script, flow or app, through the ERS API.
Set up in 3 steps
Enable ERS on ISE
In ISE, open Administration > System > Settings > API Settings and turn on ERS (Read/Write). Create an admin user in the ERS Admin group, or ERS Operator for read-only use. Use a dedicated service account rather than a person's account.
Add the resource
Open Resources, click Add a resource and pick Cisco ISE. Enter the address of the Primary Administration Node, the user and the password. Leave the ERS port empty to use 443, or set 9060 for ISE's dedicated ERS port.
Run your first script
Start with List network devices to check the connection. The upsert scripts default to dry run: they return the difference with ISE and change nothing until you set dry_run to false.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Upsert network device
Upsert endpoint
List network devices
List identity groups
List endpoints
Get network device
Get endpoint by MAC
Resource type
The shape of the credential every script on this page expects.
cisco_ise
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| base_url | string | Yes | HTTPS address of the ISE Primary Administration Node, e.g. https://ise.example.com. No trailing slash. The certificate must match this address and be trusted by the Windmill worker (DENO_CERT or SSL_CERT_FILE): a default self-signed certificate is rejected. |
| ers_port | integer | No | Port of the ERS API. Leave empty to use the port in the base URL (443 by default). Set 9060 to use ISE's dedicated ERS port. |
| username | string | Yes | ISE admin user in the ERS Admin (read/write) or ERS Operator (read-only) group. |
| password | string | Yes | Password of the ISE admin user. |
Questions
Do I need to disable TLS verification for a self-signed ISE certificate?
No. Add your private CA to the trust store of the Windmill workers that run these scripts.
What does an upsert do when the object does not exist?
It creates it. A new network device needs at least one IP address, and a new endpoint needs an identity group. Fields you leave empty are not managed and stay as they are in ISE.