Ignition fetch fails with PXE live-boot: bad ignition.config.url

Hi folks

I’m trying to boot the live PXE image of fedora-coreos-31.20200407.3.0 in a VM (tested both VMWare fusion on macOS and bhyve on FreeBSD). I’m using Pixiecore as my PXE server.

The boot is failing with the ignition-fetch-service.

[ 15.439776] systemd[1]: ignition-fetch.service: Main process exited, code=exited, status=1/FAILURE

My read of the log is that the first 4 attempts at fetching the ignition file are happening before the network stack is up, and predictably fail. The last fetch attempt fails for a reason I can’t decipher. Full serial output from a boot attempt in VMWare is here.

Any suggestions are appreciated.

ignition[611]: GET result: Not Found

Is a HTTP 404 - are you sure you passed the right URL?

Hi walters

I think so. I’m able to download the ignition file with curl on the VM host machine.

$ curl http://172.16.100.200/waytower.ign
{
  "ignition": {
    "config": {
    },
    "security": {
      "tls": {}
    },
    "timeouts": {},
    "version": "3.0.0"
  },
  "passwd": {
    "users": [
      {
        "name": "core",
        "sshAuthorizedKeys": [
          "<my ssh key>"
        ]
      }
    ]
  },
  "storage": {},
  "systemd": {}
}

I also tried booting up the same VM with the Fedora CoreOS Live CD ISO and was able to successfully curl the ignition file from there too.

EDIT; You’re right, it is failing with 404. Looking at my web-server logs, the request from ignition has an encoded ‘space’ character appended to the end of the URL:

default 127.0.0.1 - - [05/May/2020:22:10:52 -0700] "GET /waytower.ign%22 HTTP/1.1" 404 280 "-" "Ignition/2.2.1"

Now to figure out why…

your pastebin shows:

[    0.000000] Command line: initrd=initrd0 ip=dhcp nameserver=172.16.100.200 rd.neednet=1 dhcptimeout=180 nicdelay=500 linksleep=500 inst.waitfornet=10 console=tty0 console=ttyS0 ignition.firstboot ignition.platform.id=metal ignition.config.url=http://172.16.100.200/waytower.ign"

So looks like an extra " character at the end

Oh my, I forgot my ascii. 0x22 is double quote, not space.

And indeed, my cmdline argument when starting pixiecore contained an unnecessary double quote

--cmdline='ip=dhcp nameserver=172.16.100.200 rd.neednet=1 dhcptimeout=180 nicdelay=500 linksleep=500 inst.waitfornet=10 console=tty0 console=ttyS0 ignition.firstboot ignition.platform.id=metal ignition.config.url=http://172.16.100.200/waytower.ign"'

Removing that fixes it. Thanks dustymabe and walters!

1 Like