FAI multi-distribution: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
(add link to thomas neumann's solution for extracting the base image)
No edit summary
 
(29 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Status =
== Status ==


People install many distributions with FAI successfully: RHEL5, Fedora, SuSE, Ubuntu, Debian. They are not all fully functional, only to the extend the people developed it for (sometimes, softupdates are missing, but only a few developer hours away, sometimes fai-cd doesn't work) but ingeneral it's stable and usable.
Support for Linux distributions other then Debian is available since 2011. FAI
can install Linux distributions like Redhat, CentOS,
Scientific Linux Cern, Fedora, openSUSE, SuSE, Ubuntu and of course Debian.


Most of the stuff below "old stuff" here is outdated. FAI 3.1.8 already has the most important things integrated:
Read the [https://lists.uni-koeln.de/pipermail/linux-fai/2011-September/009243.html announcement] including a small HowTo.


* unpacking a base.tgz named CLASS.tar.gz from the configspace directory "basefiles"
=== Distribution specific stuff ===
** Alternative to this, via hook: http://www.mail-archive.com/linux-fai@uni-koeln.de/msg02001.html
* using other package managers (see install_packages or it's doc - I am not sure where and if there exists docs but the sources)


There are some ubuntu classes here: http://faiwiki.informatik.uni-koeln.de/images/b/b1/Fai-configspace.tar.gz
==== Ubuntu ====
Just get the basefile for Ubuntu from
https://fai-project.org/download/basefiles/ and use the Ubuntu
examples from /usr/share/doc/fai-doc/examples/simple.


And there is a RHEL5 example configspace here: http://svn.debian.org/wsvn/fai/people/lazyboy/rhel-install-fixes_3.1.8/


= installing other distributions =
==== CentOS ====
FAI 4.0 includes examples for installing CentOS 5 and 6.
Ready-made basefiles are available at https://fai-project.org/download/basefiles/.
Sample log files for a CentOS 6 installation can be found
[http://fai-project.org/logs/ here]


A Quick overview:
==== Scientific Linux Cern ====
FAI 4.0 can also install SCL 5 and 6.
Ready-made basefiles are available at https://fai-project.org/download/basefiles/.


* build a minimal base image (here, the make-fai-base-tgz from  [http://svn.debian.org/wsvn/fai/people/lazyboy/fai-distributions/ svn://svn.debian.org/svn/fai/people/lazyboy/fai-distributions ] can help you, but is not required - you can build your base image as you wish) and put it into MY-DISTRIBUTION-NAME.tar.gz in the configspace/basefiles
==== RHEL5 and 6 ====
* add the install host to the class MY-DISTRIBUTION-NAME
Redhat Enterprise Linux 5 and 6
* write a hook prepareapt.MY-DISTRIBUTION-NAME to replace the stuff specific for the distribtuion of the fai server with something suitable to get your specific distribution ready to install packages. the actual prepareapt task must be skipped
* check that the package lists of the classes of that host are compatible for your distribution. read man install-packages to learn about available package managers for non-dpkg distributions
* install as usual


As we have not much feedback on this topic, which makes it hard to know if it works, or to make it better, please report success or failure of this methods on the FAI mailing lists!
This should work in the same way as CentOS and SLC.


== distribution specific stuff ==
==== SuSE ====
A more verbose description on how to do this with SLES9 is [[Installing_SLES9_32Bit_and_Smart_PackageManager_with_FAI | available here]]


=== SuSE ===
== Bootstrapping the base images for other distributions ==
a more verbose description on how to do this with SLES9 is [[Installing_SLES9_32Bit_and_Smart_PackageManager_with_FAI | available here]]


=== RHEL5 ===
Have a look at examples/simple/basefiles/mk-basefile. Works for
Redhat Enterprise Linux 5
Ubuntu, CentOS, SLC. For RPM based distributions it uses [http://packages.qa.debian.org/r/rinse.html rinse], which
also support some old versions of OpenSUSE.


Should work with more recent versions, too.
[[Category:RedHat]]
Your need a redhat specific basefile - see below.
[[Category:CentOS]]
 
[[Category:Ubuntu]]
You need cfengine from here(or somewhere else) to do softupdates on a running system:  http://ftp.rpmforge.net/pub/dag/redhat/el5/en/i386/dag/RPMS/cfengine-2.2.1-1.el5.rf.i386.rpm
 
And you need a config space with some specific stuff for the redhat systems.
 
Check out http://svn.debian.org/wsvn/fai/people/lazyboy/rhel-install-fixes_3.1.8/examples/rhel-install-demo and add ths stuff you need to your current config space.
 
It should be no problem to mix this into your existing Debian configspace.
 
== bootstrapping the base images  for other distributions ==
The stuff previously mentioned on [http://svn.debian.org/wsvn/fai/people/lazyboy/fai-distributions/ svn://svn.debian.org/svn/fai/people/lazyboy/fai-distributions ] helps with other debian-like distributions.
 
For Fedora/Redhat like distributions, you can use yum.
 
For example, to bootstrap rhel5, after having created a local mirror, I create such a yum.conf file:
 
<pre>
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null
plugins=1
 
 
[base]
protect=0
name=Red Hat Enterprise Linux 5
#baseurl=file:///nfs/rhel5/Server
#baseurl=http://localhost/mirrors/rhel/5/Server/
baseurl=file:///var/www/mirrors/rhel/5/Server/
enabled=1
</pre>
 
Then I call this script:
 
<pre>
#! /bin/sh
tmp=`mktemp -d`
 
yum -c yum.conf --installroot=$tmp -y install yum dhclient
cp rhel5.repo  $tmp/etc/yum.repos.d/
mount -o bind /proc $tmp/proc
chroot $tmp yum groupinstall -y Core
chroot $tmp yum clean packages
 
echo "chroot created in tmp=$tmp"
oldpwd=$PWD
cd $tmp
umount ./proc
 
tar cvfz $oldpwd/DIST-RHEL_5.tar.gz .
 
cd -
 
echo "chroot created in tmp=$tmp"
</pre>
 
And I'm done. This leads to a working install when using my example configspace mentioned above.
 
There are some issues left, so this currently works for dirinstall, only, out of the box. I had to install some additional packages (will add the list later) manually in the nfsroot, and then netinstall via pxe worked, too.
 
To know what you have to install manually in the nfsroot, check the output of make-fai-nfsroot -v - at one point, quite some packages are dropped with the message that they aren't available, but they can be installed just normal, and are perfectly there. Without this, make-fai-nfsroot finishes with "success", but is unable to install a machine nicely via network install.
 
= old stuff =
This is the OUTDATED stuff - I only keep it until I know the thing ABOVE get people to a working cross-distribution install.
 
It is possible to install other distributions than Debian and dpkg-based ones with FAI.
There's an experimental release, which you can get with the apt sources.list line
 
<pre>  deb http://faiwiki.informatik.uni-koeln.de/download/fai-multi-distribution/debian/ experimental/ </pre>
 
if you're brave. Try it and tell [[User:Lazyboy | me]] if it worked for you, or talk about it on the mailing list. You can help to improve it just by reporting things that don't work.
 
More info on the development of these features: [[Development_plan#fai-multi-distribution]]
 
The code should be fully compatible to FAI 2.9, you should be able to re-use your existing config space with no changes, just some additional classes
for the additional distribution, defining different packages and some different installation procedures. It only needs one nfsroot for all.
 
 
== requirements ==
* you should have a debian and ubuntu mirror on your mirrohost, otherwise additional script- or config-editing will be required.
* it can help if you had previous exposure to FAI, but is not necessarily much harder than get into FAI with Debian sarge only.
 
== usage ==
* install the deb's from the download location, including the package fai-distributions (look into it to see what it is about), after adding the apt line to your sources.list, just type
  apt-get update
  apt-get install fai-distributions fai-quickstart
* do everything you'd do with any other FAI install - read this wiki on how to do that.
* copy example classes as usual in FAI
* copy additional example classes:
  cp -a /usr/share/doc/fai-distributions/classes/*/* /usr/local/share/fai/
* there's some problem with non-executable hooks, do:
  chmod +x /usr/local/share/fai/hooks/*
* check configuration in
  /etc/fai-distributions/
* run
  mkdir /tmp/fai
  make-fai-nfsroot
* run
  sh /usr/lib/fai-distributions/ubuntu_hoary/make-base-tgz
( in lib because it should be called from make-fai-nfsroot)
* run /usr/lib/fai-distributions/ubuntu_breezy/make-base-tgz
* run /usr/lib/fai-distributions/mandriva/make-base-tgz (this currently just downloads a base system image. This task needs to be solved.
* name your install clients sarge, hoary, and breezy, or mandriva in DNS , or add them to the same classes as these example host configurations and install them as usual
* for mandriva, you need a mandriva mirror at the location specified in files/etc/apt/sources.list/MANDRIVA and in /etc/fai/distributions
* in general, check the config files in /etc/fai-distributions
* for mandriva, I have no network suppport in my tests, until I manually add the module for my card to the config - ubuntu and debian do that well
* also for mandriva, the X config isn't working
 
== missing features ==
* runs only on Debian sarge as server and is only tested on i386 architecture
* only network install is tested - cd install is some more work to do.
* not tested running on an Ubuntu server. also "normal" FAI has issues running on Ubuntu Linux.
* in general, FAI itself has not yet been proted to run on any other distribution.
 
== errata ==
* MANDRIVA: problem with grub menu.lst - you'll need a file files/boot/grub/menu.lst/HOSTNAME to get a proper menu.lst
* UBuntu HOARY: does only work with an ubuntu mirror on
  ftp://$mirrorhost/ubuntu
* Ubuntu hoary: does only work with modified instsoft.UBUNTU hook
* FAI 2.9 general: /etc/fai/sources.list must have an entry to a repository which has fai-nfsroot available
* /usr/local/share/fai/files/boot/grub/menu.lst/postinst seems to have a bug within the script. I had to change the line where the variable GROOT is defined to the following one (because a wrong path to device2grub was supplied)
GROOT=$(/usr/bin/device2grub $BOOT_PARTITION)
 
== subversion access ==
You can also get the latest subversion stuff by checking out
<pre>svn co svn://svn.debian.org/svn/fai/people/lazyboy/fai-distributions</pre>
and
<pre>svn co svn://svn.debian.org/svn/fai/people/lazyboy/fai-2.9-multidistribution</pre>
Then going into each of the two new directories and make dpkg-buildpackage -rfakeroot.

Latest revision as of 19:36, 10 March 2019

Status

Support for Linux distributions other then Debian is available since 2011. FAI can install Linux distributions like Redhat, CentOS, Scientific Linux Cern, Fedora, openSUSE, SuSE, Ubuntu and of course Debian.

Read the announcement including a small HowTo.

Distribution specific stuff

Ubuntu

Just get the basefile for Ubuntu from https://fai-project.org/download/basefiles/ and use the Ubuntu examples from /usr/share/doc/fai-doc/examples/simple.


CentOS

FAI 4.0 includes examples for installing CentOS 5 and 6. Ready-made basefiles are available at https://fai-project.org/download/basefiles/. Sample log files for a CentOS 6 installation can be found here

Scientific Linux Cern

FAI 4.0 can also install SCL 5 and 6. Ready-made basefiles are available at https://fai-project.org/download/basefiles/.

RHEL5 and 6

Redhat Enterprise Linux 5 and 6

This should work in the same way as CentOS and SLC.

SuSE

A more verbose description on how to do this with SLES9 is available here

Bootstrapping the base images for other distributions

Have a look at examples/simple/basefiles/mk-basefile. Works for Ubuntu, CentOS, SLC. For RPM based distributions it uses rinse, which also support some old versions of OpenSUSE.