wip
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Paolo Asperti 2020-03-31 22:50:25 +02:00
parent c5126e014d
commit 726dcc5387
Signed by: paspo
GPG Key ID: 06D46905D19D5182
3 changed files with 12 additions and 4 deletions

View File

@ -7,12 +7,14 @@ This tool automates the generation of LibreSchool iso
## how to locally create your ISO file ## how to locally create your ISO file
First, download the build container: First, download the build container:
```
```bash
docker pull registry.libreschool.org/libreschool-automation/libreschool-iso-builder:latest docker pull registry.libreschool.org/libreschool-automation/libreschool-iso-builder:latest
``` ```
Then start it with these parameters: Then start it with these parameters:
```
```bash
docker run --rm \ docker run --rm \
-v "$PWD:/drone/src" \ -v "$PWD:/drone/src" \
-w "/drone/src" \ -w "/drone/src" \
@ -20,7 +22,8 @@ docker run --rm \
``` ```
If you want to skip the download of the source ISO, you can provide an already downloaded one: If you want to skip the download of the source ISO, you can provide an already downloaded one:
```
```bash
docker run --rm \ docker run --rm \
-v "$PWD:/drone/src" \ -v "$PWD:/drone/src" \
-v "$HOME/Downloads/nethserver-7.6.1810-x86_64.iso:/source.iso:ro" \ -v "$HOME/Downloads/nethserver-7.6.1810-x86_64.iso:/source.iso:ro" \
@ -29,17 +32,20 @@ docker run --rm \
``` ```
## Components ## Components
This ISO creation script has 3 main components: This ISO creation script has 3 main components:
- the *anaconda* folder: this stores all the customizations for the installer, basically only images; - the *anaconda* folder: this stores all the customizations for the installer, basically only images;
- the *root* folder: this contains all the custom files that are applied over the NethServer source ISO; - the *root* folder: this contains all the custom files that are applied over the NethServer source ISO;
- the *packages.list* file: this contains all the URLs of the packages required for this customization; - the *packages.list* file: this contains all the URLs of the packages required for this customization;
## How to modify the ISO ## How to modify the ISO
The isolinux background image (the one that's displayed when booted from DVD or non-UEFI USB) is stored in root/isolinux/splash.jpg. The isolinux background image (the one that's displayed when booted from DVD or non-UEFI USB) is stored in root/isolinux/splash.jpg.
The other images (used in the installer) are in anaconda/usr/share/anaconda/pixmaps. The other images (used in the installer) are in anaconda/usr/share/anaconda/pixmaps.
To add a package, you have to include the URL in the *package.list* file, then you have to tell the installer to use it: in the kickstart files (the ones in the /ks folder of the ISO), in the "%packages" section, we specify the packages and the package groups that are going to be installed; if you think that the package is needed in a specific installation type, then modify the kickstart file. Otherwise, if the package should be installed in all installation types, you have to modify the package-group: edit root/libreschool/comps.xml and add the package name here; the "libreschool-iso" package group is always installed. To add a package, you have to include the URL in the *package.list* file, then you have to tell the installer to use it: in the kickstart files (the ones in the /ks folder of the ISO), in the "%packages" section, we specify the packages and the package groups that are going to be installed; if you think that the package is needed in a specific installation type, then modify the kickstart file. Otherwise, if the package should be installed in all installation types, you have to modify the package-group: edit root/libreschool/comps.xml and add the package name here; the "libreschool-iso" package group is always installed.
## TODO: ## TODO
- [ ] FIX images - [ ] FIX images
- [x] package group - [x] package group

View File

@ -15,6 +15,7 @@ libcom_err
libreschool-adminusers libreschool-adminusers
libreschool-client-manager libreschool-client-manager
libreschool-pxeserver libreschool-pxeserver
libreschool-proxy
libreschool-release libreschool-release
libreschool-startpage libreschool-startpage
libss libss

View File

@ -27,6 +27,7 @@
<packagereq type='mandatory'>libreschool-client-manager</packagereq> <packagereq type='mandatory'>libreschool-client-manager</packagereq>
<packagereq type='mandatory'>libreschool-adminusers</packagereq> <packagereq type='mandatory'>libreschool-adminusers</packagereq>
<packagereq type='mandatory'>libreschool-pxeserver</packagereq> <packagereq type='mandatory'>libreschool-pxeserver</packagereq>
<packagereq type='mandatory'>libreschool-proxy</packagereq>
<packagereq type='mandatory'>nethserver-usercsvimport</packagereq> <packagereq type='mandatory'>nethserver-usercsvimport</packagereq>
</packagelist> </packagelist>
</group> </group>