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/.$//'