Skip to content

Instantly share code, notes, and snippets.

@hgomez
Last active March 10, 2023 16:59
Show Gist options
  • Save hgomez/1ca02730fe56e5fbe047a8a68afb6778 to your computer and use it in GitHub Desktop.
Save hgomez/1ca02730fe56e5fbe047a8a68afb6778 to your computer and use it in GitHub Desktop.
How to install OpenStack Zed on RockyLinux 9.1 - Using DevStack

How to install OpenStack Zed on Rocky Linux 9.1 - Using DevStack

Let see how to deploy OpenStack Zen on Rocky Linux 9.1

This time, I will try to use DevStack

Rocky Linux 9.1

Install Rocky Linux 9.1, minimal setup, using DVD ISO

I used a VirtualBox VM, 2 VCPU, 8GB RAM, 30 GB Storage, Bridged network (to ease operation from remote).

Make sure that root account allow remote login

Create stack user on VM

sudo useradd -s /bin/bash -d /opt/stack -m stack
sudo chmod +x /opt/stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo -u stack -i

Prepare Environment

Be sure to be in en_US and UTF-8 (ie: /etc/environment)

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

Disable selinux

sudo setenforce 0

Make it permanent by editing /etc/sysconfig/selinux

SELINUX=disabled

Reboot

sudo reboot

Verify after reboot

sestatus 

You should see

SELinux status:                 disabled

Connect to VM as stack user

You should be connected as non root user, let's use stack account

Prepare DevStack

# Install git 
sudo dnf install git -y

# Download DevStack
git clone https://opendev.org/openstack/devstack
cd devstack
# Go to Zed Stable
git checkout stable/zed

Configure DevStack

Create a configuration file on devstack folder. You should specify VM IP, example 10.0.0.123

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
HOST_IP=10.0.0.123

Patch Zed DevStack

Back port change found in master

--- /opt/stack/devstack/functions-common.orig	2023-03-10 11:15:35.706271496 +0100
+++ /opt/stack/devstack/functions-common	2023-03-10 11:22:21.742556662 +0100
@@ -418,6 +418,9 @@
         os_RELEASE=${VERSION_ID}
         os_CODENAME="n/a"
         os_VENDOR=$(echo $NAME | tr -d '[:space:]')
+    elif [[ "${ID}${VERSION}" =~ "rocky9" ]]; then
+        os_VENDOR="Rocky"
+        os_RELEASE=${VERSION_ID}
     else
         _ensure_lsb_release
 
@@ -466,6 +469,7 @@
         "$os_VENDOR" =~ (AlmaLinux) || \
         "$os_VENDOR" =~ (Scientific) || \
         "$os_VENDOR" =~ (OracleServer) || \
+        "$os_VENDOR" =~ (Rocky) || \
         "$os_VENDOR" =~ (Virtuozzo) ]]; then
         # Drop the . release as we assume it's compatible
         # XXX re-evaluate when we get RHEL10
@@ -513,7 +517,7 @@
 
 
 # Determine if current distribution is a Fedora-based distribution
-# (Fedora, RHEL, CentOS, etc).
+# (Fedora, RHEL, CentOS, Rocky, etc).
 # is_fedora
 function is_fedora {
     if [[ -z "$os_VENDOR" ]]; then
@@ -523,6 +527,7 @@
     [ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
         [ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
         [ "$os_VENDOR" = "RedHatEnterprise" ] || \
+        [ "$os_VENDOR" = "Rocky" ] || \
         [ "$os_VENDOR" = "CentOS" ] || [ "$os_VENDOR" = "CentOSStream" ] || \
         [ "$os_VENDOR" = "AlmaLinux" ] || \
         [ "$os_VENDOR" = "OracleServer" ] || [ "$os_VENDOR" = "Virtuozzo" ]

Install OpenStack

Logged as stack user and under /opt/stack/devstack directory

cd /opt/stack/devstack
./stack.sh

For now stucked at

+lib/neutron_plugins/ovn_agent:wait_for_sock_file:191  die 191 'Socket /var/run/openvswitch/ovnnb_db.sock not found'
+functions-common:die:264                  local exitcode=0
+functions-common:die:265                  set +o xtrace
[Call Trace]
./stack.sh:1273:start_ovn_services
/opt/stack/devstack/lib/neutron-legacy:521:start_ovn
/opt/stack/devstack/lib/neutron_plugins/ovn_agent:715:wait_for_sock_file
/opt/stack/devstack/lib/neutron_plugins/ovn_agent:191:die
[ERROR] /opt/stack/devstack/lib/neutron_plugins/ovn_agent:191 Socket /var/run/openvswitch/ovnnb_db.sock not found

Some hope here ? => https://stackoverflow.com/questions/68001501/error-opt-stack-devstack-lib-neutron-plugins-ovn-agent174-socket

Dirty way ?

Uninstall all ovn packages after ./unstack.sh and ./clean.sh

./unstack.sh
./clean.sh
sudo dnf remove -y ovn-common ovn-controller-vtep ovn-host ovn-central

Try reinstall

./stack.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment