airship-in-a-bottle/tools/multi_nodes_gate/airship_gate/lib/bgp.sh

34 lines
1.3 KiB
Bash

QUAGGA_DAEMONS="${TEMP_DIR}/daemons"
QUAGGA_DEBIAN_CONF="${TEMP_DIR}/debian.conf"
QUAGGA_BGPD_CONF="${TEMP_DIR}/bgpd.conf"
bgp_router_config() {
quagga_as_number=$(config_bgp_as "quagga_as")
calico_as_number=$(config_bgp_as "calico_as")
quagga_ip=$(config_vm_ip "build")
QUAGGA_AS=${quagga_as_number} CALICO_AS=${calico_as_number} QUAGGA_IP=${quagga_ip} envsubst '${QUAGGA_AS} ${CALICO_AS} ${QUAGGA_IP}' < "${TEMPLATE_DIR}/bgpd_conf.sub" > "${QUAGGA_BGPD_CONF}"
cp "${TEMPLATE_DIR}/daemons.sub" "${QUAGGA_DAEMONS}"
cp "${TEMPLATE_DIR}/debian_conf.sub" "${QUAGGA_DEBIAN_CONF}"
}
bgp_router_start() {
# nodename where BGP router should run
nodename=$1
remote_work_dir="/var/tmp/quagga"
remote_daemons_file="${remote_work_dir}/$(basename $QUAGGA_DAEMONS)"
remote_debian_conf_file="${remote_work_dir}/$(basename $QUAGGA_DEBIAN_CONF)"
remote_bgpd_conf_file="${remote_work_dir}/$(basename $QUAGGA_BGPD_CONF)"
ssh_cmd "${nodename}" mkdir -p "${remote_work_dir}"
rsync_cmd "$QUAGGA_DAEMONS" "${nodename}:${remote_daemons_file}"
rsync_cmd "$QUAGGA_DEBIAN_CONF" "${nodename}:${remote_debian_conf_file}"
rsync_cmd "$QUAGGA_BGPD_CONF" "${nodename}:${remote_bgpd_conf_file}"
ssh_cmd "${nodename}" docker run -ti -d --net=host --privileged -v /var/tmp/quagga:/etc/quagga --restart always --name Quagga $IMAGE_QUAGGA
}