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

#2572 basic FreeBSD support #956

Closed
wants to merge 2 commits into from
Closed

#2572 basic FreeBSD support #956

wants to merge 2 commits into from

Conversation

mmatuska
Copy link
Contributor

This is stripped code from endyman with some changes to provide basic support for FreeBSD

endyman and others added 2 commits October 16, 2013 17:36
	app/assets/images/FreeBSD.png
	app/helpers/operatingsystems_helper.rb
@domcleal
Copy link
Contributor

I guess we'll need some templates to go with this. Would that be an rc.local and then pc-sysinstall, or something else?

@ohadlevy
Copy link
Member

@mmatuska @endyman ping [test]

@endyman
Copy link
Contributor

endyman commented Oct 23, 2013

the templates i.e. app/views/unattended/memdisk.rhtml are part of the inital PR (although memdisk might not be the best name)

@@ -1,8 +1,12 @@
#kind: snippet
#name: puppet.conf
[main]
<% if @host.operatingsystem.name == "FreeBSD" -%>vardir = /var/puppet
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since you added the -%> I think you can do it in two seperate lines...

besides that, @domcleal any concern about puppet.conf changes?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope

@ohadlevy
Copy link
Member

@endyman which PR do you refer to? its better to have it all as one PR?

@endyman
Copy link
Contributor

endyman commented Oct 24, 2013

#673 was the initial PR including the templates

@mmatuska
Copy link
Contributor Author

Yes, that is the original PR #673. But I disagree to many points in the templates there that makes them custom instead of universal:

  • I don't like them being called memdisk - looks like reserving memdisk just for FreeBSD
  • what if I just want to install with zfsinstall or any other custom script? your original PR does not allow me to do that
  • I am forced to use the installer and calling it depends on contents of rc.local in the mfsBSD image
  • it is not ready for FreeBSD 10, e.g. pkg_add is used
  • a custom selection of network adapters is used, why exactly these? please don't tell me they are the "most common ones" as I can show you that a very high percentage of the world's adapters uses realtek chips
  • the media path is fixed to "#{medium_uri(host)}/releases/#{arch}/#{release}-RELEASE" - what if I want to install something else, e.g. a BETA1 completely custom? this should be completely user-customizable

We should focus on a combination of some kind of standard mfsBSD image calling a standard script, and the contents of this script should be provided by Foreman. The user is then able to customize almost everything.

@endyman
Copy link
Contributor

endyman commented Oct 25, 2013

Template are not generic they are meant to be adapted and offer basic support - the debian, centos and rhel templates most likely are never going to be used that way - people will use them as a blueprint to get started and will modify or clone them to fit their need in terms of network config, disk layouts, hardware and packages.

So the basic question is - do we want to have templates for FreeBSD (we cannot write templates to cover everything) or do we want to document how a user must setup templates in order to install i.e. pc-sysinstall.

In regards to your last point +1

  • boot msfbsd (i haven't been able to chain boot without memdisk using pxeboot yet)
  • ideally pass information to the running msfbsd either upfront during mfsbsd image build or via dhcp options (additional code required)
  • based on the information (foreman url) mfsbsd will download a provision script from foreman and execute the script.

You could ship the code loading with mfsBSD so that the user can turn on / off the provisioning - or just leave it up to the user to use the rc.local hook and write a custom script.

The script could cat some data to tmp later used for any installer and execute the installer so we have maximum flexibility right ?

@mmatuska
Copy link
Contributor Author

I was thinking of a "Foreman"-edition of mfsBSD with the necessary support (a custom rc.local)
The main problem we still have is how to pass the Foreman URL Information to mfsBSD.
As of myself, I like the Vendor-Specific DHCP Options idea.

The only other possibility would be chain-booting via pxeboot and using a customized loader.conf - I have no idea how can we easily customize this for many different machines.

@endyman
Copy link
Contributor

endyman commented Oct 25, 2013

Okay - anyway: we had a discussion to implemet FreeBSD in two steps - first step is basic support. I think we have achived this and I'm perfectly fine with Martins PR. We can improve support later on by implementing custom options for BSD. @ohadlevy what do you think?

@domcleal
Copy link
Contributor

Thanks to @endyman and @mmatuska for the patch! I'd love to see this added to the wiki or manual if you get the time so people know how to use it. Merged as acfb10f for Foreman 1.4.0 - cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants