For the past week I worked on getting a Ironic standalone to run on an Ampere AltraMax server in our lab. As I recently was able to get a baremetal node to boot, I wanted to record the steps I went through.
Continue readingCategory Archives: Software
ERROR: Boot option loading failed
When PXE Booting an AARCH64 server, the above message probably means that you are fetching an x86_64 image for iPXE, not ARM64. Here’s how I debugged it.
Continue readingDiscoverability in API design
There are a handful of questions a user will (implicitly) ask when using your API:
- What actions can I do against this endpoint?
- How do I find the URLs for those actions?
- What information do I need to provide in order to perform this action?
- What permission do I need in order to perform this action.
Answering these questions can be automated. The user, and the tools they use, can discover the answers by working with the system. That is what I mean when I use the word “Discoverability.”
We missed some opportunities to answer these questions when we designed the APIs for Keystone OpenStack. I’d like to talk about how to improve on what we did there.
Continue readingGenerating a clouds.yaml file
Kolla creates an admin.rc file using the environment variables. I want to then use this in a terraform plan, but I’d rather not generate terrafoprm specific code for the Keystone login data. So, a simple python script converts from env vars to yaml.
Root versus groups
If you lock down everything, you either need to hand out keys, or plan on doing everything yourself, and getting overwhelmed.
Probably the single most power ful tool in Linux land to keep people from having to be “root” is the group concept. For example, if I want people to run Docker containers, they need to be able to talk to the Docker socket. The root user can do this by virtue of its global access. However, the more limited access approach is to add a user to the docker group.
Continue readingFixing Playback in Musecore on Fedora 35
Recently, the playback on Musescore became distorted. It was sped up, the notes were dissonant (no that is not my writing!) and they seemed to crackle and pop.
When both systems I have exhibited the same problem, I knew it was an upgrade issue, and not my hardware.
This phenomenon seems to have occurred a few times over the years, and I tried many of the recommended fixes. What finally worked was changing the output from PulseAudio to Jack.
Continue readingEnabling Fedora 35 Virtualization on an Ampere based machine
I have a fresh install of Fedora 35 on a lab machine. I want to run a virtual machine on it. I have ssh access to the root account and a public key copied over.
Continue readingIssue with the solution to the 6s problem
I recently came across a posted solutions to the 6s problem. I’m going to argue that several these solutions are invalid. Or, more precisely, I am going to argue that they are only conidered valid due to a convention in notation.
Continue readingReading a log out of a docker file
I have to pull the log out of a docker process to figure out why it is crashing. The Docker container name is ironic_ipxe.
cat $( docker inspect ironic_ipxe | jq -r '.[] | .LogPath' ) |
Network traffic for an Ironic Node
I’ve set up a second cluster, and the Ironic nodes are not PXE booting. Specifically, if I watch the nodes boot via an IPMI serial-on-lan console, I see that they send out a DHCP request and never get a response back.
This is a problem I am familiar with from my days at Penguin. Time to dig in and understand the networking setup on the controller to see why it is not getting the packet. Or, possibly, why it is getting it and the response is getting dropped.
I have another cluster that is working properly, and I am going to look at the setup there to try and contrast it with the broken set up, and figure out my problem.
Continue reading