Inventory Manager can run in parallel with IAG 4, enabling gradual migration without disrupting your automation workflows. You can operate both systems simultaneously, validate your new setup, and transition at your own pace.
During migration, you can:
- Run IAG 4 and Inventory Manager simultaneously
- Migrate inventory data from IAG 4 to Inventory Manager
- Continue using Configuration Manager and command templates with both systems
- Transition workflows incrementally
Why migrate?
Migrating from IAG 4 to Inventory Manager is a strategic modernization that improves reliability, simplifies integrations, and aligns with Itential Platform architecture. This guide provides step-by-step guidance for planning and executing your migration with minimal disruption.
What's changing:
IAG 4 tightly couples inventory with execution engines. Inventory Manager decouples these concerns by introducing centralized, platform-managed inventory. Inventory data is federated from external systems, persisted within the Itential Platform, and refreshed explicitly via APIs or workflows. Execution is handled separately by IAG 5 using standardized drivers and services.
Before you begin
Prerequisites
- Permissions to access Inventory Manager (see Security and access control)
- IAG 5 cluster deployed and accessible
- Platform Secrets Manager configured
- Gateway Manager adapter configured in Device Broker
- Identified source of truth for your inventory data
Important considerations
- No automatic synchronization: Inventory Manager and IAG 4 do not synchronize automatically. You'll manage inventory separately in each system during the transition.
- Source of truth requirement: Inventory Manager is not a system of record. If you currently use IAG 4 as your source of record, you'll need to migrate to an external source such as NetBox, a CMDB, or a static file in a Git repository.
- Migration sensitivity: Migration may impact production automation. Plan for adequate testing and schedule appropriate change windows.
- Workflow refactoring required: Workflows using IAG 4 AutomationGateway adapter tasks may need to be updated to use GatewayManager tasks.
Migration approach
Step 1: Assess your current state
Document your IAG 4 deployment:
Inventory assessment:
- How many IAG 4 instances do you have?
- How is inventory segmented (device type, environment, team)?
- What is your source of truth (NetBox, ServiceNow, CMDB, IAG 4 itself)?
- How frequently does inventory change?
Usage analysis:
- Which workflows use AutomationGateway adapter tasks?
- What IAG 4 actions are used (is-alive, get-config, run-command, set-config)?
- Which Configuration Manager operations use IAG 4 devices?
- Which command templates reference IAG 4 devices?
Step 2: Design your inventory structure
Choose inventory boundaries: Common patterns include segmentation by device type, environment, region, team, or vendor/platform. Choose the pattern that matches your operational structure.
IAG 5 service selection:
Identify which IAG 5 drivers and platforms you'll use:
- Netmiko: Widely supported, good for CLI-based automation
- Scrapli: High-performance alternative to Netmiko
- Custom services: For specialized device interactions
For more information see, Configure driver options.
Map your IAG 4 ansible_network_os values to IAG 5 platform identifiers:
IAG 4 (ansible_network_os) |
IAG 5 (itential_platform) - Netmiko |
|---|---|
| iosxr | cisco_xr |
| ios | cisco_ios |
| nxos | cisco_nxos |
| eos | arista_eos |
| junos | juniper_junos |
Plan tagging strategy: Use tags for device roles, environments, locations, criticality levels, or custom business attributes. For guidance, see Tags and organization.
Step 3: Map inventory data
Field mappings
| Field | IAG 4 | Inventory Manager |
|---|---|---|
| Username | ansible_user |
itential_user |
| Password | ansible_password |
itential_password |
| Hostname | ansible_host |
itential_host |
| Port | ansible_port |
itential_port |
| Driver | ansible_connection |
itential_driver |
| Platform | ansible_network_os |
itential_platform |
| Driver Options | N/A | itential_driver_options |
Example transformation:
IAG 4:
{
"ansible_user": "admin",
"ansible_password": "PASSWORD",
"ansible_host": "10.0.1.1",
"ansible_port": 22,
"ansible_connection": "network_cli",
"ansible_network_os": "iosxr"
}
Inventory Manager:
{
"itential_user": "admin",
"itential_password": "$SECRET_xr_vault $KEY_xr_pass",
"itential_host": "10.0.1.1",
"itential_port": 22,
"itential_driver": "netmiko",
"itential_platform": "cisco_xr"
}
Secrets management: Migrate credentials from Ansible Vault to your Platform Secrets Manager. Reference secrets using $SECRET_<secret_name> $KEY_<key_name> notation.
Sample field mapping template
You can use Jinja2 templates to transform inventory data. The following example demonstrates the approach. Adapt this template to reflect your specific structure:
{%- set os_map = {
'iosxr': 'cisco_xr',
'ios': 'cisco_ios',
'nxos': 'cisco_nxos',
'eos': 'arista_eos',
'junos': 'juniper_junos'
} -%}
{
"inventory_identifier": "production-inventory",
"nodes": [
{%- for item in data %}
{
"name": "{{ item.name }}",
"attributes": {
"itential_user": "{{ item.variables.ansible_user }}",
"itential_password": "$SECRET_vault $KEY_{{ item.variables.ansible_network_os }}_pass",
"itential_host": "{{ item.variables.ansible_host }}",
"itential_port": {{ item.variables.ansible_port }},
"itential_platform": "{{ os_map.get(item.variables.ansible_network_os) }}",
"itential_driver": "netmiko"
},
"tags": {{ item.tags | tojson }}
}{{ "," if not loop.last else "" }}
{%- endfor %}
]
}
Step 4: Populate and test inventories
Create inventories:
Create an automated process to populate Inventory Manager by using either an Itential workflow or a Python script. The process should:
- Extract data from your external inventory system
- Transform the data according to your mapping template
- Populate Inventory Manager via the API
- Schedule regular refreshes to keep inventory current
For more information, see Create and populate inventories.
Validate with built-in tools:
- Configuration Manager:
- Test
is-aliveconnectivity - Test
get-configretrieval - Run compliance checks against test devices
- Verify output format matches expectations
- Test
- Studio: Command Templates:
- Test
run-commandexecution - Verify output parsing
- Validate command templates with rules
- Test
Common troubleshooting:
- Connectivity failures: Check IAG 5 network access, credentials, host/port values
- Authentication failures: Verify
$SECRETreferences and credentials in Secrets Manager - Command issues: Confirm
itential_platformis correct, try both netmiko and scrapli drivers - Format differences: Compare output to IAG 4, adjust parsing logic if needed
Step 5: Configure parallel operation
Configure the Inventory Manager adapter in Device Broker to enable both IAG 4 and Inventory Manager during migration. For more information, see Device Broker support.
In the Device Broker adapter configuration properties, set prepend_inventory_name to true to prevent device name collisions:
{
"inventories": "all",
"prepend_inventory_name": true
}
This prevents device name collisions:
- IAG 4 device:
core-router-1 - Inventory Manager device:
production::core-router-1
You can also expose specific inventories to Device Broker incrementally:
{
"inventories": ["prod-routers", "prod-switches"],
"prepend_inventory_name": true
}
Step 6: Refactor workflows
Workflows using IAG 4 AutomationGateway adapter tasks need to be refactored to use the new GatewayManager tasks designed for Inventory Manager. The new sendCommand and sendConfig services are built for workflow automation and provide batch operation support with workflow-optimized inputs and outputs.
Task inputs and outputs have changed. The new architecture enhances performance and capabilities, but you must update workflows to ensure valid execution and data manipulation.
Why refactor
IAG 4 AutomationGateway tasks (isAlive, runCommand, getConfig, setConfig) were designed for internal Itential application use through Device Broker. Inventory Manager introduces sendCommand and sendConfig services that are:
- Purpose-built for workflows: Designed specifically for customer workflow automation
- Optimized for batch operations: Execute operations across multiple devices in a single task
- User-friendly: Simplified inputs and outputs tailored for workflow use
- Better performance: Optimized for workflow execution patterns
Task mapping
If you're migrating workflows from IAG 4, use this mapping to update your workflow tasks:
| IAG 4 Task | Description | Inventory Manager Task | Notes |
|---|---|---|---|
AutomationGateway.isAlive |
Verifies device is reachable | GatewayManager.sendCommand |
Use sendCommand with an appropriate command (ex. show version) to verify device accessibility |
AutomationGateway.runCommand |
Executes CLI command on device | GatewayManager.sendCommand |
Direct replacement with updated input structure |
AutomationGateway.getConfig |
Retrieves running or startup configuration | GatewayManager.sendCommand |
Use sendCommand with an appropriate show command (ex. show running-config) |
AutomationGateway.setConfig |
Applies configuration change to device | GatewayManager.sendConfig |
Direct replacement with updated input structure |
For more information on sendCommand and sendConfig, including required inventory node attributes, see Send commands and configurations to devices via workflows
Input structure
IAG 4 AutomationGateway tasks required full device attributes in each task:
- Device connection details (host, user, password, platform) provided in task inputs
- Each task configured device attributes individually
- Limited batch operation support
IAG 5 GatewayManager tasks leverage inventory data:
- Device attributes retrieved from Inventory Manager
- Tasks reference inventory names and node names
- Native batch operation support across multiple devices
- Simplified input parameters
Refactoring process
For each workflow that uses IAG 4, complete these steps:
- Identify AutomationGateway adapter tasks
- Replace with equivalent GatewayManager tasks
- Update task inputs and outputs (formats have changed)
- Update device references to use Inventory Manager inventories
- Test thoroughly
Recommended approach: Start with low-risk workflows, refactor incrementally, and keep IAG 4 versions as backup during transition.
Step 7: Update Configuration Manager and command templates
Configuration Manager
Update Configuration Manager components to use Inventory Manager devices:
- Create equivalent compliance policies for Inventory Manager devices
- Test golden configuration templates
- Validate backup and restore operations
For more information, see Configuration Manager support.
Command templates
Update command template operations:
- Test command templates against Inventory Manager devices
- Update device selection in automated workflows
- Verify result capture and processing
For more information, see Command templates support.
Step 8: Validate and decommission
Validation: Run both systems in parallel to verify:
- All inventories migrated successfully
- All workflows refactored and tested
- Configuration Manager and command template operations working
- Performance meets or exceeds IAG 4
Decommission IAG 4:
- Stop new IAG 4 usage
- Monitor for 48-72 hours for unexpected dependencies
- Remove or disable IAG 4 in Device Broker
- Archive IAG 4 configurations
- Shut down IAG 4 instances