Red Hat OpenStack Platform 16.1
We are testing OCS on OCP on OSP, this installation is described in three parts:
- Part 1: Red Hat OpenStack Platform 16.1 installation
- Part 2: OpenShift Container Platform 4.6 installation
- Part 3: OpenShift Container Storage 4.5 installation
Let’s first deploy Red Hat OpenStack Platform 16.1.
Red Hat OpenStack Platform 16.1 (RHOSP) was released Jul 29, 2020. RHOSP 16.1 is based on “OpenStack Train” and RHEL 8.2.
Most of the time, I’m using Ansible for this type of deployment (automatic setup of the director node), but we will show here the manual step by step commands from the documentation.
You can see a short summary of this OSP 16.1 installation in this 3mn video:
Table of content:
Platform
We are taking 7 x Dell PowerEdge R740xd servers, with dual Xeon and and 192GB of RAM.
We will apply this documentation
We can use a classic network segmentation with these IP ranges:
Network | Subnet | Mask | VLAN |
---|---|---|---|
External | 172.16.14.0 | 24 | (0) |
Provisioning | 172.16.16.0 | 24 | (0) |
Internal | 172.16.11.0 | 24 | 101 |
Storage | 172.16.12.0 | 24 | 102 |
Tenant | 172.16.13.0 | 24 | 103 |
Installing virtualized RHOSP director
Prepare a KVM host with RHEL 8.2
We are taking one Dell PowerEdge R740xd who will host the virtualized RHOSP director (one KVM Virtual Machne).
We install RHEL 8.2 on this host with PXE or ISO USB Key
Check the server version of your RHEL installed:
[root@e26-h15-740xd ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
[root@e26-h15-740xd ~]# uname -a
Linux e26-h15-740xd.XXXXXXXX.redhat.com 4.18.0-193.el8.x86_64 #1 SMP Fri Mar 27 14:35:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Add one user:
[root@e26-h15-740xd ~]# adduser egallen
[root@e26-h15-740xd ~]# passwd egallen
Changing password for user egallen.
New password:
BAD PASSWORD: The password fails the dictionary check - it does not contain enough DIFFERENT characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@e26-h15-740xd ~]# echo "egallen ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/egallen
egallen ALL=(root) NOPASSWD:ALL
Copy the SSH key from your laptop:
egallen@laptop ~ % ssh-copy-id egallen@e26-h15-740xd
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
egallen@10.19.96.164's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'egallen@e26-h15-740xd'"
and check to make sure that only the key(s) you wanted were added.
Register the node
Register the node:
[egallen@e26-h15-740xd ~]$ sudo subscription-manager register --username myrhnaccount
[egallen@e26-h15-740xd ~]$ sudo subscription-manager attach --pool=XXXXXXXXXXXXXXXXXXXXXXXXX
Successfully attached a subscription for: Red Hat
[egallen@e26-h15-740xd ~]$ sudo subscription-manager repos --disable=*
[egallen@e26-h15-740xd ~]$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=advanced-virt-for-rhel-8-x86_64-rpms
Repository 'rhel-8-for-x86_64-baseos-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-appstream-rpms' is enabled for this system.
Repository 'advanced-virt-for-rhel-8-x86_64-rpms' is enabled for this system.
Set the virt repository module to version 8.2:
[egallen@e26-h15-740xd ~]$ sudo dnf module disable -y virt:rhel
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 20 kB/s | 4.5 kB 00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 18 kB/s | 4.1 kB 00:00
Advanced Virtualization for RHEL 8 x86_64 (RPMs) 900 kB/s | 757 kB 00:00
Only module name is required. Ignoring unneeded information in argument: 'virt:rhel'
Dependencies resolved.
=================================================================================================================================================================================================================
Package Architecture Version Repository Size
=================================================================================================================================================================================================================
Disabling modules:
virt
Transaction Summary
=================================================================================================================================================================================================================
Complete!
[egallen@e26-h15-740xd ~]$ sudo dnf module enable -y virt:8.2
Updating Subscription Management repositories.
Last metadata expiration check: 0:00:05 ago on Thu 22 Oct 2020 08:58:51 PM UTC.
Dependencies resolved.
=================================================================================================================================================================================================================
Package Architecture Version Repository Size
=================================================================================================================================================================================================================
Enabling module streams:
virt 8.2
Transaction Summary
=================================================================================================================================================================================================================
Complete!
Update and reboot:
[egallen@e26-h15-740xd ~]$ sudo dnf update -y
[egallen@e26-h15-740xd ~]$ sudo systemctl reboot
Prepare KVM host to host the director VM (undercloud)
Red Hat OpenStack Platform director requires that the latest version of Red Hat Enterprise Linux 8 is installed as the host operating system. This means your virtualization platform must also support the underlying Red Hat Enterprise Linux version.
We need to enable these repositories:
Repository | Name |
---|---|
rhel-8-for-x86_64-baseos-eus-rpms | Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) Extended Update Support (EUS) |
rhel-8-for-x86_64-appstream-eus-rpms | Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) |
rhel-8-for-x86_64-highavailability-eus-rpms | Red Hat Enterprise Linux 8 for x86_64 - High Availability (RPMs) Extended Update Support (EUS) |
ansible-2.9-for-rhel-8-x86_64-rpms | Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs) |
advanced-virt-for-rhel-8-x86_64-rpms | Advanced Virtualization for RHEL 8 x86_64 (RPMs) |
openstack-16.1-for-rhel-8-x86_64-rpms | Red Hat OpenStack Platform 16.1 for RHEL 8 (RPMs) |
fast-datapath-for-rhel-8-x86_64-rpms | Red Hat Fast Datapath for RHEL 8 (RPMS) |
rhceph-4-tools-for-rhel-8-x86_64-rpms | Red Hat Ceph Storage Tools 4 for RHEL 8 x86_64 (RPMs) |
Prepare the director VM
[root@e26-h15-740xd ~]# cd /var/lib/libvirt/images/
[root@e26-h15-740xd images]# wget "https://access.cdn.redhat.com/content/origin/files/sha256/XXXX/rhel-8.2-x86_64-kvm.qcow2"
Prepare the qemu image:
[egallen@e26-h15-740xd ~]$ sudo qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/images/e26-director.qcow2 200G;
Formatting '/var/lib/libvirt/images/e26-director.qcow2', fmt=qcow2 size=214748364800 cluster_size=65536 preallocation=metadata lazy_refcounts=off refcount_bits=16
!!! We have to take care, the current QCOW2 KVM Cloud rhel-8.2 image do not have only one partition we will have to expand /dev/sda3 instead of /dev/sda1:
[egallen@e26-h15-740xd ~]$ virt-filesystems -a rhel-8.2-update-2-x86_64-kvm.qcow2
/dev/sda2
/dev/sda3
Copy the RHEL 8.2 QEMU Copy On Write data into the image:
[egallen@e26-h15-740xd ~]$ sudo virt-resize --expand /dev/sda3 /var/lib/libvirt/images/rhel-8.2-x86_64-kvm.qcow2 /var/lib/libvirt/images/e26-director.qcow2
[ 0.0] Examining /var/lib/libvirt/images/rhel-8.2-x86_64-kvm.qcow2
**********
Summary of changes:
/dev/sda1: This partition will be left alone.
/dev/sda2: This partition will be left alone.
/dev/sda3: This partition will be resized from 9.9G to 199.9G. The
filesystem xfs on /dev/sda3 will be expanded using the ‘xfs_growfs’
method.
**********
[ 2.5] Setting up initial partition table on /var/lib/libvirt/images/e26-director.qcow2
[ 13.2] Copying /dev/sda1
[ 13.3] Copying /dev/sda2
[ 13.3] Copying /dev/sda3
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
[ 24.4] Expanding /dev/sda3 using the ‘xfs_growfs’ method
Resize operation completed with no errors. Before deleting the old disk,
carefully check that the resized disk boots and works correctly.
Add a root password and remove cloud-init:
[egallen@e26-h15-740xd ~]$ sudo virt-customize -a /var/lib/libvirt/images/e26-firewall.qcow2 --uninstall cloud-init --root-password password:XXXXXX
[ 0.0] Examining the guest ...
[ 4.0] Setting a random seed
[ 4.0] Uninstalling packages: cloud-init
[ 5.3] Setting passwords
[ 6.6] Finishing off
Prepare the libvirt VM:
[egallen@e26-h15-740xd ~]$ sudo virt-install --ram 65536 --vcpus 10 --os-variant rhel8.0 \
--disk path=/var/lib/libvirt/images/e26-director.qcow2,device=disk,bus=virtio,format=qcow2 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--network type=direct,source=eno1,source_mode=bridge,model=virtio \
--network type=direct,source=ens7f0,source_mode=bridge,model=virtio \
--network default \
--name e26-director --dry-run \
--print-xml > /tmp/e26-director.xml;
[egallen@kvmhost0 ~]$ sudo virsh define --file /tmp/e26-director.xml
Domain vgpu-license-server defined from /tmp/vgpu-license-server.xml
Start the e26-director Virtual Machine:
[egallen@e26-h15-740xd ~]$ sudo virsh start e26-director
Domain e26-director started
Check which IP is provided by the libvirt DHCP:
[egallen@e26-h15-740xd ~]$ sudo journalctl | grep DHCPOFFER
Oct 22 21:22:33 e26-h15-740xd.XXXXXXXX.redhat.com dnsmasq-dhcp[3080]: DHCPOFFER(virbr0) 192.168.122.2 52:54:00:25:42:d3
Oct 22 21:23:29 e26-h15-740xd.XXXXXXXX.redhat.com dnsmasq-dhcp[3080]: DHCPOFFER(virbr0) 192.168.122.2 52:54:00:25:42:d3
Oct 22 21:32:23 e26-h15-740xd.XXXXXXXX.redhat.com dnsmasq-dhcp[3080]: DHCPOFFER(virbr0) 192.168.122.2 52:54:00:25:42:d3
Connect into the VM:
[egallen@e26-h15-740xd ~]$ ssh root@192.168.122.2
The authenticity of host '192.168.122.2 (192.168.122.2)' can't be established.
ECDSA key fingerprint is SHA256:acdYPDOAoWJ+QoREO1jX0vVq9I8Qlo8RfX5x/GlO+A0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.122.2' (ECDSA) to the list of known hosts.
root@192.168.122.2's password:
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
[root@localhost ~]#
Define the hostname:
[root@localhost ~]# hostnamectl set-hostname e26-director.lan.redhat.com
[root@localhost ~]# hostname
e26-director.lan.redhat.com
[root@localhost ~]# hostname -f
e26-director.lan.redhat.com
Create the new stack user:
[root@e26-director ~]# adduser stack
[root@e26-director ~]# passwd stack
[root@e26-director ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
[root@e26-director ~]# chmod 0440 /etc/sudoers.d/stack
Authorize the ssh public key:
[egallen@e26-h15-740xd ~]$ ssh-copy-id stack@192.168.122.2
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
stack@192.168.122.2's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'stack@192.168.122.2'"
and check to make sure that only the key(s) you wanted were added.
Director registration
Register the VM:
[stack@e26-director ~]$ sudo subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: myrhnaccount
Password:
The system has been registered with ID: XXXXX-XXXX-XXXX-XXXX-XXXXXXXX
The registered system name is: e26-director.lan.redhat.com
Attach the pool:
[stack@e26-director ~]$ sudo subscription-manager attach --pool=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Successfully attached a subscription for: Red Hat SKU
RHOSP 16.1 us using RHEL EUS version.
IMPORTANT: for RHEL 8.2 EUS, fix the 8.2 version:
[stack@e26-director ~]$ sudo subscription-manager release --set=8.2
Release set to: 8.2
[stack@e26-director ~]$ sudo subscription-manager release
Release: 8.2
Enable the RHOSP repositories:
[stack@e26-director ~]$ sudo subscription-manager repos --disable=*
[stack@e26-director ~]$ sudo sudo dnf clean all
[stack@e26-director ~]$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-eus-rpms --enable=rhel-8-for-x86_64-appstream-eus-rpms --enable=rhel-8-for-x86_64-highavailability-eus-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms --enable=openstack-16.1-for-rhel-8-x86_64-rpms --enable=fast-datapath-for-rhel-8-x86_64-rpms --enable=advanced-virt-for-rhel-8-x86_64-rpms --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
Repository 'rhel-8-for-x86_64-baseos-eus-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-appstream-eus-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-highavailability-eus-rpms' is enabled for this system.
Repository 'ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.
Repository 'openstack-16.1-for-rhel-8-x86_64-rpms' is enabled for this system.
Repository 'fast-datapath-for-rhel-8-x86_64-rpms' is enabled for this system.
Repository 'advanced-virt-for-rhel-8-x86_64-rpms' is enabled for this system.
Repository 'rhceph-4-tools-for-rhel-8-x86_64-rpms' is enabled for this system.
Set the container-tools repository module to version 2.0:
[stack@e26-director ~]$ sudo dnf module disable -y container-tools:rhel8
[stack@e26-director ~]$ sudo dnf module enable -y container-tools:2.0
Set the virt repository module to version 8.2:
[stack@e26-director ~]$ sudo dnf module disable -y virt:rhel
[stack@e26-director ~]$ sudo dnf module enable -y virt:8.2
Check enabled repositories:
[stack@e26-director ~]$ sudo subscription-manager repos --list-enabled
+----------------------------------------------------------+
Available Repositories in /etc/yum.repos.d/redhat.repo
+----------------------------------------------------------+
Repo ID: openstack-16.1-for-rhel-8-x86_64-rpms
Repo Name: Red Hat OpenStack Platform 16.1 for RHEL 8 x86_64 (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/layered/rhel8/x86_64/openstack/16.1/os
Enabled: 1
Repo ID: ansible-2.9-for-rhel-8-x86_64-rpms
Repo Name: Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/layered/rhel8/x86_64/ansible/2.9/os
Enabled: 1
Repo ID: rhel-8-for-x86_64-highavailability-eus-rpms
Repo Name: Red Hat Enterprise Linux 8 for x86_64 - High Availability - Extended Update Support (RPMs)
Repo URL: https://cdn.redhat.com/content/eus/rhel8/8.2/x86_64/highavailability/os
Enabled: 1
Repo ID: rhel-8-for-x86_64-baseos-eus-rpms
Repo Name: Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Extended Update Support (RPMs)
Repo URL: https://cdn.redhat.com/content/eus/rhel8/8.2/x86_64/baseos/os
Enabled: 1
Repo ID: rhceph-4-tools-for-rhel-8-x86_64-rpms
Repo Name: Red Hat Ceph Storage Tools 4 for RHEL 8 x86_64 (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/layered/rhel8/x86_64/rhceph-tools/4/os
Enabled: 1
Repo ID: rhel-8-for-x86_64-appstream-eus-rpms
Repo Name: Red Hat Enterprise Linux 8 for x86_64 - AppStream - Extended Update Support (RPMs)
Repo URL: https://cdn.redhat.com/content/eus/rhel8/8.2/x86_64/appstream/os
Enabled: 1
Repo ID: advanced-virt-for-rhel-8-x86_64-rpms
Repo Name: Advanced Virtualization for RHEL 8 x86_64 (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/layered/rhel8/x86_64/advanced-virt/os
Enabled: 1
Repo ID: fast-datapath-for-rhel-8-x86_64-rpms
Repo Name: Fast Datapath for RHEL 8 x86_64 (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/layered/rhel8/x86_64/fast-datapath/os
Enabled: 1
Upgrade RHEL and reboot:
[stack@e26-director ~]$ sudo yum upgrade -y
[stack@e26-director ~]$ sudo systemctl reboot
Director network preparation
Setup the network configuration with the proper VLAN:
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=eth1
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=yes
PEERDNS=no
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1.101
DEVICE=eth1.101
NAME=eth1.101
VLAN=yes
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=yes
PEERDNS=no
BOOTPROTO=static
IPADDR=172.16.11.10
NETMASK=255.255.255.0
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1.102
DEVICE=eth1.102
NAME=eth1.102
VLAN=yes
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=yes
PEERDNS=no
BOOTPROTO=static
IPADDR=172.16.12.10
NETMASK=255.255.255.0
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1.103
DEVICE=eth1.103
NAME=eth1.103
VLAN=yes
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=yes
PEERDNS=no
BOOTPROTO=static
IPADDR=172.16.13.10
NETMASK=255.255.255.0
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth1.104
DEVICE=eth1.104
NAME=eth1.104
VLAN=yes
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=yes
PEERDNS=no
BOOTPROTO=static
IPADDR=172.16.14.10
NETMASK=255.255.255.0
[stack@e26-director ~] cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
BOOTPROTO="dhcp"
BOOTPROTOv6="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
IPV6INIT="yes"
PERSISTENT_DHCLIENT="1"
Check network configuration:
[stack@e26-director ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:68:bc:cb brd ff:ff:ff:ff:ff:ff
inet6 fe80::16eb:2b52:9663:558b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:e3:f1:95 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fee3:f195/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:25:42:d3 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.2/24 brd 192.168.122.255 scope global dynamic noprefixroute eth2
valid_lft 3577sec preferred_lft 3577sec
inet6 fe80::5054:ff:fe25:42d3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: eth1.101@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:e3:f1:95 brd ff:ff:ff:ff:ff:ff
inet 172.16.11.10/24 brd 172.16.11.255 scope global noprefixroute eth1.101
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fee3:f195/64 scope link
valid_lft forever preferred_lft forever
6: eth1.102@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:e3:f1:95 brd ff:ff:ff:ff:ff:ff
inet 172.16.12.10/24 brd 172.16.12.255 scope global noprefixroute eth1.102
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fee3:f195/64 scope link
valid_lft forever preferred_lft forever
7: eth1.104@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:e3:f1:95 brd ff:ff:ff:ff:ff:ff
inet 172.16.14.10/24 brd 172.16.14.255 scope global noprefixroute eth1.104
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fee3:f195/64 scope link
valid_lft forever preferred_lft forever
8: eth1.103@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:e3:f1:95 brd ff:ff:ff:ff:ff:ff
inet 172.16.13.10/24 brd 172.16.13.255 scope global noprefixroute eth1.103
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fee3:f195/64 scope link
valid_lft forever preferred_lft forever
[stack@e26-director ~]$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 4ce3a9b3-dcca-3df3-ac4e-9629fa4d6eb3 ethernet eth0
System eth2 3a73717e-65ab-93e8-b518-24f5af32dc0d ethernet eth2
eth1.101 8a1717c8-d07f-ebe3-ef54-705f6dbecc08 vlan eth1.101
eth1.102 370fca10-b2fd-7ec5-22ba-e6b5f0efc8ef vlan eth1.102
eth1.103 9aa62f32-bb46-4a15-8e72-da71d51b971e vlan eth1.103
eth1.104 51885900-37a0-77ec-8d71-4507157585c5 vlan eth1.104
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1
[stack@e26-director ~]$ ls /sys/class/net
eth0 eth1 eth1.101 eth1.102 eth1.103 eth1.104 eth2 lo
[stack@e26-director ~]$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth1.104: 28606 337 0 0 0 0 0 0 1964 26 0 0 0 0 0 0
eth1.101: 4094 89 0 0 0 0 0 0 1832 24 0 0 0 0 0 0
eth2: 8327 55 0 0 0 0 0 0 16101 93 0 0 0 415 0 0
eth0: 0 0 0 0 0 0 0 0 5040 34 0 0 0 0 0 0
eth1.103: 0 0 0 0 0 0 0 0 1992 26 0 0 0 0 0 0
lo: 416 6 0 0 0 0 0 0 416 6 0 0 0 0 0 0
eth1.102: 276 6 0 0 0 0 0 0 1832 24 0 0 0 0 0 0
eth1: 42480 459 0 0 0 0 0 0 9148 113 0 0 0 0 0 0
Install director packages
Installing director packages:
stack@e26-director ~]$ sudo dnf install -y python3-tripleoclient
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:08:56 ago on Thu 22 Oct 2020 03:20:16 PM EDT.
Dependencies resolved.
=================================================================================================================================================================================================================
Package Architecture Version Repository Size
=================================================================================================================================================================================================================
Installing:
python3-tripleoclient noarch 12.3.2-1.20200914164928.el8ost rhelosp-16.1 537 k
Installing dependencies:
ansible noarch 2.9.14-1.el8ae rhosp-ansible-2.9 17 M
ansible-config_template noarch 1.1.2-1.20200818183400.ea07ed0.el8ost rhelosp-16.1 29 k
...
Prepare containers images for director
Prepare the container images:
[stack@e26-director ~]$ openstack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameter.yaml
# Generated with the following on 2020-10-22T15:58:12.528939
#
# openstack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameter.yaml
#
parameter_defaults:
ContainerImagePrepare:
- push_destination: true
set:
ceph_alertmanager_image: ose-prometheus-alertmanager
ceph_alertmanager_namespace: registry.redhat.io/openshift4
ceph_alertmanager_tag: 4.1
ceph_grafana_image: rhceph-4-dashboard-rhel8
ceph_grafana_namespace: registry.redhat.io/rhceph
ceph_grafana_tag: 4
ceph_image: rhceph-4-rhel8
ceph_namespace: registry.redhat.io/rhceph
ceph_node_exporter_image: ose-prometheus-node-exporter
ceph_node_exporter_namespace: registry.redhat.io/openshift4
ceph_node_exporter_tag: v4.1
ceph_prometheus_image: ose-prometheus
ceph_prometheus_namespace: registry.redhat.io/openshift4
ceph_prometheus_tag: 4.1
ceph_tag: latest
name_prefix: openstack-
name_suffix: ''
namespace: registry.redhat.io/rhosp-rhel8
neutron_driver: ovn
rhel_containers: false
tag: '16.1'
tag_from_label: '{version}-{release}'
ContainerImageRegistryCredentials:
registry.redhat.io:
myrhnusername: XXXXXXXXXX
Add your credential or tokens at the end:
ContainerImageRegistryCredentials:
registry.redhat.io:
myrhnusername: XXXXXXXXXX
Install director services
You can review a director configuration here: /usr/share/python-tripleoclient/undercloud.conf.sample
Create your undercloud file:
[DEFAULT]
undercloud_hostname = e26-director.lan.redhat.com
local_ip = 172.16.16.10/24
undercloud_public_host = 172.16.16.11
undercloud_admin_host = 172.16.16.12
local_interface = eth0
undercloud_nameservers = 10.19.96.1
undercloud_ntp_servers = clock.redhat.com
overcloud_domain_name = lan.redhat.com
container_images_file=/home/stack/containers-prepare-parameter.yaml
[ctlplane-subnet]
cidr = 172.16.16.0/24
dhcp_start = 172.16.16.201
dhcp_end = 172.16.16.220
inspection_iprange = 172.16.16.221,172.16.16.230
gateway = 172.16.16.10
masquerade_network = True
subnets = ctlplane-subnet
local_subnet = ctlplane-subnet
masquerade = true
Before running the director installation, no containers are running:
[stack@e26-director ~]$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Setup the host:
[stack@e26-director ~]$ echo "172.16.16.10 e26-director.lan.redhat.com e26-director " | sudo tee -a /etc/hosts
Check the base and full hostname of the undercloud:
[stack@e26-director ~]$ hostname
e26-director.lan.redhat.com
[stack@e26-director ~]$ hostname -f
e26-director.lan.redhat.com
Installing director:
[stack@e26-director ~]$ time openstack undercloud install
Using /tmp/undercloud-disk-space.yaml3npnqp0sansible.cfg as config file
[WARNING]: log file at /usr/share/ansible/validation-playbooks/ansible.log is not writeable and we cannot create it, aborting
Success! The validation passed for all hosts:
...
Install artifact is located at /home/stack/undercloud-install-20201030114358.tar.bzip2
########################################################
Deployment successful!
########################################################
Writing the stack virtual update mark file /var/lib/tripleo-heat-installer/update_mark_undercloud
##########################################################
The Undercloud has been successfully installed.
Useful files:
Password file is at /home/stack/undercloud-passwords.conf
The stackrc file is at ~/stackrc
Use these files to interact with OpenStack services, and
ensure they are secured.
##########################################################
real 22m36.243s
user 10m4.918s
sys 2m12.439s
List running director services:
[stack@e26-director ~]$ source stackrc
(undercloud) [stack@e26-director ~]$ openstack service list
+----------------------------------+------------------+-------------------------+
| ID | Name | Type |
+----------------------------------+------------------+-------------------------+
| 102b8909f551418392b9b4063cb1e385 | glance | image |
| 3a5c3570f1bd473d8dfe8e723e56e80c | neutron | network |
| 45855c71f14c46e68bf2730e4ef57d72 | heat | orchestration |
| 4a79d093a63d4f228bdca0ae374fc659 | swift | object-store |
| 6ac387421d5e41a1a60aab853d5b2de9 | mistral | workflowv2 |
| 78614ac7070e4c17a6926248ce91c4fe | placement | placement |
| 8002300c24344b02be2f63191d0e628a | ironic-inspector | baremetal-introspection |
| 85e78de5012247e2b7856a32c8f8a15f | zaqar-websocket | messaging-websocket |
| 9d602eadc6b94d85adbc2ec38a5d4758 | keystone | identity |
| a62ee3526e55457190f1bbcf7b8b0e29 | ironic | baremetal |
| c8dc75c8ee6e43fabdbb3b441a03b3c6 | zaqar | messaging |
| d3a4a9511fad4b21b4fcc727af892899 | nova | compute |
+----------------------------------+------------------+-------------------------+
Check running containers:
(undercloud) [stack@e26-director ~]$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b31bbafa93f e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-dhcp-agent:16.1 /usr/sbin/dnsmasq... 9 minutes ago Up 9 minutes ago neutron-dnsmasq-qdhcp-63ca867b-7662-4ca7-9207-ea1a0e5ca9de
53fb5a35dcf5 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-compute-ironic:16.1 kolla_start 10 minutes ago Up 10 minutes ago nova_compute
59abc2b8f47a e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-inspector:16.1 kolla_start 10 minutes ago Up 10 minutes ago ironic_inspector_dnsmasq
415c202ec266 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-inspector:16.1 kolla_start 10 minutes ago Up 10 minutes ago ironic_inspector
fcc8184795bf e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-pxe:16.1 kolla_start 11 minutes ago Up 11 minutes ago ironic_pxe_http
7219993deac8 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-pxe:16.1 /bin/bash -c BIND... 11 minutes ago Up 11 minutes ago ironic_pxe_tftp
3d1451ec8547 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-neutron-agent:16.1 kolla_start 11 minutes ago Up 11 minutes ago ironic_neutron_agent
bec2a12a88dd e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-conductor:16.1 kolla_start 11 minutes ago Up 11 minutes ago ironic_conductor
8819efea95bc e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mistral-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago mistral_api
364529e1317e e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-openvswitch-agent:16.1 kolla_start 11 minutes ago Up 11 minutes ago neutron_ovs_agent
a7356488fa61 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-l3-agent:16.1 kolla_start 11 minutes ago Up 11 minutes ago neutron_l3_agent
f92f60186ccb e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-dhcp-agent:16.1 kolla_start 11 minutes ago Up 11 minutes ago neutron_dhcp
3fafb46a5a55 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ironic-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago ironic_api
771f8468f664 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago nova_api_cron
147dcfbc25b5 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-proxy-server:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_proxy
e81d76cf0ca9 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago nova_api
43644f178847 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-glance-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago glance_api
7b6e2f65de27 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-placement-api:16.1 kolla_start 11 minutes ago Up 11 minutes ago placement_api
4da9e9b6af3f e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-zaqar-wsgi:16.1 kolla_start 11 minutes ago Up 11 minutes ago zaqar_websocket
923282d49052 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-zaqar-wsgi:16.1 kolla_start 11 minutes ago Up 11 minutes ago zaqar
c9499b59ac14 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_rsync
31a6891071ee e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_object_updater
cc5c3834939a e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_object_server
eeb7e6002f73 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-proxy-server:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_object_expirer
4e1b4b6e730c e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_container_updater
e59e0891996d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_container_server
cae76618f07d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_account_server
054061e0db3b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 11 minutes ago Up 11 minutes ago swift_account_reaper
fc972835b141 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-scheduler:16.1 kolla_start 11 minutes ago Up 11 minutes ago nova_scheduler
d8781bdb19af e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-conductor:16.1 kolla_start 11 minutes ago Up 11 minutes ago nova_conductor
101499ca726f e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-server:16.1 kolla_start 11 minutes ago Up 11 minutes ago neutron_api
2160d9d5b867 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mistral-executor:16.1 kolla_start 11 minutes ago Up 11 minutes ago mistral_executor
1d6e0e4a751d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mistral-event-engine:16.1 kolla_start 12 minutes ago Up 11 minutes ago mistral_event_engine
f324f7759950 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mistral-engine:16.1 kolla_start 12 minutes ago Up 12 minutes ago mistral_engine
75e0172e708a e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cron:16.1 kolla_start 12 minutes ago Up 12 minutes ago logrotate_crond
d59c7ccc1ad4 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-engine:16.1 kolla_start 12 minutes ago Up 12 minutes ago heat_engine
25e786b7d8e4 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-api:16.1 kolla_start 12 minutes ago Up 12 minutes ago heat_api_cron
110cf9e9520d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-api:16.1 kolla_start 12 minutes ago Up 12 minutes ago heat_api
3a87e6a066c4 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-keystone:16.1 kolla_start 15 minutes ago Up 15 minutes ago keystone
25670d7079d2 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-iscsid:16.1 kolla_start 15 minutes ago Up 15 minutes ago iscsid
40354ba3d9a6 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mariadb:16.1 kolla_start 16 minutes ago Up 16 minutes ago mysql
9738c007ebfa e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-rabbitmq:16.1 kolla_start 18 minutes ago Up 18 minutes ago rabbitmq
e9439b89457c e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-haproxy:16.1 kolla_start 18 minutes ago Up 18 minutes ago haproxy
93b71631efd8 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-memcached:16.1 kolla_start 18 minutes ago Up 18 minutes ago memcached
14dc5f11259c e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-keepalived:16.1 /usr/local/bin/ko... 18 minutes ago Up 18 minutes ago keepalived
Check listening ports:
(undercloud) [stack@e26-director ~]$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 172.16.16.10:8004 0.0.0.0:* LISTEN 37214/httpd
tcp 0 0 172.16.16.12:8004 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:36357 0.0.0.0:* LISTEN 41679/python3
tcp 0 0 172.16.16.11:13989 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:8774 0.0.0.0:* LISTEN 42598/httpd
tcp 0 0 172.16.16.12:8774 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 36415/snmpd
tcp 0 0 172.16.16.10:9000 0.0.0.0:* LISTEN 41679/python3
tcp 0 0 172.16.16.10:5000 0.0.0.0:* LISTEN 31276/httpd
tcp 0 0 172.16.16.10:5672 0.0.0.0:* LISTEN 22406/beam.smp
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 22406/beam.smp
tcp 0 0 172.16.16.12:9000 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:5000 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13000 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 127.0.0.1:6633 0.0.0.0:* LISTEN 44804/openvswitch-a
tcp 0 0 172.16.16.10:873 0.0.0.0:* LISTEN 41194/rsync
tcp 0 0 172.16.16.11:13385 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:1993 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:1993 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:8778 0.0.0.0:* LISTEN 42045/httpd
tcp 0 0 172.16.16.10:3306 0.0.0.0:* LISTEN 26251/mysqld
tcp 0 0 172.16.16.12:8778 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:3306 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:11211 0.0.0.0:* LISTEN 21406/memcached
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 869/systemd-resolve
tcp 0 0 172.16.16.10:9292 0.0.0.0:* LISTEN 42324/python3
tcp 0 0 172.16.16.11:13004 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:9292 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13292 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13774 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 127.0.0.1:6640 0.0.0.0:* LISTEN 3457/ovsdb-server
tcp 0 0 172.16.16.10:8080 0.0.0.0:* LISTEN 43001/python3
tcp 0 0 172.16.16.10:6000 0.0.0.0:* LISTEN 40611/python3
tcp 0 0 172.16.16.12:8080 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13808 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:6385 0.0.0.0:* LISTEN 43598/httpd
tcp 0 0 172.16.16.10:6001 0.0.0.0:* LISTEN 40061/python3
tcp 0 0 172.16.16.10:4369 0.0.0.0:* LISTEN 22309/epmd
tcp 0 0 127.0.0.1:4369 0.0.0.0:* LISTEN 22309/epmd
tcp 0 0 172.16.16.12:6385 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:6002 0.0.0.0:* LISTEN 39834/python3
tcp 0 0 172.16.16.11:13778 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14876/sshd
tcp 0 0 172.16.16.10:8888 0.0.0.0:* LISTEN 41413/httpd
tcp 0 0 127.0.0.1:15672 0.0.0.0:* LISTEN 22406/beam.smp
tcp 0 0 172.16.16.11:3000 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:8888 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:5050 0.0.0.0:* LISTEN 46292/python3
tcp 0 0 172.16.16.12:5050 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13050 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:8989 0.0.0.0:* LISTEN 44835/python3
tcp 0 0 172.16.16.10:35357 0.0.0.0:* LISTEN 31276/httpd
tcp 0 0 172.16.16.12:8989 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:35357 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.10:9696 0.0.0.0:* LISTEN 38913/server.log
tcp 0 0 172.16.16.11:13888 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.12:9696 0.0.0.0:* LISTEN 21893/haproxy
tcp 0 0 172.16.16.11:13696 0.0.0.0:* LISTEN 21893/haproxy
tcp6 0 0 :::5355 :::* LISTEN 869/systemd-resolve
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 ::1:4369 :::* LISTEN 22309/epmd
tcp6 0 0 :::8787 :::* LISTEN 4983/httpd
tcp6 0 0 :::22 :::* LISTEN 14876/sshd
tcp6 0 0 :::8088 :::* LISTEN 46043/httpd
udp 0 0 127.0.0.53:53 0.0.0.0:* 869/systemd-resolve
udp 0 0 0.0.0.0:67 0.0.0.0:* 46516/dnsmasq
udp 0 0 172.16.16.10:69 0.0.0.0:* 45850/in.tftpd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 0.0.0.0:123 0.0.0.0:* 6516/chronyd
udp 0 0 0.0.0.0:161 0.0.0.0:* 36415/snmpd
udp 0 0 127.0.0.1:323 0.0.0.0:* 6516/chronyd
udp 0 0 0.0.0.0:5355 0.0.0.0:* 869/systemd-resolve
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 ::1:161 :::* 36415/snmpd
udp6 0 0 ::1:323 :::* 6516/chronyd
udp6 0 0 :::5355 :::* 869/systemd-resolve
Set-up director routing and container images
Add the FORWARDING iptables for the external network :
[stack@e26-director ~]$ vi /etc/sysconfig/iptables
...
-A FORWARD -s 172.16.14.0/24 -m state --state NEW,RELATED,ESTABLISHED -m comment --comment "139 routed_network forward source 172.16.16.0/24 ipv4" -j ACCEPT
-A FORWARD -d 172.16.14.0/24 -m state --state NEW,RELATED,ESTABLISHED -m comment --comment "140 routed_network forward destinations 172.16.16.0/24 ipv4" -j ACCEPT
...
-A POSTROUTING -s 172.16.14.0/24 -m state --state NEW,RELATED,ESTABLISHED -m comment --comment "142 routed_network masquerade 172.16.14.0/24 ipv4" -j MASQUERADE
...
Restart iptables:
(undercloud) [stack@e26-director ~]$ sudo systemctl restart iptables
Prepare overcloud images
Import rhosp-director Ironic images:
[stack@e26-director ~]$ sudo dnf install rhosp-director-images rhosp-director-images-ipa -y
Create directories for system images:
(undercloud) [stack@e26-director ~]$ sudo mkdir /var/images
(undercloud) [stack@e26-director ~]$ sudo chown stack:stack /var/images
(undercloud) [stack@e26-director ~]$ cd /var/images
(undercloud) [stack@e26-director images]$ for i in /usr/share/rhosp-director-images/overcloud-full-latest-16.1.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-16.1.tar; do tar -xvf $i; done
overcloud-full.qcow2
overcloud-full.initrd
overcloud-full.vmlinuz
overcloud-full-rpm.manifest
overcloud-full-signature.manifest
ironic-python-agent.initramfs
ironic-python-agent.kernel
Load the undercloud environment credentials:
[stack@e26-director ~]$ source stackrc
Upload Ironic images into director’s Glance:
(undercloud) [stack@e26-director ~]$ openstack overcloud image upload --image-path /var/images
Image "overcloud-full-vmlinuz" was uploaded.
+--------------------------------------+------------------------+-------------+---------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+------------------------+-------------+---------+--------+
| c7e6c0b9-fa81-47f2-a6ca-fa134d82448f | overcloud-full-vmlinuz | aki | 8920432 | active |
+--------------------------------------+------------------------+-------------+---------+--------+
Image "overcloud-full-initrd" was uploaded.
+--------------------------------------+-----------------------+-------------+----------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+-----------------------+-------------+----------+--------+
| 45e7924c-ee32-4ed5-b710-cbc0ec261dcc | overcloud-full-initrd | ari | 72690081 | active |
+--------------------------------------+-----------------------+-------------+----------+--------+
Image "overcloud-full" was uploaded.
+--------------------------------------+----------------+-------------+------------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+----------------+-------------+------------+--------+
| 2aff792c-e534-4a04-9d45-070f26824326 | overcloud-full | qcow2 | 1095499776 | active |
+--------------------------------------+----------------+-------------+------------+--------+
We wan check the images loaded:
(undercloud) [stack@e26-director ~]$ openstack image list
+--------------------------------------+------------------------+--------+
| ID | Name | Status |
+--------------------------------------+------------------------+--------+
| 2aff792c-e534-4a04-9d45-070f26824326 | overcloud-full | active |
| 45e7924c-ee32-4ed5-b710-cbc0ec261dcc | overcloud-full-initrd | active |
| c7e6c0b9-fa81-47f2-a6ca-fa134d82448f | overcloud-full-vmlinuz | active |
+--------------------------------------+------------------------+--------+
We can check if the DNS are well set-up:
(undercloud) [stack@e26-director ~]$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+----------------+
| ID | Name | Network | Subnet |
+--------------------------------------+-----------------+--------------------------------------+----------------+
| 62d9567a-b712-4bda-a896-f4eb792eeb85 | ctlplane-subnet | 63ca867b-7662-4ca7-9207-ea1a0e5ca9de | 172.16.16.0/24 |
+--------------------------------------+-----------------+--------------------------------------+----------------+
(undercloud) [stack@e26-director ~]$ openstack subnet show ctlplane-subnet
+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools | 172.16.16.201-172.16.16.220 |
| cidr | 172.16.16.0/24 |
| created_at | 2020-10-30T11:43:28Z |
| description | |
| dns_nameservers | 10.19.96.1 |
| enable_dhcp | True |
| gateway_ip | 172.16.16.10 |
| host_routes | |
| id | 62d9567a-b712-4bda-a896-f4eb792eeb85 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='63cd724dec5646d39ba904e110687cc5', project.name='admin', region_name='', zone= |
| name | ctlplane-subnet |
| network_id | 63ca867b-7662-4ca7-9207-ea1a0e5ca9de |
| prefix_length | None |
| project_id | 63cd724dec5646d39ba904e110687cc5 |
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2020-10-30T11:43:28Z |
+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
We are good.
Create a nodes files for each of the 6 x Dell servers we want to manage:
{
"nodes": [
{
"capabilities": "profile:control,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:76:B8"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h19-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
},
{
"capabilities": "profile:control,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:6D:D4"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h21-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
},
{
"capabilities": "profile:control,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:7C:D0"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h23-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
},
{
"capabilities": "profile:compute,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:75:BC"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h25-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
},
{
"capabilities": "profile:compute,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:76:30"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h27-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
},
{
"capabilities": "profile:compute,boot_option:local",
"arch": "x86_64",
"cpu": "2",
"disk": "20",
"mac": [
"E4:43:4B:B2:7D:68"
],
"memory": "1024",
"pm_addr": "XXXXXXXX-e26-h29-740xd.XXXXXXXX.redhat.com",
"pm_password": "XXXXXXXX",
"pm_type": "pxe_ipmitool",
"pm_user": "ironic"
}
]
}
Validate the JSON file:
(undercloud) [stack@e26-director ~]$ openstack overcloud node import --validate-only ~/nodes.json
Waiting for messages on queue 'tripleo' with no timeout.
Successfully validated environment file
Import the nodes.json file:
(undercloud) [stack@e26-director ~]$ openstack overcloud node import ~/nodes.json
Waiting for messages on queue 'tripleo' with no timeout.
6 node(s) successfully moved to the "manageable" state.
Successfully registered node UUID e4b01b91-81a1-4df0-9620-fbe5cfdf2516
Successfully registered node UUID f90e0f2f-121d-4759-8a6d-a4bf69cab769
Successfully registered node UUID 45c912d0-2dbd-425a-95bc-0bcb7aa104a4
Successfully registered node UUID a57ef390-3edc-4449-8116-e2fbda6b6d05
Successfully registered node UUID e1df9b96-5e3a-4e13-9972-2b62a12e7cb7
Successfully registered node UUID e07b0890-feb5-4082-b635-185abaf5da85
Check nodes imported:
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | None | power off | available | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | None | power off | available | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | None | power off | available | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | None | power off | available | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | None | power off | available | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | None | power off | available | False |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
Introspect all the nodes:
(undercloud) [stack@e26-director ~]$ openstack overcloud node introspect --all-manageable --provide
Waiting for introspection to finish...
Waiting for messages on queue 'tripleo' with no timeout.
Introspection of node completed:f90e0f2f-121d-4759-8a6d-a4bf69cab769. Status:SUCCESS. Errors:None
Introspection of node completed:e1df9b96-5e3a-4e13-9972-2b62a12e7cb7. Status:SUCCESS. Errors:None
Introspection of node completed:a57ef390-3edc-4449-8116-e2fbda6b6d05. Status:SUCCESS. Errors:None
Introspection of node completed:45c912d0-2dbd-425a-95bc-0bcb7aa104a4. Status:SUCCESS. Errors:None
Introspection of node completed:e07b0890-feb5-4082-b635-185abaf5da85. Status:SUCCESS. Errors:None
Introspection of node completed:e4b01b91-81a1-4df0-9620-fbe5cfdf2516. Status:SUCCESS. Errors:None
Successfully introspected 6 node(s).
Introspection completed.
Waiting for messages on queue 'tripleo' with no timeout.
6 node(s) successfully moved to the "available" state.
PXE boot during introspection
All nodes are off:
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | None | power off | available | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | None | power off | available | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | None | power off | available | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | None | power off | available | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | None | power off | available | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | None | power off | available | False |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
Profiles are allocated:
(undercloud) [stack@e26-director ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | | available | control | |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | | available | control | |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | | available | control | |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | | available | compute | |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | | available | compute | |
| e07b0890-feb5-4082-b635-185abaf5da85 | | available | compute | |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
Check interfaces:
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection interface list e4b01b91-81a1-4df0-9620-fbe5cfdf2516
+-----------+-------------------+--------------------------------+-------------------+----------------+
| Interface | MAC Address | Switch Port VLAN IDs | Switch Chassis ID | Switch Port ID |
+-----------+-------------------+--------------------------------+-------------------+----------------+
| eno3 | e4:43:4b:b2:76:ba | [100] | 0c:86:10:af:b3:60 | ge-6/0/28 |
| eno1 | e4:43:4b:b2:76:b8 | [1140] | c0:03:80:f1:1b:40 | 526 |
| ens7f0 | 40:a6:b7:01:50:20 | [1138, 1139, 1140, 1141, 1142] | c0:bf:a7:1e:54:60 | et-0/0/5:2 |
| eno4 | e4:43:4b:b2:76:bb | [] | None | None |
| eno2 | e4:43:4b:b2:76:b9 | [1141] | c0:03:80:f1:1b:40 | 527 |
| ens7f1 | 40:a6:b7:01:50:21 | [1139, 1140, 1141, 1142, 1143] | c0:bf:a7:1e:54:60 | et-0/0/5:3 |
+-----------+-------------------+--------------------------------+-------------------+----------------+
...
Save instrospection data of the first node:
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | jq . > /tmp/pp
Fix boot disk
Install RHEL on one of the node to check the disk configuration:
[egallen@e26-h15-740xd ~]$ sudo lsblk -o KNAME,TYPE,SIZE,MODEL
KNAME TYPE SIZE MODEL
sda disk 1.7T PERC H740P Adp
sda1 part 512M
sda2 part 1.7T
sdb disk 1.7T PERC H740P Adp
sdc disk 1.7T PERC H740P Adp
sdd disk 1.7T PERC H740P Adp
sde disk 1.7T PERC H740P Adp
sdf disk 1.7T PERC H740P Adp
sdg disk 1.7T PERC H740P Adp
sdh disk 1.7T PERC H740P Adp
dm-0 lvm 1.6T
dm-1 lvm 8G
nvme0n1 disk 1.5T Dell Express Flash PM1725b 1.6TB AIC
Check id the root_disk match the disk you want to install OSP:
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save f90e0f2f-121d-4759-8a6d-a4bf69cab769 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save a57ef390-3edc-4449-8116-e2fbda6b6d05 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e07b0890-feb5-4082-b635-185abaf5da85 | jq . | grep -A1 root_disk
"root_disk": {
"name": "/dev/nvme0n1",
We can find the serial for each node:
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b3988b0025c3387067731ae5",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save f90e0f2f-121d-4759-8a6d-a4bf69cab769 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b38d830025c3387a7a4b9c3b",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b38d800025c3387483168c13",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save a57ef390-3edc-4449-8116-e2fbda6b6d05 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b388fa0025c338353d3e542e",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b3989c0025c33889a97c3a2d",
(undercloud) [stack@e26-director ~]$ openstack baremetal introspection data save e07b0890-feb5-4082-b635-185abaf5da85 | jq . | grep -A5 /dev/sda | grep serial
"serial": "64cd98f0b398910025c33877783a4ab0",
We can force the root disk for each node:
openstack baremetal node set --property root_device='{"serial":"64cd98f0b3988b0025c3387067731ae5"}' e4b01b91-81a1-4df0-9620-fbe5cfdf2516
openstack baremetal node set --property root_device='{"serial":"64cd98f0b38d830025c3387a7a4b9c3b"}' f90e0f2f-121d-4759-8a6d-a4bf69cab769
openstack baremetal node set --property root_device='{"serial":"64cd98f0b38d800025c3387483168c13"}' 45c912d0-2dbd-425a-95bc-0bcb7aa104a4
openstack baremetal node set --property root_device='{"serial":"64cd98f0b388fa0025c338353d3e542e"}' a57ef390-3edc-4449-8116-e2fbda6b6d05
openstack baremetal node set --property root_device='{"serial":"64cd98f0b3989c0025c33889a97c3a2d"}' e1df9b96-5e3a-4e13-9972-2b62a12e7cb7
openstack baremetal node set --property root_device='{"serial":"64cd98f0b398910025c33877783a4ab0"}' e07b0890-feb5-4082-b635-185abaf5da85
Install one NFS server
Install NFS utils:
[egallen@e26-h15-740xd new]$ sudo yum install nfs-utils
Prepare the NVMe partition:
[egallen@e26-h15-740xd ~]$ sudo fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-3125627567, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-3125627567, default 3125627567):
Created a new partition 1 of type 'Linux' and of size 1.5 TiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Formation the partition:
[egallen@e26-h15-740xd ~]$ sudo mkfs.xfs /dev/nvme0n1p1
meta-data=/dev/nvme0n1p1 isize=512 agcount=4, agsize=97675798 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=390703190, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=190773, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Mount the partition:
[egallen@e26-h15-740xd ~]$ sudo mkdir /var/nfs
[egallen@e26-h15-740xd ~]$ echo "/dev/nvme0n1p1 /var/nfs xfs defaults 0 0" >> /etc/fstab
[root@e26-h15-740xd ]# sudo mkdir -p /var/nfs/cinder
Setup the shares:
[root@rhsec-service ~]# sudo cat << EOF > /etc/exports
/var/nfs/cinder 172.16.16.0/24(rw,insecure,no_root_squash,anonuid=1000,anongid=1000)
EOF
Enable the services:
[root@rhsec-service ~]# systemctl enable rpcbind
[root@rhsec-service ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@rhsec-service ~]# systemctl restart rpcbind
[root@rhsec-service ~]# systemctl restart nfs-server
Check the service status:
[root@e26-h15-740xd new]# systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Thu 2020-10-29 00:06:32 UTC; 2s ago
Process: 12518 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
Process: 12514 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
Process: 12565 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 12550 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Process: 12547 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 12565 (code=exited, status=0/SUCCESS)
Prepare the templates
Generate the templates:
[stack@e26-director ~]$ cd /usr/share/openstack-tripleo-heat-templates
[stack@e26-director openstack-tripleo-heat-templates]$ ./tools/process-templates.py -o ~/openstack-tripleo-heat-templates-rendered
[stack@e26-director config]$ ls /home/stack/openstack-tripleo-heat-templates-rendered/network/config
2-linux-bonds-vlans bond-with-vlans multiple-nics multiple-nics-vlans single-nic-linux-bridge-vlans single-nic-vlans
Prepare the templates:
[stack@e26-director config]$ cp /home/stack/openstack-tripleo-heat-templates-rendered/network/config/bond-with-vlans/compute.yaml /home/stack/templates/nic-config/
[stack@e26-director config]$ cp /home/stack/openstack-tripleo-heat-templates-rendered/network/config/bond-with-vlans/controller.yaml /home/stack/templates/nic-config/
Installation script:
[stack@e26-director ~]$ cat overcloud-deploy.sh
#!/bin/bash
source stackrc
time openstack overcloud deploy \
-n ~/templates/network_data.yaml \
-r ~/templates/roles_data.yaml \
--answers-file ~/answers.yaml \
--overcloud-ssh-user heat-admin \
--overcloud-ssh-key ~/.ssh/id_rsa \
Check the answer.yaml configuration:
[stack@e26-director ~]$ cat answers.yaml
templates: /usr/share/openstack-tripleo-heat-templates/
environments:
- /home/stack/templates/environments/global.yaml
- /home/stack/containers-prepare-parameter.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
- /home/stack/templates/environments/network.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/disable-telemetry.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/services/octavia.yaml
Check the global environment configuration:
[stack@e26-director ~]$ cat templates/environment/global.yaml
parameter_defaults:
CloudDomain: lan.redhat.com
CloudName: cloud.lan.redhat.com
ControllerHostnameFormat: 'controller-%index%'
ControllerCount: 3
OvercloudControllerFlavor: control
ComputeHostnameFormat: 'compute-%index%'
ComputeCount: 3
OvercloudComputeFlavor: compute
NovaEnableRbdBackend: false
# Glance
#GlanceBackend: file
GlanceNfsEnabled: false
#GlanceNfsShare: '172.16.16.1:/var/nfs/glance'
#GlanceNfsOptions: 'rw,sync,context=system_u:object_r:svirt_sandbox_file_t:s0'
# Cinder
CinderEnableIscsiBackend: false
CinderEnableRbdBackend: false
CinderEnableNfsBackend: true
CinderNfsServers: '172.16.16.1:/var/nfs/cinder'
CinderNfsMountOptions: 'rw,sync'
Check the network environment configuration:
[stack@e26-director ~]$ cat templates/network.yaml
# List of networks, used for j2 templating of enabled networks
- name: InternalApi
name_lower: internal_api
vip: true
vlan: '101'
ip_subnet: '172.16.11.0/24'
allocation_pools: [{'start': '172.16.11.100', 'end': '172.16.11.200'}]
- name: Tenant
name_lower: tenant
vip: false
vlan: '103'
ip_subnet: '172.16.13.0/24'
allocation_pools: [{'start': '172.16.13.100', 'end': '172.16.13.200'}]
- name: External
name_lower: external
vip: true
vlan: '104'
ip_subnet: '172.16.14.0/24'
allocation_pools: [{'start': '172.16.14.100', 'end': '172.16.14.200'}]
gateway_ip: '172.16.14.10'
- name: Storage
name_lower: storage
vip: true
vlan: '102'
ip_subnet: '172.16.12.0/24'
allocation_pools: [{'start': '172.16.12.100', 'end': '172.16.12.200'}]
Check the network configuration:
[stack@e26-director ~]$ cat templates/environment/network.yaml
resource_registry:
OS::TripleO::Controller::Net::SoftwareConfig: ../nic-config/controller.yaml
OS::TripleO::Compute::Net::SoftwareConfig: ../nic-config/compute.yaml
parameter_defaults:
DnsServers: [ "10.19.96.1" ]
NtpServer: "clock.redhat.com"
TimeZone: 'UTC'
ControlPlaneDefaultRoute: "172.16.16.10"
PublicVirtualFixedIPs: [{ 'ip_address' : "172.16.14.5" }]
NeutronBridgeMappings: "datacentre:br-ex"
NeutronFlatNetworks: "datacentre"
NetworkDeploymentActions: ['CREATE','UPDATE']
Overcloud installation
The installation took 42 minutes.
(undercloud) [stack@e26-director ~]$ ./overcloud-deploy.sh
...
Ansible passed.
Overcloud configuration completed.
Host 172.16.14.5 not found in /home/stack/.ssh/known_hosts
Overcloud Endpoint: http://172.16.14.5:5000
Overcloud Horizon Dashboard URL: http://172.16.14.5:80/dashboard
Overcloud rc file: /home/stack/overcloudrc
Overcloud Deployed without error
sys:1: ResourceWarning: unclosed <ssl.SSLSocket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('172.16.16.11', 48750)>
sys:1: ResourceWarning: unclosed <ssl.SSLSocket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('172.16.16.11', 47478)>
sys:1: ResourceWarning: unclosed <ssl.SSLSocket fd=7, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('172.16.16.11', 51680), raddr=('172.16.16.11', 13989)>
real 42m54.775s
user 0m9.339s
sys 0m1.568s
Let’s focus on the initial steps of this 42mn deployment.
Step 1: Stack created
(undercloud) [stack@e26-director ~]$ openstack stack list
+--------------------------------------+------------+----------------------------------+--------------------+----------------------+--------------+
| ID | Stack Name | Project | Stack Status | Creation Time | Updated Time |
+--------------------------------------+------------+----------------------------------+--------------------+----------------------+--------------+
| 9b53d8ec-5f99-48b4-afd8-360176dd0959 | overcloud | 63cd724dec5646d39ba904e110687cc5 | CREATE_IN_PROGRESS | 2020-11-14T12:38:43Z | None |
+--------------------------------------+------------+----------------------------------+--------------------+----------------------+--------------+
Step 2: Compute nodes created
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | None | power off | available | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | None | power off | available | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | None | power off | available | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power off | available | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power off | available | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power off | available | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
(undercloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+----------+----------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+----------+----------------+---------+
| 08763ed9-6cf8-4440-9a44-96209a847a7e | compute-0 | BUILD | | overcloud-full | compute |
| 503680bd-a4bb-46f6-83e1-138000c034f9 | compute-1 | BUILD | | overcloud-full | compute |
| 04c1305c-eef2-4abe-a7b9-073c50c059ab | compute-2 | BUILD | | overcloud-full | compute |
+--------------------------------------+-----------+--------+----------+----------------+---------+
Step 3: Boot of the compute nodes, creation of the controllers
Booting with PXE, writing disk with iSCSI.
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power off | available | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power off | available | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | None | power off | available | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | wait call-back | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | wait call-back | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | wait call-back | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
(undercloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+--------------+--------+----------+----------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+----------+----------------+---------+
| 8030b792-1aa7-43ce-bcec-0f39a3943371 | controller-0 | BUILD | | overcloud-full | control |
| 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | controller-1 | BUILD | | overcloud-full | control |
| 45290fae-5ca4-4e27-9444-f63fc77247ed | controller-2 | BUILD | | overcloud-full | control |
| 08763ed9-6cf8-4440-9a44-96209a847a7e | compute-0 | BUILD | | overcloud-full | compute |
| 503680bd-a4bb-46f6-83e1-138000c034f9 | compute-1 | BUILD | | overcloud-full | compute |
| 04c1305c-eef2-4abe-a7b9-073c50c059ab | compute-2 | BUILD | | overcloud-full | compute |
+--------------------------------------+--------------+--------+----------+----------------+---------+
Step 4: Boot of the controllers
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power on | wait call-back | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power on | wait call-back | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | 8030b792-1aa7-43ce-bcec-0f39a3943371 | power on | wait call-back | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | wait call-back | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | wait call-back | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | wait call-back | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
Step 5: Compute nodes moving to ‘deploying’ provisioning state
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power on | wait call-back | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power on | wait call-back | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | 8030b792-1aa7-43ce-bcec-0f39a3943371 | power on | wait call-back | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | deploying | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | deploying | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | deploying | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
Step 6: All nodes moving to deploying
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power on | deploying | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power on | deploying | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | 8030b792-1aa7-43ce-bcec-0f39a3943371 | power on | deploying | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | deploying | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | deploying | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | deploying | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
Step 7: Compute nodes moving to active with ctlplane network IP allocated
Moving to active, reboot on the local disk.
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power on | deploying | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power on | deploying | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | 8030b792-1aa7-43ce-bcec-0f39a3943371 | power on | deploying | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | active | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | active | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | active | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
(undercloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
| 8030b792-1aa7-43ce-bcec-0f39a3943371 | controller-0 | BUILD | | overcloud-full | control |
| 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | controller-1 | BUILD | | overcloud-full | control |
| 45290fae-5ca4-4e27-9444-f63fc77247ed | controller-2 | BUILD | | overcloud-full | control |
| 08763ed9-6cf8-4440-9a44-96209a847a7e | compute-0 | ACTIVE | ctlplane=172.16.16.205 | overcloud-full | compute |
| 503680bd-a4bb-46f6-83e1-138000c034f9 | compute-1 | ACTIVE | ctlplane=172.16.16.212 | overcloud-full | compute |
| 04c1305c-eef2-4abe-a7b9-073c50c059ab | compute-2 | ACTIVE | ctlplane=172.16.16.209 | overcloud-full | compute |
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
Step 8: All nodes in active
(undercloud) [stack@e26-director ~]$ openstack baremetal node list
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
| e4b01b91-81a1-4df0-9620-fbe5cfdf2516 | None | 45290fae-5ca4-4e27-9444-f63fc77247ed | power on | active | False |
| f90e0f2f-121d-4759-8a6d-a4bf69cab769 | None | 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | power on | active | False |
| 45c912d0-2dbd-425a-95bc-0bcb7aa104a4 | None | 8030b792-1aa7-43ce-bcec-0f39a3943371 | power on | active | False |
| a57ef390-3edc-4449-8116-e2fbda6b6d05 | None | 503680bd-a4bb-46f6-83e1-138000c034f9 | power on | active | False |
| e1df9b96-5e3a-4e13-9972-2b62a12e7cb7 | None | 08763ed9-6cf8-4440-9a44-96209a847a7e | power on | active | False |
| e07b0890-feb5-4082-b635-185abaf5da85 | None | 04c1305c-eef2-4abe-a7b9-073c50c059ab | power on | active | False |
+--------------------------------------+------+--------------------------------------+-------------+--------------------+-------------+
(undercloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
| 8030b792-1aa7-43ce-bcec-0f39a3943371 | controller-0 | ACTIVE | ctlplane=172.16.16.202 | overcloud-full | control |
| 9217c2f0-df92-4fe7-8cf0-bf280d1d9fa4 | controller-1 | ACTIVE | ctlplane=172.16.16.213 | overcloud-full | control |
| 45290fae-5ca4-4e27-9444-f63fc77247ed | controller-2 | ACTIVE | ctlplane=172.16.16.204 | overcloud-full | control |
| 08763ed9-6cf8-4440-9a44-96209a847a7e | compute-0 | ACTIVE | ctlplane=172.16.16.205 | overcloud-full | compute |
| 503680bd-a4bb-46f6-83e1-138000c034f9 | compute-1 | ACTIVE | ctlplane=172.16.16.212 | overcloud-full | compute |
| 04c1305c-eef2-4abe-a7b9-073c50c059ab | compute-2 | ACTIVE | ctlplane=172.16.16.209 | overcloud-full | compute |
+--------------------------------------+--------------+--------+------------------------+----------------+---------+
Step 9: Stack moving to CREATE_COMPLETE
Stack moving to “CREATE_COMPLETE” state:
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
| ID | Stack Name | Project | Stack Status | Creation Time | Updated Time |
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
| 465ce18b-eeb6-4894-b739-c18a2c812c2b | overcloud | 63cd724dec5646d39ba904e110687cc5 | CREATE_COMPLETE | 2020-11-14T14:32:22Z | None |
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
Step 10: Mistral workflow with Ansible run
Ansible is starting, ansible logs:
...
2020-11-14 14:41:11Z [overcloud]: CREATE_COMPLETE Stack CREATE completed successfully
Stack overcloud/465ce18b-eeb6-4894-b739-c18a2c812c2b CREATE_COMPLETE
Waiting for messages on queue 'tripleo' with no timeout.
Deploying overcloud configuration
Enabling ssh admin (tripleo-admin) for hosts:
172.16.16.202 172.16.16.213 172.16.16.204 172.16.16.205 172.16.16.212 172.16.16.209
Using ssh user heat-admin for initial connection.
Using ssh key at /home/stack/.ssh/id_rsa for initial connection.
...
After it’s a mistral workflow with the logs here:
...
WAITING FOR COMPLETION: Wait for containers to start for step 2 using paunch (1189 retries left).
...
WAITING FOR COMPLETION: Wait for containers to start for step 3 using paunch (1194 retries left).
...
WAITING FOR COMPLETION: Wait for containers to start for step 4 using paunch (1200 retries left).
...
Post-deployment Checks
Controller containers:
(overcloud) [stack@e26-director ~]$ ssh heat-admin@controller-0.ctlplane sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f67e5a83c227 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-octavia-worker:16.1 kolla_start About a minute ago Up About a minute ago octavia_worker
83e16021cda4 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-octavia-housekeeping:16.1 kolla_start About a minute ago Up About a minute ago octavia_housekeeping
807ffe06c213 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-octavia-health-manager:16.1 kolla_start About a minute ago Up About a minute ago octavia_health_manager
eb2931a50e94 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-api:16.1 kolla_start 5 minutes ago Up 5 minutes ago nova_api_cron
293aa316894d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-proxy-server:16.1 kolla_start 5 minutes ago Up 5 minutes ago swift_proxy
b4884698ec7c e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-octavia-api:16.1 kolla_start 5 minutes ago Up 2 minutes ago octavia_driver_agent
0eb217342c63 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-octavia-api:16.1 kolla_start 5 minutes ago Up 2 minutes ago octavia_api
5a1de2e1b9fc e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-api:16.1 kolla_start 5 minutes ago Up 5 minutes ago nova_metadata
f63f87b1a2ba e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-api:16.1 kolla_start 5 minutes ago Up 5 minutes ago nova_api
c1fa4439ee31 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-glance-api:16.1 kolla_start 5 minutes ago Up 5 minutes ago glance_api
edec5292caf1 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-placement-api:16.1 kolla_start 5 minutes ago Up 5 minutes ago placement_api
31ee7c60e4b0 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ovn-controller:16.1 kolla_start 5 minutes ago Up 5 minutes ago ovn_controller
77a11ed5b751 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 5 minutes ago Up 5 minutes ago swift_rsync
4aa00513d7bc e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 5 minutes ago Up 5 minutes ago swift_object_updater
39ca1d40676b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 5 minutes ago Up 5 minutes ago swift_object_server
5f189b849af0 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_object_replicator
9eabca9b8e36 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-proxy-server:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_object_expirer
d42cee60a7df e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-object:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_object_auditor
53c6db07bad9 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_container_updater
60ebecddca77 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_container_server
3253ef09ef2f e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_container_replicator
61902049d61b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-container:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_container_auditor
9e3a6ff3ed50 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_account_server
d8e87e2ff074 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_account_replicator
f203c75a4bcf e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_account_reaper
50eec8eaaa75 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-swift-account:16.1 kolla_start 6 minutes ago Up 6 minutes ago swift_account_auditor
71436410acb0 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-novncproxy:16.1 kolla_start 6 minutes ago Up 6 minutes ago nova_vnc_proxy
0d185df0f3a6 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-scheduler:16.1 kolla_start 6 minutes ago Up 6 minutes ago nova_scheduler
e9da33f3eb2b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-conductor:16.1 kolla_start 6 minutes ago Up 6 minutes ago nova_conductor
d5886e8a3a69 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-server-ovn:16.1 kolla_start 6 minutes ago Up 6 minutes ago neutron_api
b6d7982e30a6 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cron:16.1 kolla_start 6 minutes ago Up 6 minutes ago logrotate_crond
2eccb4f5a8bd e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-engine:16.1 kolla_start 6 minutes ago Up 6 minutes ago heat_engine
abc831ca4ace e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-api:16.1 kolla_start 6 minutes ago Up 6 minutes ago heat_api_cron
4c299e98772b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-api-cfn:16.1 kolla_start 6 minutes ago Up 6 minutes ago heat_api_cfn
1077c4c7bb67 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-heat-api:16.1 kolla_start 6 minutes ago Up 6 minutes ago heat_api
aa00ba6bb9bc e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cinder-scheduler:16.1 kolla_start 6 minutes ago Up 6 minutes ago cinder_scheduler
dc827d367f72 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cinder-api:16.1 kolla_start 6 minutes ago Up 6 minutes ago cinder_api_cron
96137932504e e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cinder-api:16.1 kolla_start 6 minutes ago Up 6 minutes ago cinder_api
f431ff7a7489 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-keystone:16.1 kolla_start 9 minutes ago Up 9 minutes ago keystone
5c87c523574d e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-iscsid:16.1 kolla_start 9 minutes ago Up 9 minutes ago iscsid
71495bb54371 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ovn-northd:16.1 /bin/bash /usr/lo... 9 minutes ago Up 9 minutes ago ovn-dbs-bundle-podman-2
a56dc7c901de e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-horizon:16.1 kolla_start 10 minutes ago Up 10 minutes ago horizon
4c9738219c9b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-haproxy:16.1 /bin/bash /usr/lo... 11 minutes ago Up 11 minutes ago haproxy-bundle-podman-2
f8b78061d070 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mariadb:16.1 kolla_start 12 minutes ago Up 12 minutes ago clustercheck
dccf6c5d244e e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-rabbitmq:16.1 /bin/bash /usr/lo... 13 minutes ago Up 13 minutes ago rabbitmq-bundle-podman-0
21281098e475 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-mariadb:16.1 /bin/bash /usr/lo... 14 minutes ago Up 14 minutes ago galera-bundle-podman-0
e07e0703fa87 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-memcached:16.1 kolla_start 15 minutes ago Up 15 minutes ago memcached
Compute containers:
(overcloud) [stack@e26-director ~]$ ssh heat-admin@compute-0.ctlplane sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d604919d92e e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-compute:16.1 kolla_start 2 minutes ago Up 2 minutes ago nova_compute
dcb3bf2f7fe5 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-neutron-metadata-agent-ovn:16.1 kolla_start 6 minutes ago Up 6 minutes ago ovn_metadata_agent
1a4e20e15701 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-ovn-controller:16.1 kolla_start 6 minutes ago Up 6 minutes ago ovn_controller
01a3b6da8a74 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-compute:16.1 kolla_start 6 minutes ago Up 6 minutes ago nova_migration_target
e1e7f80a1de2 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-cron:16.1 kolla_start 6 minutes ago Up 6 minutes ago logrotate_crond
a3b1c6814cc1 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-iscsid:16.1 kolla_start 10 minutes ago Up 10 minutes ago iscsid
87117bb8f6c3 e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-libvirt:16.1 kolla_start 10 minutes ago Up 10 minutes ago nova_libvirt
3f688bbcda2b e26-director.ctlplane.lan.redhat.com:8787/rhosp-rhel8/openstack-nova-libvirt:16.1 kolla_start 10 minutes ago Up 10 minutes ago nova_virtlogd
Your credentials are here:
(overcloud) [stack@e26-director ~]$ cat overcloudrc
# Clear any old environment that may conflict.
for key in $( set | awk '{FS="="} /^OS_/ {print $1}' ); do unset $key ; done
export NOVA_VERSION=1.1
export COMPUTE_API_VERSION=1.1
export OS_USERNAME=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_NO_CACHE=True
export OS_CLOUDNAME=overcloud
export no_proxy=,172.16.14.5,172.16.16.214
export PYTHONWARNINGS='ignore:Certificate has no, ignore:A true SSLContext object is not available'
export OS_AUTH_TYPE=password
export OS_PASSWORD=XXXXXXXXXXXXXXXX
export OS_AUTH_URL=http://172.16.14.5:5000
export OS_IDENTITY_API_VERSION=3
export OS_COMPUTE_API_VERSION=2.latest
export OS_IMAGE_API_VERSION=2
export OS_VOLUME_API_VERSION=3
export OS_REGION_NAME=regionOne
# Add OS_CLOUDNAME to PS1
if [ -z "${CLOUDPROMPT_ENABLED:-}" ]; then
export PS1=${PS1:-""}
export PS1=\${OS_CLOUDNAME:+"(\$OS_CLOUDNAME)"}\ $PS1
export CLOUDPROMPT_ENABLED=1
fi
List openstack overcloud services:
(undercloud) [stack@e26-director ~]$ source overcloudrc
(overcloud) [stack@e26-director ~]$ openstack service list
+----------------------------------+-----------+----------------+
| ID | Name | Type |
+----------------------------------+-----------+----------------+
| 006b1579475940bbafa83e52f95872b0 | cinderv3 | volumev3 |
| 16159ed6cb82477b9a9801959c892bba | placement | placement |
| 24e51c288c8c4ce2a55281d9d572354a | neutron | network |
| 3ee5c8d4e5e74597869ce0ea7cd1c33c | keystone | identity |
| 4b9faf5c34a94effad4bd548992d8aa8 | glance | image |
| 814af66f6fb44f3bbe1f434d71d0b0b0 | heat | orchestration |
| 877ffbc007b243bd963aff9c3d55653a | nova | compute |
| 91ba9f5fe042431090da88ff01e2800f | octavia | load-balancer |
| dd82fe1e2cb04200a4a9e0daf2ac7f14 | swift | object-store |
| e044c1daa9914ca59eebe33b04515b87 | cinderv2 | volumev2 |
| f6408ae182f7415c947b3e71950e5961 | heat-cfn | cloudformation |
+----------------------------------+-----------+----------------+
Setup the user tenants
Network configuration
Create external network:
[stack@e26-director ~]$ source overcloudrc
(overcloud) [stack@e26-director ~]$ openstack network create --external --share --provider-physical-network datacentre --provider-network-type vlan --provider-segment 104 external
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2020-11-14T15:15:43Z |
| description | |
| dns_domain | |
| id | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | False |
| is_vlan_transparent | None |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| mtu | 1500 |
| name | external |
| port_security_enabled | True |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| provider:network_type | vlan |
| provider:physical_network | datacentre |
| provider:segmentation_id | 104 |
| qos_policy_id | None |
| revision_number | 1 |
| router:external | External |
| segments | None |
| shared | True |
| status | ACTIVE |
| subnets | |
| tags | |
| updated_at | 2020-11-14T15:15:43Z |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create the external subnet:
(overcloud) [stack@e26-director ~]$ openstack subnet create external --gateway 172.16.14.10 --allocation-pool start=172.16.14.20,end=172.16.14.99 --no-dhcp --network external --subnet-range 172.16.14.0/24
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools | 172.16.14.20-172.16.14.99 |
| cidr | 172.16.14.0/24 |
| created_at | 2020-11-14T15:18:38Z |
| description | |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 172.16.14.10 |
| host_routes | |
| id | f1505863-c137-453b-bc8e-1ac47141e2f3 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | external |
| network_id | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 |
| prefix_length | None |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2020-11-14T15:18:38Z |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create the external router:
(overcloud) [stack@e26-director ~]$ openstack router create router0
+-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2020-11-14T15:16:00Z |
| description | |
| external_gateway_info | null |
| flavor_id | None |
| id | 4afb314d-2b65-41b0-98ee-7f96bd84b46c |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | router0 |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| revision_number | 1 |
| routes | |
| status | ACTIVE |
| tags | |
| updated_at | 2020-11-14T15:16:00Z |
+-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Enable the router gateway:
(overcloud) [stack@e26-director ~]$ openstack router set router0 --external-gateway external
Create internal network:
(overcloud) [stack@e26-director ~]$ openstack network create internal0
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2020-11-14T15:16:32Z |
| description | |
| dns_domain | |
| id | 8b5a1e6d-48e9-49b1-a93b-6ed711b217e9 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | False |
| is_vlan_transparent | None |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| mtu | 1442 |
| name | internal0 |
| port_security_enabled | True |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| provider:network_type | geneve |
| provider:physical_network | None |
| provider:segmentation_id | 2 |
| qos_policy_id | None |
| revision_number | 1 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | |
| tags | |
| updated_at | 2020-11-14T15:16:32Z |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create internal subnet:
(overcloud) [stack@e26-director ~]$ openstack subnet create subnet0 --network internal0 --subnet-range 172.31.0.0/24 --dns-nameserver 10.19.96.1
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools | 172.31.0.2-172.31.0.254 |
| cidr | 172.31.0.0/24 |
| created_at | 2020-11-14T15:17:12Z |
| description | |
| dns_nameservers | 10.19.96.1 |
| enable_dhcp | True |
| gateway_ip | 172.31.0.1 |
| host_routes | |
| id | 5481c387-bbc2-4ecf-b712-0ae57736ae58 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | subnet0 |
| network_id | 8b5a1e6d-48e9-49b1-a93b-6ed711b217e9 |
| prefix_length | None |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2020-11-14T15:17:12Z |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(overcloud) [stack@e26-director ~]$ openstack network list
+--------------------------------------+-------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-------------+--------------------------------------+
| 8b5a1e6d-48e9-49b1-a93b-6ed711b217e9 | internal0 | 5481c387-bbc2-4ecf-b712-0ae57736ae58 |
| 8ef32b86-d61f-4fae-a8da-c97d494fe969 | lb-mgmt-net | 570d7aec-d409-4a02-9ef0-7a29713f85e5 |
| e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 | external | f1505863-c137-453b-bc8e-1ac47141e2f3 |
+--------------------------------------+-------------+--------------------------------------+
Add one internal IP to the router:
(overcloud) [stack@e26-director ~]$ openstack router add subnet router0 subnet0
Create a keypair:
(overcloud) [stack@e26-director ~]$ openstack keypair create --public-key ~/.ssh/id_rsa.pub admin
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | 8d:b8:d2:ac:02:b0:ee:be:b1:02:c0:fe:54:64:92:00 |
| name | admin |
| type | ssh |
| user_id | 8a8a582ae3044652951cf4385ac713cf |
+-------------+-------------------------------------------------+
Create a m1.small slavor:
(overcloud) [stack@e26-director ~]$ openstack flavor create --ram 2048 --disk 20 --vcpus 2 m1.small
+----------------------------+--------------------------------------+
| Field | Value |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| description | None |
| disk | 20 |
| extra_specs | {} |
| id | 9024977e-6090-4bcc-9548-9eac482ceee1 |
| name | m1.small |
| os-flavor-access:is_public | True |
| properties | |
| ram | 2048 |
| rxtx_factor | 1.0 |
| swap | 0 |
| vcpus | 2 |
+----------------------------+--------------------------------------+
List flavors:
(overcloud) [stack@e26-director ~]$ openstack flavor list
+--------------------------------------+----------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+----------+------+------+-----------+-------+-----------+
| 9024977e-6090-4bcc-9548-9eac482ceee1 | m1.small | 2048 | 20 | 0 | 2 | True |
+--------------------------------------+----------+------+------+-----------+-------+-----------+
Create a RHEL 8.2 guest image:
(overcloud) [stack@e26-director ~]$ openstack image create rhel82 --file /var/images/rhel-8.2-update-2-x86_64-kvm.qcow2 --disk-format qcow2 --container-format bare --public
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum | f0b3efae6e9eb9e2d500ed78b2544755 |
| container_format | bare |
| created_at | 2020-11-14T15:20:41Z |
| disk_format | qcow2 |
| file | /v2/images/30ddb614-f1f1-4962-b1a9-4da6f526cdd6/file |
| id | 30ddb614-f1f1-4962-b1a9-4da6f526cdd6 |
| min_disk | 0 |
| min_ram | 0 |
| name | rhel82 |
| owner | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| properties | direct_url='swift+config://ref1/glance/30ddb614-f1f1-4962-b1a9-4da6f526cdd6', os_hash_algo='sha512', os_hash_value='9c623218a59799bc6f6b200028122d84fbfd10995a1f56338420ac0607a091e6238d16a8d9e67c8a2f05ea61c1bec7ae45c3164a6adf8606055de862dc1b2620', os_hidden='False', stores='default_backend' |
| protected | False |
| schema | /v2/schemas/image |
| size | 1196818432 |
| status | active |
| tags | |
| updated_at | 2020-11-14T15:20:48Z |
| virtual_size | None |
| visibility | public |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(overcloud) [stack@e26-director ~]$ openstack image list
+--------------------------------------+----------------------------------------+--------+
| ID | Name | Status |
+--------------------------------------+----------------------------------------+--------+
| 2c81b3ce-c0c1-4d8b-a135-8b8c255ade0c | octavia-amphora-16.1-20201003.1.x86_64 | active |
| 30ddb614-f1f1-4962-b1a9-4da6f526cdd6 | rhel82 | active |
+--------------------------------------+----------------------------------------+--------+
Enable four floating IPs:
(overcloud) [stack@e26-director ~]$ openstack floating ip create external
(overcloud) [stack@e26-director ~]$ openstack floating ip create external
(overcloud) [stack@e26-director ~]$ openstack floating ip create external
(overcloud) [stack@e26-director ~]$ openstack floating ip create external
(overcloud) [stack@e26-director ~]$ openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| ID | Floating IP Address | Fixed IP Address | Port | Floating Network | Project |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| 207f3b4a-11be-4176-a1c0-a399225bdd1a | 172.16.14.34 | None | None | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| 55fb1ea3-9f2f-4ecc-8e65-f89f1a440001 | 172.16.14.96 | None | None | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| d7922362-6333-4907-845f-a1beeebf36ab | 172.16.14.88 | None | None | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| f0b60c3d-90ab-4249-b280-92968a0931fb | 172.16.14.42 | None | None | e5a1a8f2-de51-405c-aaf7-cbc1d6473dc7 | 43ed7f3871ae4e878a2bc4d5a0f61406 |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
Create a first security group to open TCP 80 (HTTP):
(overcloud) [stack@e26-director ~]$ openstack security group create web --description "Web servers"
+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at | 2020-11-14T15:22:19Z |
| description | Web servers |
| id | 0c93d8fe-cff2-4805-8ad2-139be9054add |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | web |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| revision_number | 1 |
| rules | created_at='2020-11-14T15:22:19Z', direction='egress', ethertype='IPv6', id='45a776fd-c2c6-4d25-9ed4-99c5f710e7f2', updated_at='2020-11-14T15:22:19Z' |
| | created_at='2020-11-14T15:22:19Z', direction='egress', ethertype='IPv4', id='cd9f5995-cb06-4b3b-b63d-f5bcb35aa791', updated_at='2020-11-14T15:22:19Z' |
| tags | [] |
| updated_at | 2020-11-14T15:22:19Z |
+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create a second security group to open ICMP (ping):
(overcloud) [stack@e26-director ~]$ openstack security group rule create --protocol icmp web
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at | 2020-11-14T15:22:35Z |
| description | |
| direction | ingress |
| ether_type | IPv4 |
| id | d856bddb-7c95-4743-9422-26e43d56ab38 |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | None |
| port_range_max | None |
| port_range_min | None |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| protocol | icmp |
| remote_group_id | None |
| remote_ip_prefix | 0.0.0.0/0 |
| revision_number | 0 |
| security_group_id | 0c93d8fe-cff2-4805-8ad2-139be9054add |
| tags | [] |
| updated_at | 2020-11-14T15:22:35Z |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create a third security group to open TCP 22 (SSH):
(overcloud) [stack@e26-director ~]$ openstack security group rule create --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0 web
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at | 2020-11-14T15:22:50Z |
| description | |
| direction | ingress |
| ether_type | IPv4 |
| id | b7510520-e03c-4610-a061-a4a37842f8f8 |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='43ed7f3871ae4e878a2bc4d5a0f61406', project.name='admin', region_name='regionOne', zone= |
| name | None |
| port_range_max | 22 |
| port_range_min | 22 |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| protocol | tcp |
| remote_group_id | None |
| remote_ip_prefix | 0.0.0.0/0 |
| revision_number | 0 |
| security_group_id | 0c93d8fe-cff2-4805-8ad2-139be9054add |
| tags | [] |
| updated_at | 2020-11-14T15:22:50Z |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Create an instance:
(overcloud) [stack@e26-director ~]$ openstack server create --flavor m1.small --image rhel82 --security-group web --nic net-id=internal0 --key-name admin instance0
+-------------------------------------+---------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hostname | instance0 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-00b8lc1z |
| OS-EXT-SRV-ATTR:root_device_name | None |
| OS-EXT-SRV-ATTR:user_data | None |
| OS-EXT-STS:power_state | NOSTATE |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | EprJoiTa82B2 |
| config_drive | |
| created | 2020-11-14T15:23:09Z |
| description | None |
| flavor | disk='20', ephemeral='0', , original_name='m1.small', ram='2048', swap='0', vcpus='2' |
| hostId | |
| host_status | |
| id | 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 |
| image | rhel82 (30ddb614-f1f1-4962-b1a9-4da6f526cdd6) |
| key_name | admin |
| locked | False |
| locked_reason | None |
| name | instance0 |
| progress | 0 |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| properties | |
| security_groups | name='0c93d8fe-cff2-4805-8ad2-139be9054add' |
| server_groups | [] |
| status | BUILD |
| tags | [] |
| trusted_image_certificates | None |
| updated | 2020-11-14T15:23:09Z |
| user_id | 8a8a582ae3044652951cf4385ac713cf |
| volumes_attached | |
+-------------------------------------+---------------------------------------------------------------------------------------+
List the servers:
(overcloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+----------+--------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+----------+--------+--------+
| 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 | instance0 | BUILD | | rhel82 | |
+--------------------------------------+-----------+--------+----------+--------+--------+
Associate the floating IP:
(overcloud) [stack@e26-director ~]$ FLOATING_IP_ID=$( openstack floating ip list -f value -c ID --status 'DOWN' | head -n 1 )
(overcloud) [stack@e26-director ~]$ openstack server add floating ip instance0 $FLOATING_IP_ID
List the servers:
(overcloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 | instance0 | ACTIVE | internal0=172.31.0.43, 172.16.14.34 | rhel82 | |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
Connect to the VM with ssh:
(overcloud) [stack@e26-director ~]$ ssh cloud-user@172.16.14.34
The authenticity of host '172.16.14.34 (172.16.14.34)' can't be established.
ECDSA key fingerprint is SHA256:5s6f1HTeWKDl+1Urwt1K4uiDcVFkyi+z8Sg/j0Ei1AU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.16.14.34' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
[cloud-user@instance0 ~]$ uptime
10:24:48 up 1 min, 1 user, load average: 0.59, 0.25, 0.09
[cloud-user@instance0 ~]$ ping www.google.com
PING www.google.com (172.253.122.104) 56(84) bytes of data.
64 bytes from 172.253.122.104 (172.253.122.104): icmp_seq=1 ttl=97 time=29.4 ms
64 bytes from 172.253.122.104 (172.253.122.104): icmp_seq=2 ttl=97 time=29.7 ms
64 bytes from 172.253.122.104 (172.253.122.104): icmp_seq=3 ttl=97 time=29.3 ms
64 bytes from 172.253.122.104 (172.253.122.104): icmp_seq=4 ttl=97 time=29.3 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 7ms
rtt min/avg/max/mdev = 29.292/29.443/29.713/0.203 ms
Check the instance status:
(overcloud) [stack@e26-director ~]$ openstack server show instance0
+-------------------------------------+---------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | compute-0.lan.redhat.com |
| OS-EXT-SRV-ATTR:hostname | instance0 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute-0.lan.redhat.com |
| OS-EXT-SRV-ATTR:instance_name | instance-0000001d |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-8w1btaxt |
| OS-EXT-SRV-ATTR:root_device_name | /dev/vda |
| OS-EXT-SRV-ATTR:user_data | None |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2020-10-30T21:53:18.000000 |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | internal0=172.31.0.87, 172.16.14.52 |
| config_drive | |
| created | 2020-10-30T21:52:54Z |
| description | None |
| flavor | disk='20', ephemeral='0', , original_name='m1.small', ram='2048', swap='0', vcpus='2' |
| hostId | b849852eada52fb00f31f53264c3ee25f62bb365f907d2d4a083de13 |
| host_status | UP |
| id | 8afb197b-0be7-42e8-aed4-e5eccdef701d |
| image | rhel82 (1089d9fa-7088-4b8b-81a4-7d40c81bf427) |
| key_name | admin |
| locked | False |
| locked_reason | None |
| name | instance0 |
| progress | 0 |
| project_id | f34b7770b12149dfa2509f2ebe8ae196 |
| properties | |
| security_groups | name='web' |
| server_groups | [] |
| status | ACTIVE |
| tags | [] |
| trusted_image_certificates | None |
| updated | 2020-10-30T21:53:18Z |
| user_id | 7cc16def25434683a439d4a77ef679d1 |
| volumes_attached | |
+-------------------------------------+---------------------------------------------------------------------------------------+
Internal network testing
We can build a second VM:
(overcloud) [stack@e26-director ~]$ openstack server create --flavor m1.small --image rhel82 --security-group web --nic net-id=internal0 --key-name admin instance1
+-------------------------------------+---------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hostname | instance1 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-bbwzrknl |
| OS-EXT-SRV-ATTR:root_device_name | None |
| OS-EXT-SRV-ATTR:user_data | None |
| OS-EXT-STS:power_state | NOSTATE |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | UcoVz8UB9ZPy |
| config_drive | |
| created | 2020-11-14T15:25:46Z |
| description | None |
| flavor | disk='20', ephemeral='0', , original_name='m1.small', ram='2048', swap='0', vcpus='2' |
| hostId | |
| host_status | |
| id | 2d38c848-daef-4614-85be-c6ae98d214bd |
| image | rhel82 (30ddb614-f1f1-4962-b1a9-4da6f526cdd6) |
| key_name | admin |
| locked | False |
| locked_reason | None |
| name | instance1 |
| progress | 0 |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| properties | |
| security_groups | name='0c93d8fe-cff2-4805-8ad2-139be9054add' |
| server_groups | [] |
| status | BUILD |
| tags | [] |
| trusted_image_certificates | None |
| updated | 2020-11-14T15:25:46Z |
| user_id | 8a8a582ae3044652951cf4385ac713cf |
| volumes_attached | |
+-------------------------------------+---------------------------------------------------------------------------------------+
A second VM without floating IP is available:
(overcloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| 2d38c848-daef-4614-85be-c6ae98d214bd | instance1 | BUILD | | rhel82 | |
| 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 | instance0 | ACTIVE | internal0=172.31.0.43, 172.16.14.34 | rhel82 | |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
(overcloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| 2d38c848-daef-4614-85be-c6ae98d214bd | instance1 | BUILD | | rhel82 | |
| 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 | instance0 | ACTIVE | internal0=172.31.0.43, 172.16.14.34 | rhel82 | |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
(overcloud) [stack@e26-director ~]$ openstack server list
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
| 2d38c848-daef-4614-85be-c6ae98d214bd | instance1 | ACTIVE | internal0=172.31.0.88 | rhel82 | |
| 4f39c09a-2b4c-44d1-963a-ac2bebf0a061 | instance0 | ACTIVE | internal0=172.31.0.43, 172.16.14.34 | rhel82 | |
+--------------------------------------+-----------+--------+-------------------------------------+--------+--------+
We can ssh into the first VM:
(overcloud) [stack@e26-director ~]$ ssh cloud-user@172.16.14.34
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
Last login: Sat Nov 14 10:24:45 2020 from 172.16.14.10
[cloud-user@instance0 ~]$
We can jump into the second VM which is SNATed:
[cloud-user@instance0 ~]$ ssh cloud-user@172.31.0.88
The authenticity of host '172.31.0.88 (172.31.0.88)' can't be established.
ECDSA key fingerprint is SHA256:uS8dDUVukhUaBZxpJRAuuJST8xeNF8ZQ392GaLycL4I.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.31.0.88' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
The second VM withour floating IP has Internet access:
[cloud-user@instance1 ~]$ ping www.google.com
PING www.google.com (172.217.15.100) 56(84) bytes of data.
64 bytes from iad30s21-in-f4.1e100.net (172.217.15.100): icmp_seq=1 ttl=109 time=29.1 ms
64 bytes from iad30s21-in-f4.1e100.net (172.217.15.100): icmp_seq=2 ttl=109 time=28.3 ms
64 bytes from iad30s21-in-f4.1e100.net (172.217.15.100): icmp_seq=3 ttl=109 time=27.8 ms
64 bytes from iad30s21-in-f4.1e100.net (172.217.15.100): icmp_seq=4 ttl=109 time=27.6 ms
Connect with the “openstack server ssh” command
If you don’t want to loose time to find the public IP of your instance, you can directly use the command “openstack server ssh”:
(overcloud) [stack@e26-director ~]$ openstack server ssh --login cloud-user instance0
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
Last login: Sat Nov 14 10:26:34 2020 from 172.16.14.10
[cloud-user@instance0 ~]$
Of course, without floating IP, you will not be able to ssh into your VM:
(overcloud) [stack@e26-director ~]$ openstack server ssh --login cloud-user instance1
ERROR: No public IP version [4, 6] address found
Locate a VM in the cluster
As admin, we can locate the VM on the cluster with a ‘show’ command:
(overcloud) [stack@e26-director ~]$ openstack server show instance1
+-------------------------------------+---------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | compute-0.lan.redhat.com |
| OS-EXT-SRV-ATTR:hostname | instance1 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute-0.lan.redhat.com |
| OS-EXT-SRV-ATTR:instance_name | instance-00000005 |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-bbwzrknl |
| OS-EXT-SRV-ATTR:root_device_name | /dev/vda |
| OS-EXT-SRV-ATTR:user_data | None |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2020-11-14T15:26:17.000000 |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | internal0=172.31.0.88 |
| config_drive | |
| created | 2020-11-14T15:25:46Z |
| description | None |
| flavor | disk='20', ephemeral='0', , original_name='m1.small', ram='2048', swap='0', vcpus='2' |
| hostId | 85ad468cad049dc8a90154dae873782bfaf20ee29027628d188f83de |
| host_status | UP |
| id | 2d38c848-daef-4614-85be-c6ae98d214bd |
| image | rhel82 (30ddb614-f1f1-4962-b1a9-4da6f526cdd6) |
| key_name | admin |
| locked | False |
| locked_reason | None |
| name | instance1 |
| progress | 0 |
| project_id | 43ed7f3871ae4e878a2bc4d5a0f61406 |
| properties | |
| security_groups | name='web' |
| server_groups | [] |
| status | ACTIVE |
| tags | [] |
| trusted_image_certificates | None |
| updated | 2020-11-14T15:26:17Z |
| user_id | 8a8a582ae3044652951cf4385ac713cf |
| volumes_attached | |
+-------------------------------------+---------------------------------------------------------------------------------------+
Check the console log:
(overcloud) [stack@e26-director ~]$ openstack console log show instance1
...
[[0;32m OK [0m] Started OpenSSH server daemon.
[ 11.463316] cloud-init[933]: Cloud-init v. 19.4 running 'modules:config' at Sat, 14 Nov 2020 15:26:33 +0000. Up 11.02 seconds.
[[0;32m OK [0m] Started Apply the settings specified in cloud-config.
Starting Execute cloud user/final scripts...
ci-info: ++++++++++++++Authorized keys from /home/cloud-user/.ssh/authorized_keys for user cloud-user++++++++++++++
ci-info: +---------+-------------------------------------------------+---------+----------------------------------+
ci-info: | Keytype | Fingerprint (md5) | Options | Comment |
ci-info: +---------+-------------------------------------------------+---------+----------------------------------+
ci-info: | ssh-rsa | 8d:b8:d2:ac:02:b0:ee:be:b1:02:c0:fe:54:64:92:00 | - | root@e26-director.lan.redhat.com |
ci-info: +---------+-------------------------------------------------+---------+----------------------------------+
<14>Nov 14 10:26:34 ec2:
<14>Nov 14 10:26:34 ec2: #############################################################
<14>Nov 14 10:26:34 ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
<14>Nov 14 10:26:34 ec2: 256 SHA256:uS8dDUVukhUaBZxpJRAuuJST8xeNF8ZQ392GaLycL4I no comment (ECDSA)
<14>Nov 14 10:26:34 ec2: 256 SHA256:YoAtC8W3Otl3JkcwvmZSTMftkConGniy2pyxOxKkMBY no comment (ED25519)
<14>Nov 14 10:26:34 ec2: 3072 SHA256:nSnIbuDDTv0FaDenzFz+uUh6hVElug6WZc0GmrGdlt4 no comment (RSA)
<14>Nov 14 10:26:34 ec2: -----END SSH HOST KEY FINGERPRINTS-----
<14>Nov 14 10:26:34 ec2: #############################################################
-----BEGIN SSH HOST KEY KEYS-----
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH/bYdWs47P+QqBAHDr+lt4NqXUSlXwfDwq4TLvc1/UTtlU4dZBG9CtcJPv30vJPHF2qgboU/AFW3UOosl0BxSo=
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICzqm4Xir+r+Q22n8e43UZRcbGL8HmzScpvkYC8GyYeS
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5XSAhgDkfbtbtjTroWTsmz31IM3LMj0NVHMvk7pQn0MbYVhs3wmyNA5mYzHfqm+LF8pZza5eT4Mpai67DIoPoChUf1hfnxqmW9buPDgJ122FG2XYV1ExYYo0o7VhqewOZxqxGfFVadkeMGezfJVSkICSiN8AKbd1kngNwlqx5PuRiMBP+qciIcx8bCfmW3rsnT3hMeTDxOgzZM+YdEVQMYYGD8UW1ZI0y4w8Toci3QKNOZB5F1XsyBunF7S3pMswXw6o102qX8PzcSX6XTAMWDWJJq9Is50YAXonn6quG3B1D5tMywWXzoJvNRijzfGqHlaiLBj5SfeWZTasUjclnYe2r/k6oWU1IQdCclq5eMbo01J0rg6qE1MeZ40hsTyoKHQc/Pp/tqpM3F3rlxdpzhBX2b/bENEyrp5rKWKj6Ibsbkqp3LOvYFuMdmLptbVVjK0E+vGbDUIcDF5dZkHVJ/W9KhD+squhbT7lKzyKas6B/r24Oi2yg4NqylPzAQpE=
-----END SSH HOST KEY KEYS-----
[ 11.862115] cloud-init[1496]: Cloud-init v. 19.4 running 'modules:final' at Sat, 14 Nov 2020 15:26:34 +0000. Up 11.75 seconds.
[ 11.863250] cloud-init[1496]: Cloud-init v. 19.4 finished at Sat, 14 Nov 2020 15:26:34 +0000. Datasource DataSourceOpenStackLocal [net,ver=2]. Up 11.85 seconds
[ 11.903910] echo[2014]: try restart NetworkManager.service
[[0;32m OK [0m] Stopped Network Manager Wait Online.
Stopping Network Manager Wait Online...
Stopping Network Manager...
[[0;32m OK [0m] Stopped Network Manager.
Starting Network Manager...
[[0;32m OK [0m] Started Network Manager.
[[0;32m OK [0m] Started Execute cloud user/final scripts.
[[0;32m OK [0m] Reached target Cloud-init target.
Starting Network Manager Wait Online...
[[0;32m OK [0m] Started Network Manager Wait Online.
Red Hat Enterprise Linux 8.2 (Ootpa)
Kernel 4.18.0-193.14.3.el8_2.x86_64 on an x86_64
Activate the web console with: systemctl enable --now cockpit.socket
instance1 login:
You can see the VM created by libvirt on the OSP compute node:
(overcloud) [stack@e26-director ~]$ ssh heat-admin@compute-0.ctlplane "sudo podman exec -it nova_libvirt virsh list"
Id Name State
-----------------------------------
1 instance-00000005 running
Horizon, the OpenStack dashboard
We get the IP adress of Horizon from here:
(overcloud) [stack@e26-director ~]$ cat ~/overcloudrc | grep OS_AUTH_URL
export OS_AUTH_URL=http://172.16.14.5:5000
Good Horizon is up:
(overcloud) [stack@e26-director ~]$ curl http://172.16.14.5:80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://172.16.14.5/dashboard">here</a>.</p>
</body></html>
Create a tunnel to route the Horizon IP:
egallen@laptop Desktop % sshuttle -r e26-director 172.16.14.0/24
client: Connected.
Open the Dashboard in your broswer http://172.16.14.5/:
Check the resources available:
List instances:
Check network topology:
Use the instance console:
Appendix
DHCP tracking
You can monitor the DHCP request during the installation with this command:
[stack@e26-director ~]$ sudo tcpdump -i eth1 -vvv '(port 67 or port 68)' |tee dhcp_capture.pcap ```
Workflow
You can check the workflow with this command:
(undercloud) [stack@e26-director ~]$ openstack workflow list -c Name | grep .create_deployment_plan
| tripleo.plan_management.v1.create_deployment_plan
NVME testing in one VM
NVME in one OSP 16.1 VM:
[cloud-user@instance3 ~]$ time fio --randrepeat=1 --ioengine=posixaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=75
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=posixaio, iodepth=64
fio-3.7
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [m(1)][100.0%][r=24.4MiB/s,w=8564KiB/s][r=6243,w=2141 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=14807: Sat Oct 31 12:53:34 2020
read: IOPS=5089, BW=19.9MiB/s (20.8MB/s)(768MiB/38608msec)
bw ( KiB/s): min=17024, max=25176, per=99.93%, avg=20343.61, stdev=2515.68, samples=77
iops : min= 4256, max= 6294, avg=5085.90, stdev=628.92, samples=77
write: IOPS=1700, BW=6801KiB/s (6965kB/s)(256MiB/38608msec)
bw ( KiB/s): min= 5368, max= 8712, per=99.94%, avg=6796.95, stdev=914.21, samples=77
iops : min= 1342, max= 2178, avg=1699.23, stdev=228.55, samples=77
cpu : usr=0.99%, sys=0.27%, ctx=32173, majf=0, minf=21
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=6.9%, 16=25.0%, 32=55.6%, >=64=12.5%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=97.6%, 8=1.0%, 16=0.1%, 32=0.0%, 64=1.4%, >=64=0.0%
issued rwts: total=196498,65646,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=19.9MiB/s (20.8MB/s), 19.9MiB/s-19.9MiB/s (20.8MB/s-20.8MB/s), io=768MiB (805MB), run=38608-38608msec
WRITE: bw=6801KiB/s (6965kB/s), 6801KiB/s-6801KiB/s (6965kB/s-6965kB/s), io=256MiB (269MB), run=38608-38608msec
Disk stats (read/write):
vda: ios=195032/65177, merge=0/2, ticks=30647/5927, in_queue=43, util=99.72%
real 0m39.890s
user 0m0.939s
sys 0m3.414s
SAS testing in one VM
SAS in one OSP 16.1 VM:
[cloud-user@instance0 ~]$ time fio --randrepeat=1 --ioengine=posixaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=75
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=posixaio, iodepth=64
fio-3.7
Starting 1 process
Jobs: 1 (f=1): [m(1)][100.0%][r=49.9MiB/s,w=16.9MiB/s][r=12.8k,w=4329 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=14725: Sat Oct 31 12:52:18 2020
read: IOPS=12.6k, BW=49.1MiB/s (51.5MB/s)(768MiB/15626msec)
bw ( KiB/s): min=45040, max=51864, per=99.97%, avg=50283.39, stdev=1435.79, samples=31
iops : min=11260, max=12966, avg=12570.84, stdev=358.94, samples=31
write: IOPS=4201, BW=16.4MiB/s (17.2MB/s)(256MiB/15626msec)
bw ( KiB/s): min=14864, max=17936, per=99.98%, avg=16800.68, stdev=579.86, samples=31
iops : min= 3716, max= 4484, avg=4200.16, stdev=144.96, samples=31
cpu : usr=1.83%, sys=0.41%, ctx=32681, majf=0, minf=21
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=12.5%, 16=25.0%, 32=50.0%, >=64=12.5%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=98.6%, 8=0.1%, 16=0.0%, 32=0.0%, 64=1.4%, >=64=0.0%
issued rwts: total=196498,65646,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=49.1MiB/s (51.5MB/s), 49.1MiB/s-49.1MiB/s (51.5MB/s-51.5MB/s), io=768MiB (805MB), run=15626-15626msec
WRITE: bw=16.4MiB/s (17.2MB/s), 16.4MiB/s-16.4MiB/s (17.2MB/s-17.2MB/s), io=256MiB (269MB), run=15626-15626msec
Disk stats (read/write):
vda: ios=193573/64680, merge=0/0, ticks=10711/3290, in_queue=14, util=99.34%
real 0m16.130s
user 0m0.566s
sys 0m2.411s
impi check
Before introspection we can check the power status with a small bash script:
#!/bin/bash
ipmitool -I lanplus -H e26-h19-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
ipmitool -I lanplus -H e26-h21-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
ipmitool -I lanplus -H e26-h23-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
ipmitool -I lanplus -H e26-h25-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
ipmitool -I lanplus -H e26-h27-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
ipmitool -I lanplus -H e26-h29-740xd.alias.lan.com -U admin -P XXXXXXXXX chassis power status
MariaDB status
If you are planning an hardware maintenance on one controller, it could be required to reboot this node. One of the main thing to monitor during the reboot is the status of the MariaDB cluster.
[stack@e26-director ~]$ ssh heat-admin@controller-0.ctlplane "sudo podman exec -it galera-bundle-podman-0 mysql"
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 559320
Server version: 10.3.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_local_state_comment';
SHOW STATUS LIKE 'wsrep_local_state_comment';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| wsrep_local_state_comment | Synced |
+---------------------------+--------+
1 row in set (0.000 sec)
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+
1 row in set (0.000 sec)
One line command to check from the director node:
[stack@e26-director ~]$ ssh heat-admin@controller-0.ctlplane "sudo podman exec galera-bundle-podman-0 mysql -u root -e \"SHOW STATUS LIKE 'wsrep_local_state_comment';SHOW STATUS LIKE 'wsrep_cluster_size';\""
Variable_name Value
wsrep_local_state_comment Synced
Variable_name Value
wsrep_cluster_size 3
The container is called:
- galera-bundle-podman-0 for ontroller-0
- galera-bundle-podman-1 for ontroller-1
- galera-bundle-podman-2 for ontroller-2
If controller-0 is off, check on the two other controllers:
[stack@e26-director ~]$ ssh heat-admin@controller-1.ctlplane "sudo podman exec galera-bundle-podman-1 mysql -u root -e \"SHOW STATUS LIKE 'wsrep_local_state_comment';SHOW STATUS LIKE 'wsrep_cluster_size';\""
[stack@e26-director ~]$ ssh heat-admin@controller-2.ctlplane "sudo podman exec galera-bundle-podman-2 mysql -u root -e \"SHOW STATUS LIKE 'wsrep_local_state_comment';SHOW STATUS LIKE 'wsrep_cluster_size';\""
RabbitMQ status
A second service to monitor during controller reboots is RabbitMQ.
[stack@e26-director ~]$ ssh heat-admin@controller-0.ctlplane "sudo podman exec -it rabbitmq-bundle-podman-0 rabbitmqctl cluster_status"
Cluster status of node rabbit@controller-0 ...
[{nodes,[{disc,['rabbit@controller-0','rabbit@controller-1',
'rabbit@controller-2']}]},
{running_nodes,['rabbit@controller-2','rabbit@controller-1',
'rabbit@controller-0']},
{cluster_name,<<"rabbit@controller-2.lan.redhat.com">>},
{partitions,[]},
{alarms,[{'rabbit@controller-2',[]},
{'rabbit@controller-1',[]},
{'rabbit@controller-0',[]}]}]
If controller-0 is off, check on the two other controllers:
[stack@e26-director ~]$ ssh heat-admin@controller-1.ctlplane "sudo podman exec -it rabbitmq-bundle-podman-1 rabbitmqctl cluster_status"
[stack@e26-director ~]$ ssh heat-admin@controller-2.ctlplane "sudo podman exec -it rabbitmq-bundle-podman-2 rabbitmqctl cluster_status"