Skip to content

Commit 1269c6c

Browse files
authored
Merge pull request #202 from stackhpc/rocky10
Add support for Rocky Linux 10
2 parents 56950b7 + 47d0e14 commit 1269c6c

File tree

7 files changed

+36
-32
lines changed

7 files changed

+36
-32
lines changed

README.rst

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Requirements
2020

2121
For this workshop, we require the use of a single server, configured as a
2222
*seed hypervisor*. This server should be a bare metal node or VM running
23-
Ubuntu Jammy or Rocky 9, with the following minimum requirements:
23+
Ubuntu Noble or Rocky Linux 10, with the following minimum requirements:
2424

2525
* 64GB RAM (more is recommended when growing the lab deployment)
2626
* 100GB disk
@@ -59,7 +59,7 @@ There are four parts to this guide:
5959
exercise, and fetching the necessary source code.
6060

6161
*Deploying a Seed* includes all instructions necessary to download and install
62-
the Kayobe prerequisites on a plain Rocky 9 or Ubuntu Jammy cloud image,
62+
the Kayobe prerequisites on a plain Rocky Linux 10 or Ubuntu Noble cloud image,
6363
including provisioning and configuration of a seed VM. Optionally, snapshot the
6464
instance after this step to reduce setup time in the future.
6565

@@ -81,15 +81,10 @@ already logged in (e.g. ``ssh rocky@<ip>``, or ``ssh ubuntu@<ip>``).
8181
8282
# Install git and tmux.
8383
if $(which dnf 2>/dev/null >/dev/null); then
84-
sudo dnf -y install git tmux
84+
sudo dnf -y install git python3 tmux
8585
else
8686
sudo apt update
87-
sudo apt -y install git tmux
88-
fi
89-
90-
# Install Python 3.12 on Rocky Linux 9
91-
if $(which dnf 2>/dev/null >/dev/null); then
92-
sudo dnf -y install python3.12
87+
sudo apt -y install git python3 tmux
9388
fi
9489
9590
# Disable the firewall.
@@ -114,12 +109,7 @@ already logged in (e.g. ``ssh rocky@<ip>``, or ``ssh ubuntu@<ip>``).
114109
[[ -d beokay ]] || git clone https://github.com/stackhpc/beokay.git
115110
116111
# Use Beokay to bootstrap your control host.
117-
if $(which dnf 2>/dev/null >/dev/null); then
118-
PYTHON_ARG=" --python /usr/bin/python3.12"
119-
else
120-
PYTHON_ARG=""
121-
fi
122-
[[ -d deployment ]] || beokay/beokay.py create --base-path ~/deployment --kayobe-repo https://opendev.org/openstack/kayobe.git --kayobe-branch master --kayobe-config-repo https://github.com/stackhpc/a-universe-from-nothing.git --kayobe-config-branch master $PYTHON_ARG
112+
[[ -d deployment ]] || beokay/beokay.py create --base-path ~/deployment --kayobe-repo https://opendev.org/openstack/kayobe.git --kayobe-branch master --kayobe-config-repo https://github.com/stackhpc/a-universe-from-nothing.git --kayobe-config-branch master
123113
124114
# Clone the Tenks repository.
125115
cd ~/deployment/src
@@ -235,6 +225,9 @@ Configure and deploy OpenStack to the control plane
235225
.. code-block:: console
236226
237227
kayobe overcloud host configure
228+
kayobe overcloud host package update --packages '*'
229+
kayobe overcloud host command run --become --command "dnf install -y kernel-modules-extra"
230+
kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/reboot.yml
238231
kayobe overcloud container image pull
239232
kayobe overcloud service deploy
240233
source ~/deployment/src/kayobe-config/etc/kolla/public-openrc.sh

a-universe-from-nothing.sh

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,10 @@ set -eu
77

88
# Install git and tmux.
99
if $(which dnf 2>/dev/null >/dev/null); then
10-
sudo dnf -y install git tmux
10+
sudo dnf -y install git python3 tmux
1111
else
1212
sudo apt update
13-
sudo apt -y install git tmux
14-
fi
15-
16-
# Install Python 3.12 on Rocky Linux 9
17-
if $(which dnf 2>/dev/null >/dev/null); then
18-
sudo dnf -y install python3.12
13+
sudo apt -y install git python3 tmux
1914
fi
2015

2116
# Disable the firewall.
@@ -37,12 +32,7 @@ cd
3732
[[ -d beokay ]] || git clone https://github.com/stackhpc/beokay.git
3833

3934
# Use Beokay to bootstrap your control host.
40-
if $(which dnf 2>/dev/null >/dev/null); then
41-
PYTHON_ARG=" --python /usr/bin/python3.12"
42-
else
43-
PYTHON_ARG=""
44-
fi
45-
[[ -d deployment ]] || beokay/beokay.py create --base-path ~/deployment --kayobe-repo https://opendev.org/openstack/kayobe.git --kayobe-branch master --kayobe-config-repo https://github.com/stackhpc/a-universe-from-nothing.git --kayobe-config-branch master $PYTHON_ARG
35+
[[ -d deployment ]] || beokay/beokay.py create --base-path ~/deployment --kayobe-repo https://opendev.org/openstack/kayobe.git --kayobe-branch master --kayobe-config-repo https://github.com/stackhpc/a-universe-from-nothing.git --kayobe-config-branch master
4636

4737
# Clone the Tenks repository.
4838
cd ~/deployment/src
@@ -87,6 +77,9 @@ kayobe overcloud hardware inspect
8777
kayobe overcloud introspection data save
8878
kayobe overcloud provision
8979
kayobe overcloud host configure
80+
kayobe overcloud host package update --packages '*'
81+
kayobe overcloud host command run --become --command "dnf install -y kernel-modules-extra"
82+
kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/reboot.yml
9083
kayobe overcloud container image pull
9184
kayobe overcloud service deploy
9285
source ~/deployment/src/kayobe-config/etc/kolla/public-openrc.sh

configure-local-networking.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public_ip="10.0.2.1"
2828

2929
# Install iptables.
3030
if $(which dnf >/dev/null 2>&1); then
31-
sudo dnf -y install iptables
31+
sudo dnf -y install iptables kernel-modules-extra
3232
fi
3333

3434
if $(which apt >/dev/null 2>&1); then

etc/kayobe/ansible/reboot.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
- name: Reboot overcloud hosts if required
3+
hosts: overcloud
4+
tags:
5+
- reboot
6+
tasks:
7+
- block:
8+
- name: Check if hosts need restarting
9+
ansible.builtin.command:
10+
cmd: needs-restarting -r
11+
failed_when: false
12+
register: needs_restarting
13+
14+
- name: Reboot and wait
15+
become: true
16+
ansible.builtin.reboot:
17+
when: needs_restarting.rc == 1
18+
when: ansible_facts.os_family == 'RedHat'

etc/kayobe/inventory/group_vars/compute/network-interfaces

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Controller interface on all-in-one network.
66
aio_interface: "br{{ aio_bridge_ports[0] }}"
77
aio_bridge_ports:
8-
- "{{ 'ens2' if os_distribution == 'ubuntu' else 'eth0' }}"
8+
- "{{ 'eth0' if (os_release | string).startswith('9') else 'ens2' }}"
99

1010
# Route via the seed-hypervisor to the outside world.
1111
aio_gateway: 192.168.33.4

etc/kayobe/inventory/group_vars/controllers/network-interfaces

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Controller interface on all-in-one network.
66
aio_interface: "br{{ aio_bridge_ports[0] }}"
77
aio_bridge_ports:
8-
- "{{ 'ens2' if os_distribution == 'ubuntu' else 'eth0' }}"
8+
- "{{ 'eth0' if (os_release | string).startswith('9') else 'ens2' }}"
99

1010
# Route via the seed-hypervisor to the outside world.
1111
aio_gateway: 192.168.33.4

etc/kayobe/inventory/group_vars/seed/network-interfaces

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
###############################################################################
33
# Network interface definitions for the seed group.
44

5-
aio_interface: "{{ 'ens2' if os_distribution == 'ubuntu' else 'eth0' }}"
5+
aio_interface: "{{ 'eth0' if (os_release | string).startswith('9') else 'ens2' }}"
66

77
# Route via the seed-hypervisor to the outside world.
88
# FIXME: Circular reference between seed & seed-hypervisor?

0 commit comments

Comments
 (0)