1d9e8fc976
Previously, the external network carried both public API traffic and neutron external network traffic. In some cases is it useful to separate these networks. The public network now carries the public API traffic, leaving the external network to carry neutron external network traffic alone. For backwards compatibility, the public network defaults to the external network.
78 lines
2.1 KiB
Bash
Executable File
78 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function configure_kayobe {
|
|
KAYOBE_CONFIG_PATH=${KAYOBE_CONFIG_PATH:-/etc/kayobe}
|
|
sudo yum -y install python-netaddr
|
|
sudo mkdir -p ${KAYOBE_CONFIG_PATH}
|
|
sudo chown ${USER}:${USER} ${KAYOBE_CONFIG_PATH}
|
|
chmod 755 ${KAYOBE_CONFIG_PATH}
|
|
cp -r etc/kayobe/* ${KAYOBE_CONFIG_PATH}
|
|
my_interface=$(ip route get 8.8.8.8 | awk '{ print $5 }')
|
|
my_ip=$(ip route get 8.8.8.8 | awk '{ print $7 }')
|
|
gateway=$(ip route get 8.8.8.8 | awk '{ print $3 }')
|
|
cidr=$(ip a show $my_interface | awk '$1 == "inet" { print $2 }')
|
|
vip=$(python -c "import netaddr; a = netaddr.IPAddress('$my_ip'); print a+2")
|
|
cat >> ${KAYOBE_CONFIG_PATH}/ntp.yml << EOF
|
|
|
|
#######################################################
|
|
# Local config
|
|
timezone: GMT
|
|
EOF
|
|
|
|
cat >> ${KAYOBE_CONFIG_PATH}/networks.yml << EOF
|
|
|
|
#######################################################
|
|
# Local config
|
|
provision_oc_net_name: 'the_net'
|
|
provision_wl_net_name: 'the_net'
|
|
internal_net_name: 'the_net'
|
|
public_net_name: 'the_net'
|
|
external_net_name: 'the_net'
|
|
storage_net_name: 'the_net'
|
|
storage_mgmt_net_name: 'the_net'
|
|
|
|
the_net_vip_address: ${vip}
|
|
the_net_cidr: ${cidr}
|
|
the_net_gateway: ${gateway}
|
|
EOF
|
|
|
|
cat > ${KAYOBE_CONFIG_PATH}/network-allocation.yml << EOF
|
|
---
|
|
the_net_ips:
|
|
localhost: ${my_ip}
|
|
EOF
|
|
|
|
cat > ${KAYOBE_CONFIG_PATH}/inventory/hosts << EOF
|
|
[config-mgmt]
|
|
# This host acts as the configuration management control host. This must be
|
|
# localhost.
|
|
localhost ansible_connection=local
|
|
|
|
[seed]
|
|
# This host will provide the Bifrost undercloud.
|
|
localhost ansible_host=127.0.0.1
|
|
|
|
[controllers]
|
|
# These hosts will provide the OpenStack overcloud.
|
|
EOF
|
|
|
|
if [[ -e ~/kayobe-env ]] ; then
|
|
for controller_ip in $(python -c "import json
|
|
with open('/home/centos/kayobe-env') as f:
|
|
cfg = json.load(f)
|
|
for ctl_ip in cfg['controller_ips']:
|
|
print ctl_ip"); do
|
|
echo " '$controller_ip': $controller_ip" >> ${KAYOBE_CONFIG_PATH}/network-allocation.yml
|
|
echo $controller_ip >> ${KAYOBE_CONFIG_PATH}/inventory/hosts
|
|
done
|
|
fi
|
|
}
|
|
|
|
function main {
|
|
configure_kayobe
|
|
}
|
|
|
|
main $@
|