Skip to content

sync

Synchronization commands for NDCLI. These commands help you monitor and trigger configuration synchronization to devices.

Configuration sync ensures that devices receive and apply the latest configuration from their assigned templates. Sync status shows whether devices are up-to-date with their expected configuration.

CommandDescription
sync statusShow sync status for devices
sync applyTrigger sync for devices

Show synchronization status for devices.

Terminal window
ndcli sync status [flags]
FlagTypeDefaultDescription
--devicestringFilter by device name (regex pattern)
--oustringFilter by organizational unit (regex pattern)
--templatestringFilter by template name (regex pattern) — devices whose effective OU→Template chain matches
--orgstringcurrent orgFilter by organization (regex pattern)
--drift-statusstringFilter by drift status: IN_SYNC, DRIFT, NEVER_SYNCED, UNKNOWN, ERROR

Shows for each device:

  • Device name
  • Organizational unit
  • Sync status (synced/pending/error)
  • Drift status
  • Last sync timestamp
  • Configuration version
StateDescription
SyncedDevice has the latest configuration
PendingDevice needs to sync new configuration
ErrorLast sync attempt failed
NeverDevice has never synced
Terminal window
ndcli sync status
ndcli sync status --device fw-prod-01
ndcli sync status --ou production
ndcli sync status --device "fw-.*-01"
ndcli sync status --drift-status DRIFT
ndcli sync status --drift-status DRIFT --ou production

Trigger configuration sync for one or more devices.

Terminal window
ndcli sync apply [flags]
FlagTypeDefaultDescription
--devicestringSync devices matching pattern (regex)
--oustringSync all devices in OUs matching pattern (regex)
--templatestringSync devices whose effective OU→Template chain matches the template name (regex)
--orgstringcurrent orgFilter by organization (regex pattern)
--drift-statusstringOnly sync devices with the given drift status: IN_SYNC, DRIFT, NEVER_SYNCED, UNKNOWN, ERROR
--forceboolfalseForce sync even if already synced
--yes-yfalseSkip confirmation prompt
Terminal window
ndcli sync apply --device fw-prod-01
ndcli sync apply --ou production
ndcli sync apply --ou "prod.*"
ndcli sync apply --device "fw-datacenter-.*"
ndcli sync apply --template edge-firewall-v2
ndcli sync apply --template "^edge-.*" --yes
ndcli sync apply --device fw-prod-01 --force
ndcli sync apply --ou staging --yes
ndcli sync apply --drift-status DRIFT
ndcli sync apply --drift-status DRIFT --yes

By default, sync apply asks for confirmation before triggering syncs. Use --yes or -y to skip:

Terminal window
ndcli sync apply --ou production -y

Normally, devices that are already synced are skipped. Use --force to re-sync all matched devices:

Terminal window
ndcli sync apply --ou production --force

You can combine --device, --ou, and --template to narrow the scope (filters compose via AND):

Terminal window
ndcli sync apply --ou production --device "fw-web-.*"
ndcli sync apply --template edge-firewall-v2 --ou "prod.*"

Templates can be attached to multiple OUs. --template selects every device whose effective Device → OU → Template chain includes a template matching the regex, so you can sync “everything affected by template X” without enumerating its OUs:

Terminal window
ndcli sync status --template '^edge-firewall-.*'
ndcli sync apply --template edge-firewall-v2 -y
Terminal window
ndcli sync status --ou production
ndcli sync apply --ou production
ndcli sync status --ou production
ndcli task list --type SYNC --created-after 5m