Created
January 8, 2022 00:27
-
-
Save sean-perryman/70dbc31c560d2680e1055c720ce90246 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# MicroStack by Canonical - Helper Install Script | |
# | |
# This script installs the MicroStack snap and setups up the networking fix developed by Rodrigo Nascimento | |
# | |
# Original blog post available here: https://connection.rnascimento.com/2021/03/08/openstack-single-node-microstack/ | |
# | |
# Note: Make sure you adjust the INTERFACE and IP_ADDRESS variables to your environment. | |
# If you make the IP_ADDRESS the same as your current address you won't lose connection. | |
# | |
#Exit if not running as root or with sudo | |
if [ "$(id -u)" -ne 0 ]; then | |
echo 'This script must be run by root or with sudo' >&2 | |
exit 1 | |
fi | |
INTERFACE="enp5s0" | |
IP_ADDRESS="192.168.88.41" | |
# Install MicroStack | |
snap install microstack --devmode --beta | |
microstack init --auto --control | |
# Alias useful commands | |
snap alias microstack.ovs-vsctl ovs-vsctl | |
snap alias microstack.openstack openstack | |
# Set up the OpenVSwitch bridge per the above-mentioned blog post | |
echo Setting up the OVS bridge, hold on to your butts... | |
ovs-vsctl add-port br-ex $INTERFACE | |
ip addr flush dev $INTERFACE | |
ip addr add $IP_ADDRESS/24 dev br-ex | |
ip link set br-ex up | |
# Create the service file | |
echo Creating the microstack-br-workaround.service file | |
echo "[Unit]" > /etc/systemd/system/microstack-br-workaround.service | |
echo "Description=Service for adding physical ip to microstack bridge" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "Requires=snap.microstack.external-bridge.service" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "After=snap.microstack.external-bridge.service" >> /etc/systemd/system/microstack-br-workaround.service | |
echo >> /etc/systemd/system/microstack-br-workaround.service | |
echo "[Service]" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "ExecStart=/usr/local/bin/microstack-br-workaround" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "SyslogIdentifier=microstack-br-workaround" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "Restart=no" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "WorkingDirectory=/usr/local/bin" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "TimeoutStopSec=30" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "Type=oneshot" >> /etc/systemd/system/microstack-br-workaround.service | |
echo >> /etc/systemd/system/microstack-br-workaround.service | |
echo "[Install]" >> /etc/systemd/system/microstack-br-workaround.service | |
echo "WantedBy=multi-user.target" >> /etc/systemd/system/microstack-br-workaround.service | |
# Create the script and chmod +x it | |
echo Creating the microstack-br-workaround script | |
echo "#!/bin/bash" > /usr/local/bin/microstack-br-workaround | |
echo "ip address add $IP_ADDRESS dev br-ex || :" >> /usr/local/bin/microstack-br-workaround | |
echo "ip link set br-ex up || :" >> /usr/local/bin/microstack-br-workaround | |
chmod +x /usr/local/bin/microstack-br-workaround | |
# Enable the service to maintain post-reboot | |
echo Enabling microstack-br-workaround service | |
systemctl daemon-reload | |
systemctl enable microstack-br-workaround.service --now | |
# Get the admin password and output to a file. Chown just in case. | |
snap get microstack config.credentials.keystone-password > /home/ubuntu/openstack_admin_password.txt | |
chown ubuntu:ubuntu /home/ubuntu/openstack_admin_password.txt | |
# All done! | |
echo Horizon Admin Password: | cat /home/ubuntu/openstack_admin_password.txt | |
echo Horizon URL: https://$IP_ADDRESS | |
echo Done! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment