22. Scan — cdist 6.9.8 documentation

# 22. Scan

## 22.1. Description

Runs cdist as a daemon that discover/watch on hosts and reconfigure them periodically. It is especially useful in netboot-based environment where hosts boot unconfigured, and to ensure your infrastructure stays in sync with your configuration.

This feature is still consider to be in beta stage, and only operate on IPv6 (including link-local).

## 22.2. Usage (Examples)

Discover hosts on local network and configure those whose name is resolved by the name mapper script.

    $ cdist scan --beta --interface eth0 \
      --mode scan --name-mapper path/to/script \
      --mode trigger --mode config

List known hosts and exit.

    $ cdist scan --beta --list --name-mapper path/to/script

Please refer to cdist(1) for a detailed list of parameters.

## 22.3. Modes

The scanner has 3 modes that can be independently toggled. If the --mode parameter is not specified, only tigger and scan are enabled (= hosts are not configured).

trigger

  Send ICMPv6 requests to specific hosts or broadcast over IPv6 link-local to trigger detection by the scan module.

scan

  Watch for incoming ICMPv6 replies and optionally configure detected hosts.

config

  Enable configuration of hosts detected by scan.

## 22.4. Name Mapper Script

The name mapper script takes an IPv6 address as first argument and writes the resolved name to stdout - if any. The script must be executable.

Simplest script:

    #!/bin/sh

    case "$1" in
          "fe80::20d:b9ff:fe57:3524")
                  printf "my-host-01"
                  ;;
          "fe80::7603:bdff:fe05:89bb")
                  printf "my-host-02"
                  ;;
    esac

Resolving name from PTR DNS record:

    #!/bin/sh

    for cmd in dig sed; do
          if ! command -v $cmd > /dev/null; then
                  exit 1
          fi
    done

    dig +short -x "$1" | sed -e 's/.$//'