FAI.me - A Build Service for Installation and Cloud Images
-
0:06 - 0:13Today, I talk about FAI.me, which is a
build server for images. -
0:15 - 0:20First, anybody that never heard anything
about FAI? -
0:22 - 0:23Ok
-
0:24 - 0:27I started this project in 1999.
-
0:29 - 0:31I'm not sure…
-
0:32 - 0:36No, I'm sure that during those times, the
Debian installer did not have -
0:36 - 0:40the preseeding stuff, so we needed
something automatically. -
0:43 - 0:50I installed the first cluster with FAI and
I always do talks on FAI or -
0:50 - 0:54today in the lightning talks, I talk
a little bit about dracut, -
0:54 - 0:56which is used in FAI.
-
0:57 - 0:59So, what was the motivation.
-
0:59 - 1:03A neighbour of mine, she came to me with
-
1:03 - 1:08"My Windows desktop is broken,
can you reinstall it?" -
1:08 - 1:14And in the end, I installed her Linux,
and I was shortly thinking about -
1:14 - 1:18"Should I use FAI for installing her
desktop with Linux?" -
1:19 - 1:25And in the end, I did not use it because
FAI is too complicated, -
1:25 - 1:31like the Debian installer, I guess it's
not really that easy for beginners -
1:31 - 1:33because there are a lot of questions
-
1:33 - 1:35but also FAI is not really for beginners.
-
1:36 - 1:39So this was the motivation about thinking
about FAI. -
1:40 - 1:44The target group was always advanced
sysadmins -
1:44 - 1:49but I thought maybe it's possible to make
FAI usable also for people -
1:49 - 1:52that are not that advanced sysadmins.
-
1:54 - 1:59The idea is that an installer should cover
most installations. -
1:59 - 2:03The Debian installer is really perfect
because I think it covers -
2:03 - 2:07all different kinds and strange environments
-
2:07 - 2:14You can do a lot of things, you can configure
very strange combination of language, -
2:14 - 2:16keyboard layout and so on
-
2:17 - 2:23but I was thinking about an installer
that covers 90 or 95% of the installations -
2:25 - 2:32A lot of special cases can be ignored and
since the Debian installer has like -
2:33 - 2:38more than 20 questions, I thought it would
be much nicer if there were only -
2:38 - 2:463 to 5 questions and I looked at Linux Mint
and Mageia installers, CentOS installer, -
2:46 - 2:50and they all ask much less questions.
-
2:52 - 2:57In the Debian installer, we sometimes
have also things that are asked -
2:57 - 3:02during the installation, so not everything
is asked at the very beginning. -
3:02 - 3:06For example, the task selection, where you
select your desktop, -
3:06 - 3:09is done after the base installation.
-
3:09 - 3:13This was also very important, I would like
to have something that -
3:13 - 3:15asks everything at the very beginning.
-
3:17 - 3:22Then, maybe some tool could create
a customized installation image -
3:22 - 3:27and this installation image should run
then completely unattended -
3:27 - 3:32so you can get yourself a coffee and
when you come back, your machine is ready. -
3:33 - 3:38There are 3 things to customize installation
image, -
3:38 - 3:43you just put this image, you do not have
to touch anything, and then it's ready. -
3:44 - 3:48I thought "Oh yes, this is FAI, maybe
FAI can do this." -
3:50 - 3:57As I said, FAI is only, or was until now
only a tool for experienced sysadmins -
3:57 - 4:02and you have to adjust several config
files, these are ASCII files -
4:02 - 4:09but still you have to touch 5 to 10
config files to make a customization. -
4:10 - 4:13So, how can I make FAI usable for
beginners? -
4:13 - 4:15That's the beginning of FAI.me.
-
4:18 - 4:21There's a web page, we'll show it
in more detail later, -
4:21 - 4:27where you can just click some things, and
then you get a customized image. -
4:29 - 4:36This image can be put onto a CD, DVD or
USB stick, just with dd -
4:36 - 4:41and the customization is just by using
the web interface -
4:41 - 4:46so there's no need for you to edit
a text file, a config file inside FAI. -
4:48 - 4:53I hope I covered most important things
that you want to adjust -
4:53 - 4:56or a little bit customize.
-
4:56 - 5:00You can add additional packages, I think
that's the most important thing -
5:00 - 5:04that people say "I want to have the normal
Debian installation -
5:04 - 5:06but with some additional packages."
-
5:07 - 5:12And you can select different
distributions, so it's not only -
5:12 - 5:17the installation image for the stable
release, you can create -
5:17 - 5:193 variants of the installation.
-
5:22 - 5:29This is the web page and thanks to Juri,
he did a great job -
5:29 - 5:34during the first and second day, he added
a new feature that we now have -
5:34 - 5:36a toggle button.
-
5:36 - 5:40Is it big enough or should I zoom in?
-
5:41 - 5:42Ok.
-
5:43 - 5:50So, we have a toggle button, what you see
now is just the bare minimum of questions -
5:50 - 5:54and we can toggle it to more advanced
settings. -
5:55 - 6:00You have to select or just leave this as
it is, username, -
6:00 - 6:06if you do not enter a password, a password
will be generated and shown to you -
6:06 - 6:08and sent by e-mail.
-
6:08 - 6:11I will now just type in the password.
-
6:12 - 6:15It's here in clear text, for me that's fine
because -
6:15 - 6:21there's also a comment that you should
change the password after the installation -
6:21 - 6:27and I do not like to enter passwords twice
so you can see what you typed in -
6:27 - 6:33and hopefully do not make any wrong
mistakes. -
6:34 - 6:38For example, we could select the Stretch
distribution with backports, -
6:38 - 6:42so we will get a 4.15 kernel with Stretch.
-
6:43 - 6:48There are some buttons we can say we want
to have some Debian developer tools. -
6:48 - 6:54This is what I defined in the FAI
configuration, so just a list of packages. -
6:55 - 6:59Here, you can enter you own packages.
-
7:01 - 7:05I will select the desktop.
-
7:05 - 7:09You can have an installation without any
desktop, so a very small installation. -
7:11 - 7:16I will select the XFCE desktop, but all
the other desktops are here. -
7:16 - 7:22The language, these are just task packages
that are… -
7:22 - 7:27I think Debian has much more task packages,
I just searched which are -
7:27 - 7:36the most common languages, and what I do
if I say I want the spanish language, -
7:36 - 7:38also the keyboard layout is spanish.
-
7:39 - 7:43I know there are different combinations
and with local time, -
7:43 - 7:47it's getting more difficult.
-
7:48 - 7:53This installation will install the clock
with UTC, so if you want to set -
7:53 - 7:55your time, you have to do this manually.
-
7:56 - 8:00I want to cover the most common installations.
-
8:02 - 8:11We select english US, the desktop and,
as an example, the midnight commander -
8:11 - 8:13and GIMP.
-
8:13 - 8:21I can add an email address so if it would
take longer, -
8:21 - 8:26for example if this service will have
success and a lot of people are using it, -
8:26 - 8:31you may wait for some minutes so your job
will be finished. -
8:32 - 8:38So here are the comments, how to reconfigure
the keyboard or the timezone -
8:38 - 8:42and then you just click "Create
the installation image". -
8:42 - 8:49Now, in the background, there's some job,
a script, looking "Oh, there's a new job" -
8:49 - 8:54and there's a summary of the configuration,
of the web configuration. -
8:56 - 8:59Down here you see these are the
FAI classes, -
8:59 - 9:02I will explain a little bit more about this.
-
9:02 - 9:07But with this information, FAI configuration
is generated, -
9:07 - 9:10that's what normally the experienced
sysadmins have to create -
9:11 - 9:18but here you just click on some buttons
and it will be done for you. -
9:22 - 9:26In the meantime, we have some more
advanced features -
9:26 - 9:29which I will also show you later.
-
9:29 - 9:35For example, this very simple installation
just creates one partition -
9:35 - 9:40but you can also select that you want
to have a separate /home partition -
9:40 - 9:46or using lvm just by selecting this
on the web interface. -
9:47 - 9:55You can also add your SSH public key
for logging as root without a password -
9:55 - 10:01or what's very nice, I found the new
Ubuntu installer does this, -
10:01 - 10:05you can give your github account and
then there's a command which -
10:05 - 10:10receives the public key from your
github account and puts it -
10:10 - 10:13into the root account so you can log in
without password. -
10:13 - 10:15I think that's very neat.
-
10:15 - 10:22And if you have a repository with your own
packages, you could also add this and say -
10:22 - 10:27"Please install those packages from
my publicly available repository." -
10:29 - 10:30Let's see.
-
10:30 - 10:35As we see, this job finished in 74 seconds.
-
10:36 - 10:40Now, this customised installation image
is available for download. -
10:41 - 10:43You can also download the log file.
-
10:44 - 10:47Since this is an installation image,
I first have to create -
10:47 - 10:50a partial package mirror.
-
10:52 - 10:57This is done by the command 'fai-mirror'
and you can also read the log of -
10:57 - 11:05this call of the fai-mirror, where a list
of all you packages with all the dependencies -
11:05 - 11:06are available.
-
11:06 - 11:13So you see, these are the list of packages
and later they are downloaded -
11:13 - 11:21and in the end, it says it created a mirror
of 1G of packages -
11:21 - 11:24and since I have a local mirror,
it's very fast. -
11:25 - 11:31This is the one part on the installation
image partial mirror with all the packages -
11:31 - 11:36and the other is that the config space
which you can also download. -
11:37 - 11:41So this is the config space that was
really created for you -
11:41 - 11:44by clicking the web interface.
-
11:44 - 11:48If you want to do more things with FAI,
you can set up your own FAI server -
11:48 - 11:50and use this configuration space.
-
11:52 - 11:57And, that's also very new, the two commands
that are used for creating this ISO image -
11:57 - 12:00are now also listed there.
-
12:00 - 12:05First, create the partial mirror and then
create the installation image. -
12:06 - 12:11Ok, copy link location…
-
12:12 - 12:14Let's see how good the network is here.
-
12:20 - 12:22[Q] It's a rather large image.
-
12:22 - 12:29Yeah, because it includes all the packages
and with Xfce, LibreOffice and so on -
12:29 - 12:33and the installation environment is maybe
about 200MB. -
12:33 - 12:38That's not much bigger than the Debian
installer that you need to download. -
12:39 - 12:43So, 2, 1, done.
-
12:48 - 12:56I have a little wrapper which calls
a fresh kvm machine -
12:56 - 13:01with an empty disk and boots this ISO image
-
13:01 - 13:06and then we will see how this installation
runs. -
13:08 - 13:10So this is dracut booting the image
-
13:11 - 13:17and now you see there are already
some parted commands executed -
13:17 - 13:22and now the packages are installed
and everything runs on -
13:22 - 13:24and in the end some customization
script. -
13:25 - 13:29We use only shell scripts for doing
some customizations -
13:29 - 13:33and you see the files are downloaded
from /media/mirror -
13:33 - 13:36so this is local on the ISO image.
-
13:36 - 13:40It would also be possible to create
an image without the packages -
13:40 - 13:45and then give another sources.list file
so the packages would be downloaded -
13:45 - 13:52from the internet but this default
in the FAI service, -
13:52 - 13:55we put everything onto the ISO image.
-
13:58 - 14:01I guess it will run for 4 minutes.
-
14:03 - 14:07[Q] ???
-
14:08 - 14:09Yeah.
-
14:14 - 14:17What I will show you now is…
-
14:17 - 14:21So, this was the simple one, now I toggle
this web page and -
14:21 - 14:26you will see that there are some more
questions you may answer, -
14:26 - 14:29for example you can give a root password.
-
14:30 - 14:33If you leave this empty, sudo will be
configured. -
14:34 - 14:39Here you can upload the SSH key or give
your Github account, -
14:39 - 14:41that would be Mrfai for me.
-
14:43 - 14:46With the partitioning schemes, we have
one partition -
14:46 - 14:53or one partition and /home separated
or these two versions with LVM. -
14:53 - 14:59FAI itself can do much more, we could do
soft raid set ups, cryptsetup -
14:59 - 15:04but here I want to cover the most common
installation, so very simple -
15:04 - 15:07we have only 4 things that you can choose.
-
15:08 - 15:11[Q] For encryption?
-
15:11 - 15:12[A] Yes.
-
15:16 - 15:19So, this was the partitioning things.
-
15:19 - 15:25This is the new feature where you can add
an URL for your local package repository -
15:25 - 15:31and the rest is the same, you can add
packages you like, your email address -
15:31 - 15:33and then also create an installation image.
-
15:36 - 15:44I normally set… By default, I include
the nonfree linux firmware. -
15:45 - 15:52This is because my target audience is
an end user and I want to make it -
15:52 - 15:56very comfortable for them, so yeah,
they can just install it -
15:56 - 15:58and do not have these problems.
-
15:58 - 16:02And since this is not on an official
debian.org web site, -
16:02 - 16:08I can do this with this default.
-
16:11 - 16:14Let's see, the installation is still running.
-
16:17 - 16:20So, advanced features.
-
16:21 - 16:24The next thing after this installation,
-
16:24 - 16:27I will show you how to create cloud
images. -
16:27 - 16:32Currently, we create an installation image,
-
16:32 - 16:35when you boot it, the installation is run
fully automatically. -
16:35 - 16:43The other type of service FAI.me gives
to you is that it creates a raw image -
16:43 - 16:48or some other formats as you see here,
qcow2 and whatever -
16:48 - 16:51which you can just boot and
the installation is already done. -
16:54 - 16:58But first, see if the installation finish.
-
17:00 - 17:02Ah! Ok.
-
17:02 - 17:08These are now the shell scripts that are
executed for the customization -
17:08 - 17:14of like /etc/messages of today,
/etc/network/interfaces is written -
17:14 - 17:15and so on.
-
17:16 - 17:22You see the installation took 236s, it says
there are some errors -
17:22 - 17:24but that's not really true.
-
17:25 - 17:29And it stops here, but we can also
disable this, this is only for showing -
17:29 - 17:31everything went well
-
17:31 - 17:35and now we just reboot the machine.
-
17:37 - 17:39You see the grub.
-
17:47 - 17:50Ok, Xfce desktop.
-
17:51 - 17:56debian was the user with password FAI.
-
18:00 - 18:08We have "uname -a", this is 4.16,
the backports kernel was installed there. -
18:08 - 18:14We have only one partition, no LVM
-
18:14 - 18:21and I told it to install gimp which is
not installed by default. -
18:21 - 18:24Gimp is there, so this is nice.
-
18:25 - 18:27And the midnight commander is also there.
-
18:31 - 18:34And now we just throw this machine.
Gone. -
18:36 - 18:43What's very nice with this wrapper script,
it creates the local disk -
18:43 - 18:48of the virtual machine in /tmp which is
a RAM disk and I love RAM, -
18:48 - 18:50it's so nice and fast.
-
18:51 - 18:56So, this was installation image and now we
look at the cloud image. -
18:57 - 19:01First, you can say how big should your
disk image be. -
19:04 - 19:10Here, I say 8GB, you will see it's not
an 8GB image -
19:10 - 19:13that you have to download later.
-
19:13 - 19:18By default, I use zstd compression.
-
19:18 - 19:22Anyone who does not know
this compression? -
19:22 - 19:28This is very fast, very new, created
by Facebook if I'm correct. -
19:29 - 19:38It's for very big files and what you should
never use is gzip with sparse images. -
19:38 - 19:42The disk image is sparse and gzip
cannot handle this -
19:42 - 19:46so if you compress it and uncompress it
it will be very large -
19:46 - 19:53and all the other, xz, zstd, can handle
sparse files very nicely. -
19:54 - 20:02So, the hostname is set, the root password,
username with a password. -
20:03 - 20:05Now we want to install Buster.
-
20:07 - 20:09Maybe with no…
-
20:12 - 20:15Oh, we also do the Xfce desktop.
-
20:16 - 20:20Any packages you'd like to have in this
cloud image. -
20:21 - 20:25"desktop" and "cloud" image does not
make that much sense, maybe. -
20:27 - 20:31Emacs25, ok.
-
20:33 - 20:37And now "Create disk image".
-
20:37 - 20:42This will take a little bit longer because
we are doing the installation -
20:42 - 20:45inside a file image.
-
20:46 - 20:52But no problem, I can tell you what
other ideas I have. -
20:53 - 21:02So, currently we have the installation and
the cloud or virtual machine images for amd64 -
21:02 - 21:08FAI itself can also do cross-architecture
images so it would be some work -
21:08 - 21:14to extend the web page to say
"Please create an arm64 image" -
21:14 - 21:22It would be very nice to have predefined
configs for raspberry pi or -
21:22 - 21:24all the very different boards
-
21:25 - 21:27but that would also be possible.
-
21:29 - 21:33I guess the next thing I will implement
is other distributions -
21:33 - 21:36because I know people are always asking it.
-
21:36 - 21:38Not you but the Ubuntu guys.
-
21:40 - 21:45Yesterday I did the first test with Ubuntu
bionic, the LTS release -
21:45 - 21:47and FAI just works out of the box with it.
-
21:48 - 21:54So what I have to do is to integrate it
in these FAI.me processing scripts. -
21:55 - 22:00Ready-to-go cloud images for the big
cloud providers. -
22:03 - 22:06That's only a different FAI config space
that I have to use. -
22:07 - 22:11Currently, for example, in what I call
cloud images, I do not install -
22:11 - 22:13the package cloud image.
-
22:14 - 22:17That's needed for all the ones.
-
22:18 - 22:25I'm also working in the Debian cloud team
and this team decided 2 years ago -
22:25 - 22:30that the tool chain in the future for
the official Debian package will be FAI. -
22:31 - 22:37Amazon is already using it, so if you
boot or if you use a Debian cloud image -
22:37 - 22:41in Amazon, Noah Meyerhans did this and
he's using the FAI tool chain for it. -
22:42 - 22:49Google is not yet using it because there was
a very small problem -
22:49 - 22:52in a config file we had one space too much
-
22:52 - 22:55which caused grub to hang forever
-
22:55 - 23:01and that was the reason why they decided
for Stretch to use their own tool chain. -
23:01 - 23:06But the things are working so we have
the config space also for Google. -
23:07 - 23:12And also for Azure, some people from
Credativ did this. -
23:15 - 23:18The Debian cloud team already has
the FAI configuration for -
23:18 - 23:24the big tool providers,
cloud providers. -
23:25 - 23:31We could also think on a more generic
FAI installation image. -
23:32 - 23:37It's an image that you would boot up
and then enter your job id of the web page -
23:37 - 23:40and then the configuration would be
downloaded -
23:40 - 23:43and the packages would be just
received from the internet. -
23:44 - 23:45That was one…
-
23:46 - 23:50So, the image would be much smaller
because the packages do not need to be -
23:50 - 23:53on the installation image.
-
23:55 - 23:58It's also possible to create live images
with FAI. -
23:59 - 24:00It is a little bit more…
-
24:01 - 24:07Currently, you need some manual work
but that should be also possible -
24:07 - 24:11to use FAI for creating live image
and then also to provide this -
24:11 - 24:14on the FAI.me web service.
-
24:15 - 24:18If you want to customize much more
inside the image, you just say -
24:18 - 24:22"Oh, I have some Ansible scripts that
I want to execute at the very end" -
24:22 - 24:27then I say "Ok, this is just a starting
point, use the FAI.me service -
24:27 - 24:32and if you're happy with the FAI tools,
then set up your own FAI server, -
24:32 - 24:38create your own configuration space
and then you can do all the crazy things." -
24:40 - 24:42So, how does FAI.me work internally.
-
24:43 - 24:48We have a web server where there are
some CGI scripts and -
24:48 - 24:54this is not the build server, so on the
web server, you click "Submit" -
24:54 - 25:02"Create my image", all the input
is validated so you cannot make nasty things -
25:02 - 25:09and then the CGI writes or creates
a subdirectory and puts 2 files in it, -
25:09 - 25:10a config and a meta file
-
25:12 - 25:15and writes a status
"waiting for processing". -
25:15 - 25:19Then, the other server, the build server
reads this config and -
25:19 - 25:25this is just an NFS mounted directory,
and sees -
25:25 - 25:27"Oh there's a new job I have to process".
-
25:30 - 25:34In this processing script we pass for
some errors. -
25:34 - 25:40What's happening very often that people
type in a package that's not available -
25:40 - 25:45and this will be detected and then a new
version of the web page will pop up and say -
25:45 - 25:49"Oh, when creating the package mirror,
there was an error -
25:49 - 25:51because this package was not known."
-
25:53 - 25:54Sometimes I have to…
-
25:55 - 25:58Every night, I create new nfsroots
for Buster. -
25:59 - 26:03If there are security updates, I have
to create new nfsroots -
26:03 - 26:05for Stretch and backports.
-
26:06 - 26:10I have some cleanup, so if a lot of jobs
are created, -
26:10 - 26:13the images are on the disk after,
-
26:13 - 26:17normally I say after one day I just
remove the images -
26:17 - 26:21so you have one day to download
the images. -
26:23 - 26:26There's 3 different configurations
-
26:26 - 26:29/etc/fai-stretch, /etc/buster,
/etc/fai-stretch-bpo (backports) -
26:29 - 26:31We need for the installation image
-
26:31 - 26:36We need a different nfsroot, but
the config space that is shared -
26:36 - 26:38about all configurations,
-
26:38 - 26:41so it doesn't matter if I install
-
26:41 - 26:46Stretch or Stretch backports or
Buster, -
26:46 - 26:50I can use the same FAI configuration.
-
26:50 - 26:54Also, for building the cloud images,
I use the same FAI configuration. -
26:56 - 27:05A new job is detected, then a copy of
the configuration space will be made -
27:05 - 27:08and it will be customized a little bit.
-
27:08 - 27:10So there are a very very few changes,
-
27:10 - 27:17for example I have to put the SSH key
into your customized configuration space -
27:17 - 27:21or the list of packages or the user and
root password. -
27:21 - 27:26Then we have two things, if we want to
create the installation image, -
27:26 - 27:31I first have to create the partial package
mirror and then create the installation image -
27:31 - 27:36For the cloud images, we do not need
the nfsroot, we just need -
27:36 - 27:39the configuration space which is
customized a little bit -
27:39 - 27:42and then we can just create the disk image
-
27:42 - 27:47so there's one step less compared to
creating the installation ISO. -
27:48 - 27:52The status on the web page will be
updated, log files written -
27:52 - 27:55and if the user said "Please send me
an email if my job is ready", -
27:55 - 27:58this will also be sent to the user.
-
Not SyncedThe we have the ISO or the disk image
and this will be copied back -
Not Syncedto the web server where the user can then
download it. -
Not SyncedAnd since I have a lot of RAM
in this machine, -
Not Syncedeverything is run in RAM, very very nice.
-
Not SyncedAs I said, we need an nfsroot,
a configuration space and FAI classes. -
Not SyncedThis is a very central component in FAI
-
Not Syncedand this is just a list of names.
-
Not SyncedSo in HOME_LVM, this is the class name,
the FAI class we describe -
Not Syncedand I think this is that example:
-
Not SyncedHOME_LVM describes how to partition
the local hard disk. -
Not SyncedThis is our very flexible tool where
we can do LVM, cryptsetups, -
Not Syncedsoftware RAIDs and so on.
-
Not SyncedBut for the FAI.me service, I just created
4 different types of partitioning -
Not Syncedand this is the HOME_LVM example.
-
Not SyncedSo we have a list of classes and,
as I said, -
Not Syncedjust two commands for the installation
image with a list of classes -
Not Syncedand for the cloud image, I have to say
how big should the disk image be, -
Not Syncedthe list of classes and what's the target
file that should be created. -
Not SyncedLet's see if this is ready.
-
Not SyncedYes, it's ready.
-
Not SyncedSo…
-
Not SyncedIt's 1.1GB.
-
Not SyncedIs this really the… oh yeah, raw.
-
Not SyncedNo problem, let's download it, it should
be fast. -
Not SyncedThis is the normal architecture if you use
FAI in a client/server set up. -
Not SyncedYou should just look on the left side
where you see -
Not Syncedyou need the config space, an nfsroot
and a mirror -
Not Syncedand these parts will put onto the CD.
-
Not SyncedIf you ??? network installation thing,
-
Not Syncedthis is of things get from the server
to the client. -
Not SyncedFor the software installation, we have
another subdirectory called package_config -
Not Syncedand there you also see several files
where the file name is a FAI class. -
Not SyncedSince in the FAI.me service every client
belongs to the class DEBIAN, -
Not Syncedit will install the packages that are listed
on the ??? -
Not Syncedand here we have an other class, NONFREE
-
Not SyncedThese packages are only installed if
you also said -
Not Synced"Please install the nonfree packages"
-
Not Syncedand this is mapped to a FAI class
called NONFREE. -
Not SyncedAnd there's an other class for AMD64
and so on. -
Not SyncedSome references.
-
Not SyncedIn the past, it looked more like this
when I said -
Not Synced"Oh, who's using FAI?" and during
the last month I collected some logos -
Not Syncedjust because it's much nicer.
-
Not SyncedLet's see if the download was ready.
-
Not SyncedWe unzstd the FAI.me image,
faime-013Z image -
Not SyncedOn the web site, I said I want to have
a 8GB partition, -
Not Syncedso now let's see how big it is.
-
Not SyncedThe file is 8, but since it's a sparse file
it's only 3.5GB -
Not Syncedand the compressed was 1.1GB.
-
Not SyncedNow I use my wrapper
-
Not Syncedand I say "Boot from disk" and this is
the FAI.me raw image, disk image -
Not Syncedthat should be booted up.
-
Not SyncedThat's it.
-
Not Synceddebian/fai
-
Not SyncedLet's see if emacs is installed, yes.
-
Not SyncedGimp is already there, hopefully, and
the blue midnight commander. -
Not SyncedLet's see.
-
Not SyncedQuestions.
-
Not Synced[Q] I'm using the preseed file for
the debian-installer, -
Not Synceddo you have a conversion between
your syntax and your configuration files -
Not Syncedand the preseed file or maybe can you add
a download button for the preseed file -
Not Syncedto your web site because I think it's
rather nice to have it displayed -
Not Syncedin web site first.
-
Not Synced[A] I'm not using the debian-installer.
-
Not SyncedI use preseeding, yes, the debconf
preseeding for the normal packages -
Not Syncedyou can do this also in FAI and it's
the same format -
Not Syncedyou get with debconf-get-selections.
-
Not SyncedAnd what you get is you can download
your own FAI config space -
Not Syncedand this includes all information you need
to set up, -
Not Syncedto do this mirror FAI CD or the FAI disk
image command. -
Not SyncedBut you cannot convert this config into
a d-i preseeding or vice versa, -
Not Syncedthat's not possible.
-
Not SyncedBecause for example, for the partitioning
part I do not like to create -
Not Syncedfrom my disk config partman preseeding
file. -
Not SyncedYou can pay me a lot of money, I will
never do this. -
Not SyncedYou know that the partman preseeding
is very ugly and very heavy. -
Not SyncedFor other things, yes, selection of,
for example, the selection of the language -
Not SyncedThese are the normal preseeding we use.
-
Not SyncedAnd the list of packages, task selec…
-
Not SyncedI think it's much easier to do this in
the FAI configuration than to create -
Not Synceda debian-installer preseeding.
-
Not SyncedAnd why use d-i if this works for you?
-
Not Synced[Q] d-i works as well for me.
-
Not Synced[A] Yes, then fine, use it.
-
Not Synced[Q] Hi Thomas. Thank you very much for
this new feature in the FAI project, -
Not Syncedit's very nice and I found very great that
you have the output of the commands -
Not Syncedthat you used to create the ISO image or
the cloud file. -
Not SyncedA question that I have is, in which servers
are located the files that we create, -
Not Syncedthe ISO or the cloud.
-
Not SyncedIs it a server that you own host or…
-
Not Synced[A] Trust me.
-
Not SyncedCurrently,
-
Not Syncedboth the web server and the FAI.me
processing build server are run -
Not Syncedon two machines at the university where
I work as a system administrator -
Not Syncedso that's also where we have a very fast
connection. -
Not SyncedThe CGI script and shell script that is
processing these jobs is currently -
Not Syncednot open source.
-
Not SyncedThere are plans to do this, I'm not sure
when. -
Not SyncedIf you want to reproduce the things, you
have the config file and you can download -
Not Syncedthe FAI software and use these one or two
commands to reproduce it. -
Not SyncedSome people said "Oh, very nice service,
I would like to set up in my company". -
Not SyncedThen please yes, contact me and…
-
Not SyncedCurrently there are no concrete plans
to make these background scripts open source -
Not Syncedbut it will be in some future.
-
Not SyncedBut currently, you have to trust me as
you also have to trust the package maintainers -
Not Syncedthat will be installed there.
-
Not SyncedBut you can verify it or say "I do not
trust Thomas but I will just grab -
Not Syncedthe FAI config space and this on my own".
-
Not Synced[Q] Thank you.
-
Not Synced[Q] There's a question from the internet.
-
Not SyncedWhy not use a proper job queuing system
like grid engine or similar? -
Not Synced[A] I'm using grid engine at work for
different things. -
Not SyncedIt started as a very simple project, so
in the end it's just a loop which -
Not Syncedchecks if there's new jobs on that.
-
Not SyncedCurrently, I do not process jobs
in parallel, currently there's no need for it -
Not SyncedIf this project will be very successful,
yeah, I have to use a queuing system. -
Not SyncedIt's, yeah, a very simple script.
-
Not SyncedBut it would be also possible with
a proper queuing system. -
Not SyncedMore questions?
-
Not Synced[Q] I have a bunch of questions.
-
Not SyncedFirst, what is it that you use for
partitioning? -
Not Synced[A] I'm using a poll script that we wrote
several years ago in FAI -
Not Syncedand we defined this config file,
this package config -
Not Syncedand the Perl script parses this script
and then executes the parted and mkfs command -
Not Syncedwhich you can see in the log files, so if
you want to see what does FAI do -
Not Syncedafter parsing this, which commands are
executed, you see everything -
Not Syncedon the log files.
-
Not Synced[Q] Right, but so you turn this text
into partitioning… -
Not Synced[A] commands, yeah.
-
Not Synced[Q] But the text looks like this,
like with the spaces and everything. -
Not Synced[A] You can use more or less spaces
or do you like, -
Not Syncedshould I convert it to XML?
-
Not Synced[Q] Ok, then my next question is
-
Not Syncedwhat are you using the nfsroot for when
you're generating the images? -
Not Synced[A] The nfsroot is used only for the
installation image. -
Not SyncedWhen I do the installation, I need to boot
the machine as a diskless client, -
Not Syncedso it's just what the debian-installer
into RAM, -
Not Syncedyou need a running Linux system.
-
Not SyncedThis is our nfsroot, on the installation
image. -
Not SyncedWhen you boot installation image, this
nfsroot with all the commands we need -
Not Syncedare started without using the local disk
and then we can do -
Not Syncedeverything on the disk, /root and /target
and so on. -
Not SyncedThe nfsroot is the system that is running
during the installation. -
Not Synced[Q] Ok, but there's no need for this to be
nfs, it could be a -
Not Synced[A] It's called nfsroot.
-
Not SyncedThis is very common that people call it
nfsroot -
Not Syncedand if you have this network installation
thing, it's really an nfsroot. -
Not SyncedBut you're right.
-
Not SyncedOn the installation ISO, it's not nfs,
it's just a local file system, yes. -
Not Synced[Q] Alright. So, I think it's my last
comment. -
Not SyncedYou have the ISO from which you install
and when you install from the ISO -
Not Syncedyou're installing then packages on the
machine, and then you have the image -
Not Syncedwhich is like a disk image that has
the packages already installed, -
Not Syncedso you skip the installing step.
-
Not SyncedHave you thought about having
an intermediate thing -
Not Syncedwhere you download an image that
already has the packages installed? -
Not Synced[A] That's also possible.
-
Not SyncedWhen you do an installation, before you
can change root in the new system -
Not Syncedfor adding packages, you have to call
debootstrap. -
Not SyncedWhat we do, we call debootstrap once and
create a tar file out of it. -
Not SyncedThis is our minimal… in the former days
it was the floppy disk, -
Not Syncedour base tar.gz file,
-
Not Syncedso you could exchange the minimal tar file
with whatever tar file you have. -
Not SyncedThat's for example what we do if we install
Ubuntu. -
Not SyncedWe boot the installation system which is
a Debian system -
Not Syncedand then create the local filesystem and
extract an Ubuntu base image -
Not Syncedand then we can change root into
the Ubunto or the same for CentOS and so on -
Not Syncedthen we can change root into the other
Linux system and add packages there. -
Not SyncedIf you have already a bigger image with
some more packages added there, -
Not Syncedit's very easy to say "Do not extract the
Debian Stretch image -
Not Syncedbut use my image which also
includes other tools." -
Not SyncedAnd if you are fine with that, you can
just extract the tar file. -
Not Synced[Q] Ok. Any more questions?
-
Not Synced[Q] The heading is in german.
-
Not Synced[A] What?
-
Not Synced[Q] The heading is in german.
-
Not Synced[A] Oh, because it's a copy of my german
slides. -
Not SyncedThank you for this.
-
Not SyncedAnd, what's also missing.
-
Not SyncedThe web page, where you can select german
or other languages, -
Not Syncedit would be nice if people are interested
to help translate them -
Not Syncedso that it's more easy for people that
do not speak english -
Not Syncedto use the website and create their own
installation image with their language. -
Not Synced[Q] Someone on the stream said that
the fai.me web site is not yours -
Not Syncedand it's a hack thing, it's a scam, you go
there and get hacked. -
Not SyncedDo you have any plans to try to buy
the domain because it's pretty confusing. -
Not SyncedThe first thing I would have done
by seeing that talk would have been -
Not Syncedto go to fai.me.
-
Not Synced[A] Yeah, I was thinking about which name
I should choose. -
Not SyncedI didn't check which web domains are free
and in then end I thought -
Not Synced"Do I like to have a different domain name
for the service?" -
Not SyncedBut since it's only a part of the FAI
project, I thought, -
Not Syncedand technically it was also easier just
to host it under a subdirectory -
Not Syncedand yeah, if people now grab the fai.me
domain and do other things with it, yeah. -
Not SyncedI think one question would be to use
a debian.net or maybe debian.org domain -
Not Syncedbecause people trust much more.
-
Not SyncedI get a lot of comments "Oh this would
be very nice if this would be hosted -
Not Syncedon a Debian machine"
-
Not Syncedbut this would be much more complicated
because the DSA team -
Not Syncedhas much more restriction what to execute
on their machines. -
Not Syncedcurrently, we need root access because
we mount some things -
Not Syncedand DSA would not give root access
on any Debian machine. -
Not SyncedThat's the same problem we have
in the Debian cloud team -
Not Syncedwhere we want to create the official
images for the cloud providers -
Not Syncedwhere the Debian cloud team will also
not have root access -
Not Syncedand so there's much more work to get
empty virtual machines -
Not Syncedstarting up, putting data into it,
creating the images, -
Not Syncedreceiving them from inside the image.
-
Not SyncedAnd since on those machines I have
root access, that's much easier for me. -
Not SyncedWe are out of time, so thank you Thomas.
-
Not Synced[Applause]
- Title:
- FAI.me - A Build Service for Installation and Cloud Images
- Description:
-
Talk given by Thomas Lange at Minidebconf Hamburg 18
https://meetings-archive.debian.net/pub/debian-meetings/2018/miniconf-hamburg/2018-05-20/fai.me.webm - Video Language:
- English
- Team:
Debconf
- Project:
- 2018_mini-debconf-hamburg
- Duration:
- 45:45
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images | |
![]() |
tvincent edited English subtitles for FAI.me - A Build Service for Installation and Cloud Images |