New to Kestra?
Use blueprints to kickstart your first workflows.
Build an Ansible inventory from NetBox, run a playbook against it, and record the configuration run in ServiceNow with Kestra orchestration.
Keep configuration management driven by your source of truth instead of hand-maintained host files. This blueprint queries NetBox for the devices that match a site and role, generates an Ansible inventory from that live result, runs a playbook against those hosts, then stamps the ServiceNow CMDB so the configuration item reflects when it was last configured. NetBox decides what exists, Ansible enforces the desired state, and ServiceNow records what happened, closing the loop between inventory, automation, and the CMDB.
list_devices (io.kestra.plugin.ee.netbox.device.List) pulls active devices from NetBox filtered by site and role, returning the name field with fetchType: FETCH.run_playbook (io.kestra.plugin.ansible.cli.AnsibleCLI) on the io.kestra.plugin.core.runner.Process runner writes an inventory.ini from the NetBox rows and a site.yml playbook, then runs ansible-playbook -i inventory.ini site.yml.record_run (io.kestra.plugin.servicenow.Update) updates the cmdb_ci_server table for the given sysId, writing u_last_config_run and a work_notes summary of how many hosts were configured.daily_config Schedule trigger (io.kestra.plugin.core.trigger.Schedule, cron 0 5 * * *) is ready to rebuild and reconfigure on a cadence once enabled.Ansible has no native scheduler, retry policy, or lineage across systems. Kestra wires NetBox, Ansible, and ServiceNow into one declarative YAML flow, passing the device list between tasks, adding event or schedule triggers, retries, and full execution history. The same run that configures hosts also updates the CMDB, something the Ansible CLI alone cannot coordinate.
sys_id) to stamp.NETBOX_URL: NetBox base URL.NETBOX_API_TOKEN: NetBox API token.SN_DOMAIN: ServiceNow instance domain.SN_USERNAME: ServiceNow username.SN_PASSWORD: ServiceNow password.site and role inputs and supply the cmdb_sys_id of the CI to update.site.yml ping task with your real configuration tasks.daily_config trigger for scheduled runs.ansible_host at a DNS name or IP from NetBox instead of the device name.fields to scope or enrich the inventory.data in record_run to write additional CMDB attributes.