English subtitles

← FAI.me - A Build Service for Installation and Cloud Images

Get Embed Code
1 Language

Showing Revision 12 created 06/19/2018 by tvincent.

  1. Today, I talk about FAI.me, which is a
    build server for images.
  2. First, anybody that never heard anything
    about FAI?
  3. Ok
  4. I started this project in 1999.
  5. I'm not sure…
  6. No, I'm sure that during those times, the
    Debian installer did not have
  7. the preseeding stuff, so we needed
    something automatically.
  8. I installed the first cluster with FAI and
    I always do talks on FAI or
  9. today in the lightning talks, I talk
    a little bit about dracut,
  10. which is used in FAI.
  11. So, what was the motivation.
  12. A neighbour of mine, she came to me with
  13. "My Windows desktop is broken,
    can you reinstall it?"
  14. And in the end, I installed her Linux,
    and I was shortly thinking about
  15. "Should I use FAI for installing her
    desktop with Linux?"
  16. And in the end, I did not use it because
    FAI is too complicated,
  17. like the Debian installer, I guess it's
    not really that easy for beginners
  18. because there are a lot of questions
  19. but also FAI is not really for beginners.
  20. So this was the motivation about thinking
    about FAI.
  21. The target group was always advanced
    sysadmins
  22. but I thought maybe it's possible to make
    FAI usable also for people
  23. that are not that advanced sysadmins.
  24. The idea is that an installer should cover
    most installations.
  25. The Debian installer is really perfect
    because I think it covers
  26. all different kinds and strange environments
  27. You can do a lot of things, you can configure
    very strange combination of language,
  28. keyboard layout and so on
  29. but I was thinking about an installer
    that covers 90 or 95% of the installations
  30. A lot of special cases can be ignored and
    since the Debian installer has like
  31. more than 20 questions, I thought it would
    be much nicer if there were only
  32. 3 to 5 questions and I looked at Linux Mint
    and Mageia installers, CentOS installer,
  33. and they all ask much less questions.
  34. In the Debian installer, we sometimes
    have also things that are asked
  35. during the installation, so not everything
    is asked at the very beginning.
  36. For example, the task selection, where you
    select your desktop,
  37. is done after the base installation.
  38. This was also very important, I would like
    to have something that
  39. asks everything at the very beginning.
  40. Then, maybe some tool could create
    a customized installation image
  41. and this installation image should run
    then completely unattended
  42. so you can get yourself a coffee and
    when you come back, your machine is ready.
  43. There are 3 things to customize installation
    image,
  44. you just put this image, you do not have
    to touch anything, and then it's ready.
  45. I thought "Oh yes, this is FAI, maybe
    FAI can do this."
  46. As I said, FAI is only, or was until now
    only a tool for experienced sysadmins
  47. and you have to adjust several config
    files, these are ASCII files
  48. but still you have to touch 5 to 10
    config files to make a customization.
  49. So, how can I make FAI usable for
    beginners?
  50. That's the beginning of FAI.me.
  51. There's a web page, we'll show it
    in more detail later,
  52. where you can just click some things, and
    then you get a customized image.
  53. This image can be put onto a CD, DVD or
    USB stick, just with dd
  54. and the customization is just by using
    the web interface
  55. so there's no need for you to edit
    a text file, a config file inside FAI.
  56. I hope I covered most important things
    that you want to adjust
  57. or a little bit customize.
  58. You can add additional packages, I think
    that's the most important thing
  59. that people say "I want to have the normal
    Debian installation
  60. but with some additional packages."
  61. And you can select different
    distributions, so it's not only
  62. the installation image for the stable
    release, you can create
  63. 3 variants of the installation.
  64. This is the web page and thanks to Juri,
    he did a great job
  65. during the first and second day, he added
    a new feature that we now have
  66. a toggle button.
  67. Is it big enough or should I zoom in?
  68. Ok.
  69. So, we have a toggle button, what you see
    now is just the bare minimum of questions
  70. and we can toggle it to more advanced
    settings.
  71. You have to select or just leave this as
    it is, username,
  72. if you do not enter a password, a password
    will be generated and shown to you
  73. and sent by e-mail.
  74. I will now just type in the password.
  75. It's here in clear text, for me that's fine
    because
  76. there's also a comment that you should
    change the password after the installation
  77. and I do not like to enter passwords twice
    so you can see what you typed in
  78. and hopefully do not make any wrong
    mistakes.
  79. For example, we could select the Stretch
    distribution with backports,
  80. so we will get a 4.15 kernel with Stretch.
  81. There are some buttons we can say we want
    to have some Debian developer tools.
  82. This is what I defined in the FAI
    configuration, so just a list of packages.
  83. Here, you can enter you own packages.
  84. I will select the desktop.
  85. You can have an installation without any
    desktop, so a very small installation.
  86. I will select the XFCE desktop, but all
    the other desktops are here.
  87. The language, these are just task packages
    that are…
  88. I think Debian has much more task packages,
    I just searched which are
  89. the most common languages, and what I do
    if I say I want the spanish language,
  90. also the keyboard layout is spanish.
  91. I know there are different combinations
    and with local time,
  92. it's getting more difficult.
  93. This installation will install the clock
    with UTC, so if you want to set
  94. your time, you have to do this manually.
  95. I want to cover the most common installations.
  96. We select english US, the desktop and,
    as an example, the midnight commander
  97. and GIMP.
  98. I can add an email address so if it would
    take longer,
  99. for example if this service will have
    success and a lot of people are using it,
  100. you may wait for some minutes so your job
    will be finished.
  101. So here are the comments, how to reconfigure
    the keyboard or the timezone
  102. and then you just click "Create
    the installation image".
  103. Now, in the background, there's some job,
    a script, looking "Oh, there's a new job"
  104. and there's a summary of the configuration,
    of the web configuration.
  105. Down here you see these are the
    FAI classes,
  106. I will explain a little bit more about this.
  107. But with this information, FAI configuration
    is generated,
  108. that's what normally the experienced
    sysadmins have to create
  109. but here you just click on some buttons
    and it will be done for you.
  110. In the meantime, we have some more
    advanced features
  111. which I will also show you later.
  112. For example, this very simple installation
    just creates one partition
  113. but you can also select that you want
    to have a separate /home partition
  114. or using lvm just by selecting this
    on the web interface.
  115. You can also add your SSH public key
    for logging as root without a password
  116. or what's very nice, I found the new
    Ubuntu installer does this,
  117. you can give your github account and
    then there's a command which
  118. receives the public key from your
    github account and puts it
  119. into the root account so you can log in
    without password.
  120. I think that's very neat.
  121. And if you have a repository with your own
    packages, you could also add this and say
  122. "Please install those packages from
    my publicly available repository."
  123. Let's see.
  124. As we see, this job finished in 74 seconds.
  125. Now, this customised installation image
    is available for download.
  126. You can also download the log file.
  127. Since this is an installation image,
    I first have to create
  128. a partial package mirror.
  129. This is done by the command 'fai-mirror'
    and you can also read the log of
  130. this call of the fai-mirror, where a list
    of all you packages with all the dependencies
  131. are available.
  132. So you see, these are the list of packages
    and later they are downloaded
  133. and in the end, it says it created a mirror
    of 1G of packages
  134. and since I have a local mirror,
    it's very fast.
  135. This is the one part on the installation
    image partial mirror with all the packages
  136. and the other is that the config space
    which you can also download.
  137. So this is the config space that was
    really created for you
  138. by clicking the web interface.
  139. If you want to do more things with FAI,
    you can set up your own FAI server
  140. and use this configuration space.
  141. And, that's also very new, the two commands
    that are used for creating this ISO image
  142. are now also listed there.
  143. First, create the partial mirror and then
    create the installation image.
  144. Ok, copy link location…
  145. Let's see how good the network is here.
  146. [Q] It's a rather large image.
  147. Yeah, because it includes all the packages
    and with Xfce, LibreOffice and so on
  148. and the installation environment is maybe
    about 200MB.
  149. That's not much bigger than the Debian
    installer that you need to download.
  150. So, 2, 1, done.
  151. I have a little wrapper which calls
    a fresh kvm machine
  152. with an empty disk and boots this ISO image
  153. and then we will see how this installation
    runs.
  154. So this is dracut booting the image
  155. and now you see there are already
    some parted commands executed
  156. and now the packages are installed
    and everything runs on
  157. and in the end some customization
    script.
  158. We use only shell scripts for doing
    some customizations
  159. and you see the files are downloaded
    from /media/mirror
  160. so this is local on the ISO image.
  161. It would also be possible to create
    an image without the packages
  162. and then give another sources.list file
    so the packages would be downloaded
  163. from the internet but this default
    in the FAI service,
  164. we put everything onto the ISO image.
  165. I guess it will run for 4 minutes.
  166. [Q] ???
  167. Yeah.
  168. What I will show you now is…
  169. So, this was the simple one, now I toggle
    this web page and
  170. you will see that there are some more
    questions you may answer,
  171. for example you can give a root password.
  172. If you leave this empty, sudo will be
    configured.
  173. Here you can upload the SSH key or give
    your Github account,
  174. that would be Mrfai for me.
  175. With the partitioning schemes, we have
    one partition
  176. or one partition and /home separated
    or these two versions with LVM.
  177. FAI itself can do much more, we could do
    soft raid set ups, cryptsetup
  178. but here I want to cover the most common
    installation, so very simple
  179. we have only 4 things that you can choose.
  180. [Q] For encryption?
  181. [A] Yes.
  182. So, this was the partitioning things.
  183. This is the new feature where you can add
    an URL for your local package repository
  184. and the rest is the same, you can add
    packages you like, your email address
  185. and then also create an installation image.
  186. I normally set… By default, I include
    the nonfree linux firmware.
  187. This is because my target audience is
    an end user and I want to make it
  188. very comfortable for them, so yeah,
    they can just install it
  189. and do not have these problems.
  190. And since this is not on an official
    debian.org web site,
  191. I can do this with this default.
  192. Let's see, the installation is still running.
  193. So, advanced features.
  194. The next thing after this installation,
  195. I will show you how to create cloud
    images.
  196. Currently, we create an installation image,
  197. when you boot it, the installation is run
    fully automatically.
  198. The other type of service FAI.me gives
    to you is that it creates a raw image
  199. or some other formats as you see here,
    qcow2 and whatever
  200. which you can just boot and
    the installation is already done.
  201. But first, see if the installation finish.
  202. Ah! Ok.
  203. These are now the shell scripts that are
    executed for the customization
  204. of like /etc/messages of today,
    /etc/network/interfaces is written
  205. and so on.
  206. You see the installation took 236s, it says
    there are some errors
  207. but that's not really true.
  208. And it stops here, but we can also
    disable this, this is only for showing
  209. everything went well
  210. and now we just reboot the machine.
  211. You see the grub.
  212. Ok, Xfce desktop.
  213. debian was the user with password FAI.
  214. We have "uname -a", this is 4.16,
    the backports kernel was installed there.
  215. We have only one partition, no LVM
  216. and I told it to install gimp which is
    not installed by default.
  217. Gimp is there, so this is nice.
  218. And the midnight commander is also there.
  219. And now we just throw this machine.
    Gone.
  220. What's very nice with this wrapper script,
    it creates the local disk
  221. of the virtual machine in /tmp which is
    a RAM disk and I love RAM,
  222. it's so nice and fast.
  223. So, this was installation image and now we
    look at the cloud image.
  224. First, you can say how big should your
    disk image be.
  225. Here, I say 8GB, you will see it's not
    an 8GB image
  226. that you have to download later.
  227. By default, I use zstd compression.
  228. Anyone who does not know
    this compression?
  229. This is very fast, very new, created
    by Facebook if I'm correct.
  230. It's for very big files and what you should
    never use is gzip with sparse images.
  231. The disk image is sparse and gzip
    cannot handle this
  232. so if you compress it and uncompress it
    it will be very large
  233. and all the other, xz, zstd, can handle
    sparse files very nicely.
  234. So, the hostname is set, the root password,
    username with a password.
  235. Now we want to install Buster.
  236. Maybe with no…
  237. Oh, we also do the Xfce desktop.
  238. Any packages you'd like to have in this
    cloud image.
  239. "desktop" and "cloud" image does not
    make that much sense, maybe.
  240. Emacs25, ok.
  241. And now "Create disk image".
  242. This will take a little bit longer because
    we are doing the installation
  243. inside a file image.
  244. But no problem, I can tell you what
    other ideas I have.
  245. So, currently we have the installation and
    the cloud or virtual machine images for amd64
  246. FAI itself can also do cross-architecture
    images so it would be some work
  247. to extend the web page to say
    "Please create an arm64 image"
  248. It would be very nice to have predefined
    configs for raspberry pi or
  249. all the very different boards
  250. but that would also be possible.
  251. I guess the next thing I will implement
    is other distributions
  252. because I know people are always asking it.
  253. Not you but the Ubuntu guys.
  254. Yesterday I did the first test with Ubuntu
    bionic, the LTS release
  255. and FAI just works out of the box with it.
  256. So what I have to do is to integrate it
    in these FAI.me processing scripts.
  257. Ready-to-go cloud images for the big
    cloud providers.
  258. That's only a different FAI config space
    that I have to use.
  259. Currently, for example, in what I call
    cloud images, I do not install
  260. the package cloud image.
  261. That's needed for all the ones.
  262. I'm also working in the Debian cloud team
    and this team decided 2 years ago
  263. that the tool chain in the future for
    the official Debian package will be FAI.
  264. Amazon is already using it, so if you
    boot or if you use a Debian cloud image
  265. in Amazon, Noah Meyerhans did this and
    he's using the FAI tool chain for it.
  266. Google is not yet using it because there was
    a very small problem
  267. in a config file we had one space too much
  268. which caused grub to hang forever
  269. and that was the reason why they decided
    for Stretch to use their own tool chain.
  270. But the things are working so we have
    the config space also for Google.
  271. And also for Azure, some people from
    Credativ did this.
  272. The Debian cloud team already has
    the FAI configuration for
  273. the big tool providers,
    cloud providers.
  274. We could also think on a more generic
    FAI installation image.
  275. It's an image that you would boot up
    and then enter your job id of the web page
  276. and then the configuration would be
    downloaded
  277. and the packages would be just
    received from the internet.
  278. That was one…
  279. So, the image would be much smaller
    because the packages do not need to be
  280. on the installation image.
  281. It's also possible to create live images
    with FAI.
  282. It is a little bit more…
  283. Currently, you need some manual work
    but that should be also possible
  284. to use FAI for creating live image
    and then also to provide this
  285. on the FAI.me web service.
  286. If you want to customize much more
    inside the image, you just say
  287. "Oh, I have some Ansible scripts that
    I want to execute at the very end"
  288. then I say "Ok, this is just a starting
    point, use the FAI.me service
  289. and if you're happy with the FAI tools,
    then set up your own FAI server,
  290. create your own configuration space
    and then you can do all the crazy things."
  291. So, how does FAI.me work internally.
  292. We have a web server where there are
    some CGI scripts and
  293. this is not the build server, so on the
    web server, you click "Submit"
  294. "Create my image", all the input
    is validated so you cannot make nasty things
  295. and then the CGI writes or creates
    a subdirectory and puts 2 files in it,
  296. a config and a meta file
  297. and writes a status
    "waiting for processing".
  298. Then, the other server, the build server
    reads this config and
  299. this is just an NFS mounted directory,
    and sees
  300. "Oh there's a new job I have to process".
  301. In this processing script we pass for
    some errors.
  302. What's happening very often that people
    type in a package that's not available
  303. and this will be detected and then a new
    version of the web page will pop up and say
  304. "Oh, when creating the package mirror,
    there was an error
  305. because this package was not known."
  306. Sometimes I have to…
  307. Every night, I create new nfsroots
    for Buster.
  308. If there are security updates, I have
    to create new nfsroots
  309. for Stretch and backports.
  310. I have some cleanup, so if a lot of jobs
    are created,
  311. the images are on the disk after,
  312. normally I say after one day I just
    remove the images
  313. so you have one day to download
    the images.
  314. There's 3 different configurations
  315. /etc/fai-stretch, /etc/buster,
    /etc/fai-stretch-bpo (backports)
  316. We need for the installation image
  317. We need a different nfsroot, but
    the config space that is shared
  318. about all configurations,
  319. so it doesn't matter if I install
  320. Stretch or Stretch backports or
    Buster,
  321. I can use the same FAI configuration.
  322. Also, for building the cloud images,
    I use the same FAI configuration.
  323. A new job is detected, then a copy of
    the configuration space will be made
  324. and it will be customized a little bit.
  325. So there are a very very few changes,
  326. for example I have to put the SSH key
    into your customized configuration space
  327. or the list of packages or the user and
    root password.
  328. Then we have two things, if we want to
    create the installation image,
  329. I first have to create the partial package
    mirror and then create the installation image
  330. For the cloud images, we do not need
    the nfsroot, we just need
  331. the configuration space which is
    customized a little bit
  332. and then we can just create the disk image
  333. so there's one step less compared to
    creating the installation ISO.
  334. The status on the web page will be
    updated, log files written
  335. and if the user said "Please send me
    an email if my job is ready",
  336. this will also be sent to the user.
  337. Then we have the ISO or the disk image
    and this will be copied back
  338. to the web server where the user can then
    download it.
  339. And since I have a lot of RAM
    in this machine,
  340. everything is run in RAM, very very nice.
  341. As I said, we need an nfsroot,
    a configuration space and FAI classes.
  342. This is a very central component in FAI
  343. and this is just a list of names.
  344. So in HOME_LVM, this is the class name,
    the FAI class we describe
  345. and I think this is that example:
  346. HOME_LVM describes how to partition
    the local hard disk.
  347. This is our very flexible tool where
    we can do LVM, cryptsetups,
  348. software RAIDs and so on.
  349. But for the FAI.me service, I just created
    4 different types of partitioning
  350. and this is the HOME_LVM example.
  351. So we have a list of classes and,
    as I said,
  352. just two commands for the installation
    image with a list of classes
  353. and for the cloud image, I have to say
    how big should the disk image be,
  354. the list of classes and what's the target
    file that should be created.
  355. Let's see if this is ready.
  356. Yes, it's ready.
  357. So…
  358. It's 1.1GB.
  359. Is this really the… oh yeah, raw.
  360. No problem, let's download it, it should
    be fast.
  361. This is the normal architecture if you use
    FAI in a client/server set up.
  362. You should just look on the left side
    where you see
  363. you need the config space, an nfsroot
    and a mirror
  364. and these parts will put onto the CD.
  365. If you set up a network installation thing,
  366. this is how things get from the server
    to the client.
  367. For the software installation, we have
    another subdirectory called package_config
  368. and there you also see several files
    where the file name is a FAI class.
  369. Since in the FAI.me service every client
    belongs to the class DEBIAN,
  370. it will install the packages that are listed
    on the top
  371. and here we have an other class, NONFREE
  372. These packages are only installed if
    you also said
  373. "Please install the nonfree packages"
  374. and this is mapped to a FAI class
    called NONFREE.
  375. And there's an other class for AMD64
    and so on.
  376. Some references.
  377. In the past, it looked more like this
    when I said
  378. "Oh, who's using FAI?" and during
    the last month I collected some logos
  379. just because it's much nicer.
  380. Let's see if the download was ready.
  381. We unzstd the FAI.me image,
    faime-013Z image
  382. On the web site, I said I want to have
    a 8GB partition,
  383. so now let's see how big it is.
  384. The file is 8, but since it's a sparse file
    it's only 3.5GB
  385. and the compressed was 1.1GB.
  386. Now I use my wrapper
  387. and I say "Boot from disk" and this is
    the FAI.me raw image, disk image
  388. that should be booted up.
  389. That's it.
  390. debian/fai
  391. Let's see if emacs is installed, yes.
  392. Gimp is already there, hopefully, and
    the blue midnight commander.
  393. Let's see.
  394. Questions.
  395. [Q] I'm using the preseed file for
    the debian-installer,
  396. do you have a conversion between
    your syntax and your configuration files
  397. and the preseed file or maybe can you add
    a download button for the preseed file
  398. to your web site because I think it's
    rather nice to have it displayed
  399. in web site first.
  400. [A] I'm not using the debian-installer.
  401. I use preseeding, yes, the debconf
    preseeding for the normal packages
  402. you can do this also in FAI and it's
    the same format
  403. you get with debconf-get-selections.
  404. And what you get is you can download
    your own FAI config space
  405. and this includes all information you need
    to set up,
  406. to do this mirror FAI CD or the FAI disk
    image command.
  407. But you cannot convert this config into
    a d-i preseeding or vice versa,
  408. that's not possible.
  409. Because for example, for the partitioning
    part I do not like to create
  410. from my disk config partman preseeding
    file.
  411. You can pay me a lot of money, I will
    never do this.
  412. You know that the partman preseeding
    is very ugly and very heavy.
  413. For other things, yes, selection of,
    for example, the selection of the language
  414. These are the normal preseeding we use.
  415. And the list of packages, task selec…
  416. I think it's much easier to do this in
    the FAI configuration than to create
  417. a debian-installer preseeding.
  418. And why use d-i if this works for you?
  419. [Q] d-i works as well for me.
  420. [A] Yes, then fine, use it.
  421. [Q] Hi Thomas. Thank you very much for
    this new feature in the FAI project,
  422. it's very nice and I found very great that
    you have the output of the commands
  423. that you used to create the ISO image or
    the cloud file.
  424. A question that I have is, in which servers
    are located the files that we create,
  425. the ISO or the cloud.
  426. Is it a server that you own host or…
  427. [A] Trust me.
  428. Currently,
  429. both the web server and the FAI.me
    processing build server are run
  430. on two machines at the university where
    I work as a system administrator
  431. so that's also where we have a very fast
    connection.
  432. The CGI script and shell script that is
    processing these jobs is currently
  433. not open source.
  434. There are plans to do this, I'm not sure
    when.
  435. If you want to reproduce the things, you
    have the config file and you can download
  436. the FAI software and use these one or two
    commands to reproduce it.
  437. Some people said "Oh, very nice service,
    I would like to set up in my company".
  438. Then please yes, contact me and…
  439. Currently there are no concrete plans
    to make these background scripts open source
  440. but it will be in some future.
  441. But currently, you have to trust me as
    you also have to trust the package maintainers
  442. that will be installed there.
  443. But you can verify it or say "I do not
    trust Thomas but I will just grab
  444. the FAI config space and this on my own".
  445. [Q] Thank you.
  446. [Q] There's a question from the internet.
  447. Why not use a proper job queuing system
    like grid engine or similar?
  448. [A] I'm using grid engine at work for
    different things.
  449. It started as a very simple project, so
    in the end it's just a loop which
  450. checks if there's new jobs on that.
  451. Currently, I do not process jobs
    in parallel, currently there's no need for it
  452. If this project will be very successful,
    yeah, I have to use a queuing system.
  453. It's, yeah, a very simple script.
  454. But it would be also possible with
    a proper queuing system.
  455. More questions?
  456. [Q] I have a bunch of questions.
  457. First, what is it that you use for
    partitioning?
  458. [A] I'm using a Perl script that we wrote
    several years ago in FAI
  459. and we defined this config file,
    this package config
  460. and the Perl script parses this script
    and then executes the parted and mkfs command
  461. which you can see in the log files, so if
    you want to see what does FAI do
  462. after parsing this, which commands are
    executed, you see everything
  463. on the log files.
  464. [Q] Right, but so you turn this text
    into partitioning…
  465. [A] commands, yeah.
  466. [Q] But the text looks like this,
    like with the spaces and everything.
  467. [A] You can use more or less spaces
    or do you like,
  468. should I convert it to XML?
  469. [Q] Ok, then my next question is
  470. what are you using the nfsroot for when
    you're generating the images?
  471. [A] The nfsroot is used only for the
    installation image.
  472. When I do the installation, I need to boot
    the machine as a diskless client,
  473. so it's just what the debian-installer
    loads into RAM,
  474. you need a running Linux system.
  475. This is our nfsroot, on the installation
    image.
  476. When you boot installation image, this
    nfsroot with all the commands we need
  477. are started without using the local disk
    and then we can do
  478. everything on the disk, /root and /target
    and so on.
  479. The nfsroot is the system that is running
    during the installation.
  480. [Q] Ok, but there's no need for this to be
    nfs, it could be a
  481. [A] It's called nfsroot.
  482. This is very common that people call it
    nfsroot
  483. and if you have this network installation
    thing, it's really an nfsroot.
  484. But you're right.
  485. On the installation ISO, it's not nfs,
    it's just a local file system, yes.
  486. [Q] Alright. So, I think it's my last
    comment.
  487. You have the ISO from which you install
    and when you install from the ISO
  488. you're installing then packages on the
    machine, and then you have the image
  489. which is like a disk image that has
    the packages already installed,
  490. so you skip the installing step.
  491. Have you thought about having
    an intermediate thing
  492. where you download an image that
    already has the packages installed?
  493. [A] That's also possible.
  494. When you do an installation, before you
    can change root in the new system
  495. for adding packages, you have to call
    debootstrap.
  496. What we do, we call debootstrap once and
    create a tar file out of it.
  497. This is our minimal… in the former days
    it was the floppy disk,
  498. our base tar.gz file,
  499. so you could exchange the minimal tar file
    with whatever tar file you have.
  500. That's for example what we do if we install
    Ubuntu.
  501. We boot the installation system which is
    a Debian system
  502. and then create the local filesystem and
    extract an Ubuntu base image
  503. and then we can change root into
    the Ubuntu or the same for CentOS and so on
  504. then we can change root into the other
    Linux system and add packages there.
  505. If you have already a bigger image with
    some more packages added there,
  506. it's very easy to say "Do not extract the
    Debian Stretch image
  507. but use my image which also
    includes other tools."
  508. And if you are fine with that, you can
    just extract the tar file.
  509. [Q] Ok. Any more questions?
  510. [Q] The heading is in german.
  511. [A] What?
  512. [Q] The heading is in german.
  513. [A] Oh, because it's a copy of my german
    slides.
  514. Thank you for this.
  515. And, what's also missing.
  516. The web page, where you can select german
    or other languages,
  517. it would be nice if people are interested
    to help translate them
  518. so that it's more easy for people that
    do not speak english
  519. to use the website and create their own
    installation image with their language.
  520. [Q] Someone on the stream said that
    the fai.me web site is not yours
  521. and it's a hack thing, it's a scam, you go
    there and get hacked.
  522. Do you have any plans to try to buy
    the domain because it's pretty confusing.
  523. The first thing I would have done
    by seeing that talk would have been
  524. to go to fai.me.
  525. [A] Yeah, I was thinking about which name
    I should choose.
  526. I didn't check which web domains are free
    and in then end I thought
  527. "Do I like to have a different domain name
    for the service?"
  528. But since it's only a part of the FAI
    project, I thought,
  529. and technically it was also easier just
    to host it under a subdirectory
  530. and yeah, if people now grab the fai.me
    domain and do other things with it, yeah.
  531. I think one question would be to use
    a debian.net or maybe debian.org domain
  532. because people trust much more.
  533. I get a lot of comments "Oh this would
    be very nice if this would be hosted
  534. on a Debian machine"
  535. but this would be much more complicated
    because the DSA team
  536. has much more restriction what to execute
    on their machines.
  537. currently, we need root access because
    we mount some things
  538. and DSA would not give me root access
    on any Debian machine.
  539. That's the same problem we have
    in the Debian cloud team
  540. where we want to create the official
    images for the cloud providers
  541. where the Debian cloud team will also
    not have root access
  542. and so there's much more work to get
    empty virtual machines
  543. starting up, putting data into it,
    creating the images,
  544. receiving them from inside the image.
  545. And since on those machines I have
    root access, that's much easier for me.
  546. We are out of time, so thank you Thomas.
  547. [Applause]