IRONIC_DISCOVERD_DEBUG=${IRONIC_DISCOVERD_DEBUG:-false} IRONIC_DISCOVERD_DIR=$DEST/ironic-discoverd IRONIC_DISCOVERD_BIN_DIR=$(get_python_exec_prefix) IRONIC_DISCOVERD_BIN_FILE=$IRONIC_DISCOVERD_BIN_DIR/ironic-discoverd IRONIC_DISCOVERD_CONF_DIR=${IRONIC_DISCOVERD_CONF_DIR:-/etc/ironic-discoverd} IRONIC_DISCOVERD_CONF_FILE=$IRONIC_DISCOVERD_CONF_DIR/discoverd.conf IRONIC_DISCOVERD_DHCP_CONF_FILE=$IRONIC_DISCOVERD_CONF_DIR/dnsmasq.conf IRONIC_DISCOVERD_DATA_DIR=$DATA_DIR/ironic-discoverd IRONIC_DISCOVERD_ADMIN_USER=${IRONIC_DISCOVERD_ADMIN_USER:-ironic-discoverd} IRONIC_DISCOVERD_MANAGE_FIREWALL=$(trueorfalse True $IRONIC_DISCOVERD_MANAGE_FIREWALL) IRONIC_DISCOVERD_HOST=$HOST_IP IRONIC_DISCOVERD_PORT=5050 IRONIC_DISCOVERD_URI="http://$IRONIC_DISCOVERD_HOST:$IRONIC_DISCOVERD_PORT" IRONIC_DISCOVERD_RAMDISK_ELEMENT=${IRONIC_DISCOVERD_RAMDISK_ELEMENT:-ironic-discoverd-ramdisk} IRONIC_DISCOVERD_RAMDISK_FLAVOR=${IRONIC_DISCOVERD_RAMDISK_FLAVOR:-fedora $IRONIC_DISCOVERD_RAMDISK_ELEMENT} # These should not overlap with other ranges/networks IRONIC_DISCOVERD_INTERNAL_IP=${IRONIC_DISCOVERD_INTERNAL_IP:-172.24.5.254} IRONIC_DISCOVERD_INTERNAL_SUBNET_SIZE=${IRONIC_DISCOVERD_INTERNAL_SUBNET_SIZE:-24} IRONIC_DISCOVERD_DHCP_RANGE=${IRONIC_DISCOVERD_DHCP_RANGE:-172.24.5.100,172.24.5.253} IRONIC_DISCOVERD_INTERFACE=${IRONIC_DISCOVERD_INTERFACE:-br-discoverd} IRONIC_DISCOVERD_INTERNAL_URI="http://$IRONIC_DISCOVERD_INTERNAL_IP:$IRONIC_DISCOVERD_PORT" IRONIC_DISCOVERD_INTERNAL_IP_WITH_NET=$IRONIC_DISCOVERD_INTERNAL_IP/$IRONIC_DISCOVERD_INTERNAL_SUBNET_SIZE ### Utilities function mkdir_chown_stack { if [[ ! -d "$1" ]]; then sudo mkdir -p "$1" fi sudo chown $STACK_USER "$1" } function discoverd_iniset { iniset "$IRONIC_DISCOVERD_CONF_FILE" discoverd $1 $2 } ### Install-start-stop function install_discoverd { setup_develop $IRONIC_DISCOVERD_DIR } function install_discoverd_dhcp { install_package dnsmasq } function start_discoverd { screen_it ironic-discoverd "cd $IRONIC_DISCOVERD_DIR && sudo $IRONIC_DISCOVERD_BIN_FILE --config-file $IRONIC_DISCOVERD_CONF_FILE" } function start_discoverd_dhcp { screen_it ironic-discoverd-dhcp "sudo dnsmasq --conf-file=$IRONIC_DISCOVERD_DHCP_CONF_FILE" } function stop_discoverd { screen -S $SCREEN_NAME -p ironic-discoverd -X kill } function stop_discoverd_dhcp { screen -S $SCREEN_NAME -p ironic-discoverd-dhcp -X kill } ### Configuration function prepare_tftp { IRONIC_DISCOVERD_IMAGE_PATH="$TOP_DIR/files/ironic-discoverd" IRONIC_DISCOVERD_KERNEL_PATH="$IRONIC_DISCOVERD_IMAGE_PATH.kernel" IRONIC_DISCOVERD_INITRAMFS_PATH="$IRONIC_DISCOVERD_IMAGE_PATH.initramfs" if [ ! -e "$IRONIC_DISCOVERD_KERNEL_PATH" -o ! -e "$IRONIC_DISCOVERD_INITRAMFS_PATH" ]; then if [[ $(type -P ramdisk-image-create) == "" ]]; then pip_install diskimage_builder fi ramdisk-image-create $IRONIC_DISCOVERD_RAMDISK_FLAVOR \ -o $IRONIC_DISCOVERD_IMAGE_PATH fi mkdir_chown_stack "$IRONIC_TFTPBOOT_DIR/pxelinux.cfg" cp $IRONIC_DISCOVERD_KERNEL_PATH $IRONIC_DISCOVERD_INITRAMFS_PATH \ $IRONIC_TFTPBOOT_DIR cat > "$IRONIC_TFTPBOOT_DIR/pxelinux.cfg/default" < "$IRONIC_DISCOVERD_DHCP_CONF_FILE" <