{"id":1242,"date":"2025-05-19T18:23:37","date_gmt":"2025-05-19T06:23:37","guid":{"rendered":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/?p=1242"},"modified":"2025-05-19T18:23:37","modified_gmt":"2025-05-19T06:23:37","slug":"the-latest-version-of-rdo-openstack-is-a-pain","status":"publish","type":"post","link":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/?p=1242","title":{"rendered":"The latest version of RDO OpenStack is a pain"},"content":{"rendered":"<p>\nThis is for the <em>caracal<\/em> release on Centos9 Stream as documened at https:\/\/www.rdoproject.org\/deploy\/packstack\/ for the packstack install.\n<\/p>\n<p>\nFirst off, I have not been able to get this working yet. <b>So this post is just covering the first problem you are going to hit<\/b>.\n<\/p>\n<h2>network service not found<\/h2>\n<p>\nFor those that may have more patience than me there is an important step missing in the install instructions, which are for CentOS Stream 9, which does not support the old network scripts.<br \/>\nWhere it says\n<\/p>\n<pre>\r\nsudo systemctl disable firewalld;\r\nsudo systemctl stop firewalld;\r\nsudo systemctl disable NetworkManager;\r\nsudo systemctl stop NetworkManager;\r\nsudo systemctl enable network;\r\nsudo systemctl start network\r\n<\/pre>\n<p>\nIt is important to note that will not work; CentOS 9 does not support legacy networking.<br \/>\nIn later steps it adds a repository, too late, you need to do that first. What it needs to say is\n<\/p>\n<pre>\r\nsudo dnf config-manager --enable crb\r\nsudo dnf install -y centos-release-openstack-caracal\r\nsudo dnf update -y\r\n<b>sudo dnf -y install openstack-network-scripts  # the legacy network scripts<\/b>\r\nsudo systemctl disable firewalld;\r\nsudo systemctl stop firewalld;\r\nsudo systemctl disable NetworkManager;\r\nsudo systemctl stop NetworkManager;\r\nsudo systemctl enable network;\r\nsudo systemctl start network\r\n<\/pre>\n<p>\n<b>However<\/b> be aware that will not magically create the ifcfg-interface files you need (NetworkManager no longer used those legacy file locations, and has even changed file syntax from the old legacy format in the files it does create so you cannot jusy copy them). <em>So if you do not create them yourself you will have no network configured after a reboot<\/em>.\n<\/p>\n<p>\nIt is actually trivial to create them.<br \/>\nDo a &#8220;ip a&#8221; to get the interface name and MAC address, as mentioned in the doc you do need a static ip-address so this example is for a static ip-address. This example, edited for your interface\/MAC\/ipaddr of course, <m>must be in a file \/etc\/sysconfig\/network-scripts\/ifcfg-<em>interface<\/em> where <em>interface<\/em> is the name of your interface (enps01\/eth1 etc not the MAC).<br \/>\n<\/m><\/p>\n<pre>\r\nTYPE=Ethernet\r\nPROXY_METHOD=none\r\nBROWSER_ONLY=no\r\nBOOTPROTO=none\r\nDEFROUTE=yes\r\nIPV4_FAILURE_FATAL=no\r\nIPV6INIT=no\r\nNAME=enp1s0\r\nUUID=if-you-know-uuid-insert-it-else-trust-name+device\r\nDEVICE=enp1s0\r\nONBOOT=yes\r\nIPADDR=static-ipaddr-to-use\r\nPREFIX=24\r\nGATEWAY=ipaddr-of-your-gateway-router\r\nDNS1=your-internal-dns-ipaddrs\r\nDNS2=182.168.1.nnn \r\nDOMAIN=\"your.internal.domain\"\r\nIPV6_DISABLED=yes\r\n<\/pre>\n<p>\nI would also suggest <b>before<\/b> running packstack may need to &#8220;chmod 755 \/etc\/rc.d\/rc.local&#8221; as during my packstack run lots of &#8220;is not marked executable, skipping&#8221; messages were logged for that file.\n<\/p>\n<p>\nThen reboot, make sure networking is a you want, and carry on to run packstack.\n<\/p>\n<h2>Why this post stops at that issue<\/h2>\n<p>\nI do not believe it is possible to get this working easily as for starters the Horizon dashboard install is missing dependencies that prevent it being used at all; and I do not intend to debug missing django.core dependencies.<br \/>\n<br \/>\nThe nova network component is also in a loop logging warning messages, that I could probably resolve but as there is no dashboard why bother; one issue at a time.\n<\/p>\n<p>\nHorizon logs show only the below which is why trying to logon to the dashboard fails; I can only assume this is a packaging error that will be fixed at some point.\n<\/p>\n<pre>\r\n   AttributeError: module 'django.core.cache.backends.memcached' has no attribute 'MemcachedCache'\r\n<\/pre>\n<p>\nNova logs are full of, and wil eventually fill the filesystem with the messages below. Warning and not errors, but I would prefer my disk space to be used for image and instance volumes not warning messages. There is probably a config file setting that will fix it.\n<\/p>\n<pre>\r\n   025-05-12 14:49:18.146 2057 WARNING nova.virt.libvirt.driver [None req-5be22791-044d-4bda-af49-b0192f9f0adf - - - - - -] This host appears to have multiple sockets per NUMA node. The `socket` PCI NUMA affinity will not be supported.\r\n<\/pre>\n<p>\nI simply do not have time to look into sorting these out at the moment.<br \/>\nBut the &#8220;network&#8221; service not being available is the first issue anyone will hit on this newish caracal release by RDO so I hope it helps some of you move on.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is for the caracal release on Centos9 Stream as documened at https:\/\/www.rdoproject.org\/deploy\/packstack\/ for the packstack install. First off, I have not been able to get this working yet. So this post is just covering the first problem you are &hellip; <a href=\"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/?p=1242\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1242","post","type-post","status-publish","format-standard","hentry","category-home-life"],"_links":{"self":[{"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1242"}],"version-history":[{"count":3,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1242\/revisions"}],"predecessor-version":[{"id":1245,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1242\/revisions\/1245"}],"wp:attachment":[{"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mdickinson.dyndns.org\/php\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}