Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bare Metal Installer: Attempt to build media based on current strategy #91

Closed
dustymabe opened this issue Dec 11, 2018 · 18 comments
Closed
Assignees
Labels
jira for syncing to jira priority/medium

Comments

@dustymabe
Copy link
Member

From #50 (comment), our current strategy for delivering a bare metal installer looks like:

... With this strategy (and in general) we think we can get by with shipping the following artifacts:

  1. kernel
  2. initrd (contains installer)
  3. disk image (this is the single disk image we are trying to ship everywhere)
  4. an ISO with 1/2/3 embedded iniside of it
  5. obviously references to cloud images that can be used (i.e. AMIs, VHDs, etc)

So here the cases are:

  • Cloud
    • Use an AMI/VHD/etc...
  • Bare metal install, no PXE, no network
    • Grab the iso 4 and install from ISO drive redirection or burned CD
  • PXE install
    • Grab the kernel 1 and initrd 2 and run an install specifying a remote location where the disk image is
    • Optional: Grab 4 and host it in local infra and use the URL to that in your PXE config
  • Diskless PXE boot (no install, just run from network)
    • Grab kernel 1, initrd 2, and image 3 and boot directly from it over the network
    • The dracut man page seems to indicate we can just specify something like root=live:<url> and that the filesystem doesn't have to be tacked onto the initrd (thus we don't necessarily need a fat initrd, but can use a separate image). I don't yet know if we can just use the golden image we already created 3 or if it has to be in some other format.

Let's see if we can put the pieces together and find/squash issues along the way.

@dustymabe
Copy link
Member Author

In a discussion with @ajeddeloh yesterday he was willing to take a look at this.

@dustymabe
Copy link
Member Author

I was mistaken.. that was actually for something else.. unassigning for now

@dustymabe dustymabe self-assigned this Jan 3, 2019
@bgilbert
Copy link
Contributor

bgilbert commented Jan 9, 2019

#105 and #106 are related.

@dustymabe
Copy link
Member Author

dustymabe commented Jan 30, 2019

I was able to POC using neil's dracut modules inside of our initramfs in Fedora CoreOS to do an install. I then was able to use the initrd and kernel to generate an ISO image that could also do an install.

next steps:

  • get the dracut module into FCOS
  • add a coreos-assembler command to generate an ISO image

left to be investigated:

  • PXE use cases

@vielmetti
Copy link

One PXE use case is custom iPXE boot on Packet, happy to orchestrate that happening!

@janwillies
Copy link

I'm also keen to PXE-boot FCOS on my pine64 clusterboard

@bgilbert
Copy link
Contributor

We fully intend to support live PXE images in Fedora CoreOS. See #105.

@cgwalters
Copy link
Member

@dustymabe
Copy link
Member Author

dustymabe commented Feb 6, 2019

@dustymabe dustymabe added the meeting topics for meetings label Feb 6, 2019
@bgilbert bgilbert removed the meeting topics for meetings label Feb 12, 2019
@dustymabe
Copy link
Member Author

dustymabe commented Feb 19, 2019

EDIT: new docs here.

All of this work has landed (still haven't addressed PXE cases):

You should be able to take an FCOS ISO and use it to install FCOS.

NOTE please don't try this with UEFI yet.

  • Download the latest ISO from the latest directory
  • Boot machine from ISO and edit kernel command line in boot menu
  • Specify on kernel command line:
    • coreos.inst.install_dev=dev
      • example sda
    • coreos.inst.image_url=url
      • example https://ci.centos.org/artifacts/fedora-coreos/prod/builds/29.658/fedora-coreos-29.658-metal-bios.raw.gz
    • coreos.inst.ignition_url=url
      • you'll need to put your ignition config somewhere
  • Watch install on VGA console
  • Image will reboot into FCOS

@e-minguez
Copy link

Just in case, I've tried to boot the ISO in a baremetal server (Dell r703xd) via virtual media and it fails to start with some ' Error aa00 reading sector' messages. See https://youtu.be/8d_LPsljEjw (I've tried with and without the coreos.inst.* options you pointed)

@dustymabe
Copy link
Member Author

hey @e-minguez - thanks for trying it out. I know it's not the same thing but is there any chance you could try it on a VM and see if you get the same results? I'll need to find some actual hardware to try this on.

@dustymabe
Copy link
Member Author

also if the problem does persist can you open an issue against https://github.com/coreos/coreos-installer ?

@e-minguez
Copy link

e-minguez commented Feb 20, 2019

Issue opened here -> coreos/coreos-installer#2

@jeremyeder
Copy link

Instructions worked for me on a Dell R510 using virtual media.

image

@e-minguez
Copy link

PEBKAC. It takes a few seconds to boot, but it boots succesfully:
screenshot from 2019-02-21 10-38-18

Sorry for the noise

@dustymabe
Copy link
Member Author

dustymabe commented Feb 26, 2019

EDIT: new docs here.

ok new update.. Have confirmed that PXE installs (not livePXE) using the FCOS ISOs. I used instructions like these and a PXELinux cfg like:

DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
    KERNEL fedora-coreos-29.47.iso/vmlinuz
    APPEND initrd=fedora-coreos-29.47.iso/initramfs.img console=ttyS0 console=tty0 coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.image_url=http://192.168.122.1:8000/fedora-coreos-29.42-metal-bios.raw.gz coreos.inst.ignition_url=http://192.168.122.1:8000/config.ign
IPAPPEND 2

@dustymabe
Copy link
Member Author

Final update on this: we now have ISOs that can install on legacy boot or UEFI systems and can be used for PXE boot. Rough documentation can be found here.

I'm going to close this ticket out and let the remaining tickets (#105 #106 ) address the live PXE and live ISO cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jira for syncing to jira priority/medium
Projects
None yet
Development

No branches or pull requests

8 participants