instack-undercloud/elements/undercloud-post-config-source/os-refresh-config/post-configure.d/98-undercloud-setup

96 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
set -eux
OK_FILE=/opt/stack/.undercloud-setup
if [ -f $OK_FILE ]; then
exit
fi
# Fixes pxe boot failures for overcloud nodes
sudo ip addr del 192.0.2.1/24 dev eth1 || true
source /root/tripleo-undercloud-passwords
source /root/stackrc
export PATH=$PATH:$INSTACK_ROOT/tripleo-incubator/scripts
if [ ! -f /root/.ssh/authorized_keys ]; then
sudo mkdir -p /root/.ssh
sudo chmod 7000 /root/.ssh/
sudo touch /root/.ssh/authorized_keys
sudo chmod 600 /root/.ssh/authorized_keys
fi
if [ ! -f /root/.ssh/id_rsa ]; then
ssh-keygen -b 1024 -N '' -f /root/.ssh/id_rsa
fi
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
KEYSTONE_SERVICE=keystone
if [ -f /lib/systemd/system/openstack-keystone.service ]; then
KEYSTONE_SERVICE=openstack-keystone
fi
# Ensure keystone is up before continuing on.
# Waits for up to 2 minutes.
wait_for 12 10 service $KEYSTONE_SERVICE status
# Because keystone just still isn't up yet...
sleep 20
export UNDERCLOUD_IP=$(os-apply-config --key local-ipv4 --type netaddress)
init-keystone -o $UNDERCLOUD_IP -t $UNDERCLOUD_ADMIN_TOKEN \
-e admin@example.com -p $UNDERCLOUD_ADMIN_PASSWORD -u root
# Create service endpoints and optionally include Ceilometer for UI support
ENDPOINT_LIST="--glance-password $UNDERCLOUD_GLANCE_PASSWORD
--heat-password $UNDERCLOUD_HEAT_PASSWORD
--neutron-password $UNDERCLOUD_NEUTRON_PASSWORD
--nova-password $UNDERCLOUD_NOVA_PASSWORD
--tuskar-password $UNDERCLOUD_TUSKAR_PASSWORD
--ironic-password $UNDERCLOUD_IRONIC_PASSWORD
--ceilometer-password $UNDERCLOUD_CEILOMETER_PASSWORD"
REGISTER_SERVICE_OPTS=
# Needed by ceilometer user in register-endpoint
keystone role-create --name=ResellerAdmin
# TODO: this needs to be switched over to use os-cloud-config's setup-endpoints
setup-endpoints $UNDERCLOUD_IP $ENDPOINT_LIST $REGISTER_SERVICE_OPTS
keystone role-create --name heat_stack_user
DHCP_START=$(os-apply-config --key neutron.dhcp_start --type netaddress)
DHCP_END=$(os-apply-config --key neutron.dhcp_end --type netaddress)
NETWORK_CIDR=$(os-apply-config --key neutron.network_cidr --type raw)
NETWORK_GATEWAY=$(os-apply-config --key neutron.network_gateway --type netaddress)
METADATA_SERVER=$UNDERCLOUD_IP
PHYSICAL_NETWORK=ctlplane
setup-neutron \
$DHCP_START $DHCP_END \
$NETWORK_CIDR $NETWORK_GATEWAY \
$METADATA_SERVER $PHYSICAL_NETWORK
# Delete initial flavors
for flavor in m1.tiny m1.small m1.medium m1.large m1.xlarge; do
if nova flavor-show "$flavor" &> /dev/null; then
nova flavor-delete "$flavor"
fi
done
# Disable nova quotas
nova quota-update --cores -1 --instances -1 --ram -1 $(keystone tenant-get admin | awk '$2=="id" {print $4}')
# Using the source checkout path for now.
sudo -u stack /home/stack/instack-undercloud/scripts/instack-prepare-for-overcloud
sudo rm -rf /home/stack/.novaclient
/home/stack/instack-undercloud/scripts/instack-prepare-discovery
touch $OK_FILE