2.1. Prerequisites¶
2.1.1. Host requirements¶
Enable IOMMU in kernel¶
Ensure that the following arguments are present in your kernel command line to enable the IOMMU:
iommu=pt intel_iommu=on
: to enable the IOMMU
You can check the current kernel arguments with:
# cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-408.el8.x86_64 root=UUID=7e800c48-c2b0-452e-b1d3-357265dc3b2d ro crashkernel=auto iommu=pt intel_iommu=on rhgb quiet
If you need to change the arguments, change the GRUB_CMDLINE_LINUX
parameter in /etc/default/grub
. Then run:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Then reboot.
Note
You may need to enable VT-d in your BIOS too.
To check that the IOMMU is properly enabled, check the presence of files in the following directory:
# ls /sys/class/iommu/
dmar0 dmar1
SR-IOV¶
Ensure SR-IOV is enabled and configured. To create VFs, use the following commands:
# PF_PCI_ADDR=0000:02:00.0
# echo 8 > /sys/bus/pci/devices/${PF_PCI_ADDR}/sriov_numvfs
Warning
Adapt the PF PCI bus address to your platform.
# lspci | grep -i eth
02:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
02:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
02:10.0 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:10.2 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:10.4 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:10.6 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:11.0 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:11.2 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:11.4 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
02:11.6 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)
# lspci -s 02:10.0 -k -n
02:10.0 0200: 8086:1515 (rev 01)
Subsystem: 8086:5003
Kernel modules: ixgbevf
# lspci -s 02:10.2 -k -n
02:10.2 0200: 8086:1515 (rev 01)
Subsystem: 8086:5003
Kernel modules: ixgbevf
# ip link
[...]
4: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether a0:36:9f:e6:46:f0 brd ff:ff:ff:ff:ff:ff
vf 0 link/ether 3e:1b:3e:f7:8e:99 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 1 link/ether d2:e6:d6:d7:4f:2a brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 2 link/ether f2:4d:5b:90:82:1b brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 3 link/ether 7e:de:3c:bf:ca:d9 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 4 link/ether f6:92:e4:8e:bf:47 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 5 link/ether 86:bc:9b:9b:26:06 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 6 link/ether d2:18:5c:3f:40:b5 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
vf 7 link/ether ca:5b:25:74:be:7a brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
[...]
ansible¶
Ensure ansible
is installed.
# ansible --version
ansible [core 2.13.5]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.13 (main, Jun 24 2022, 15:32:51) [GCC 8.5.0 20210514 (Red Hat 8.5.0-13)]
jinja version = 3.1.2
libyaml = True
It can be installed with:
# dnf install ansible-core
Ansible also requires the netaddr
python module to be able to execute
the OCP installation playbook. It can be installed with this command:
# python3.9 -m pip install netaddr
Note
The Python version used above must match the one used by Ansible.
passlib and bcrypt¶
During OCP cluster deployment, an admin
user will be created with htpasswd
.
Ensure passlib
and bcrypt
are installed.
# python3.9 -m pip list --format=columns | grep passlib
passlib 1.7.4
# python3.9 -m pip list --format=columns | grep bcrypt
bcrypt 4.0.1
You can install these Python modules with:
# python3.9 -m pip install passlib
# python3.9 -m pip install bcrypt
Internet connectivity¶
Ensure Internet connectivity is available from the host machine as some packages will be downloaded during the installation.