Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ setup.json

# dogus
containers/
!containers/.gitkeep
!containers/.gitkeep

images/prod/build
images/prod/output-*
images/dev/build
images/dev/output-*
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]
### Changed
- Upgrade to Ubuntu 24.04; #461
- Upgrade fail2ban to 1.1.0
- Upgrade terraform to 1.9.1
- Convert Packer templates to HCL format
- You need to specify a VirtualBox version below 7 on Packer image build
- Update images in docs to improve compliance

### Removed
- Removed ctop
- Removed libreadline-gplv2-dev

## [v20.04.6-1] - 2024-07-09
### Changed
- Upgrade to Docker 26.1.4
- Upgrade to Ubuntu 20.04.6

Expand Down
11 changes: 11 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,28 @@ node('docker') {
shellCheck("./install/setup-message.sh")
shellCheck("./install/sync-files.sh")
shellCheck("./install.sh")
shellCheck("./images/scripts/commons/ces_apt.sh")
shellCheck("./images/scripts/commons/cleanup.sh")
shellCheck("./images/scripts/commons/dependencies.sh")
shellCheck("./images/scripts/commons/docker.sh")
shellCheck("./images/scripts/commons/etcd.sh")
shellCheck("./images/scripts/commons/fail2ban.sh")
shellCheck("./images/scripts/commons/grub.sh")
shellCheck("./images/scripts/commons/guestadditions.sh")
shellCheck("./images/scripts/commons/minimize.sh")
shellCheck("./images/scripts/commons/networking.sh")
shellCheck("./images/scripts/commons/sshd.sh")
shellCheck("./images/scripts/commons/subvolumes.sh")
shellCheck("./images/scripts/commons/terraform.sh")
shellCheck("./images/scripts/commons/update.sh")
shellCheck("./images/scripts/dev/dependencies.sh")
shellCheck("./images/scripts/dev/vagrant.sh")
shellCheck("./images/scripts/prod/sshd_security.sh")
}

stage('Packer validate') {
sh 'cd images/dev && packer init . && packer validate dev.pkr.hcl'
sh 'cd images/prod && packer init . && packer validate -var "timestamp=$(date +%Y%m%d)" prod.pkr.hcl'
}
}
}
13 changes: 7 additions & 6 deletions docs/development/building_basebox_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,21 @@ new development instance via Vagrant.
git clone https://github.com/cloudogu/k8s-ecosystem.git
```

If you are using VirtualBox 7, check out the `feature/virtualbox7` branch!
**2. Build image**

```bash
git checkout feature/virtualbox7
cd <k8s-ecosystem-path>/images/dev/
packer init .
packer build dev.pkr.hcl
```

**2. Build image**
If you are using a VirtualBox version below 7, you need to set a build variable:

```bash
cd <k8s-ecosystem-path>/images/
packer build template.dev.json
packer build -var virtualbox-version-lower-7=true dev.pkr.hcl
```

**3. Wait**

The image building process takes about 15 minutes, depending on your hardware and internet connection. Packer should
create a resulting basebox named `ecosystem-basebox.box` in the `image/build` folder.
create a resulting basebox named `ecosystem-basebox.box` in the `images/dev/build` folder.
17 changes: 10 additions & 7 deletions docs/development/image-build_de.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@
## 1. Schauen Sie sich das ecosystem-Repository an
* `git clone https://github.com/cloudogu/ecosystem.git`
## 2. Bauen Sie das/die Image(s) mit Packer
* `cd <ecosystem-pfad>/images/`
* `packer build -var "timestamp=$(date +%Y%m%d)" template.prod.json`
* `cd <ecosystem-pfad>/images/prod/`
* `packer init .`
* `packer build -var "timestamp=$(date +%Y%m%d)" prod.pkr.hcl`
* Baut alle Images für die Produktion
* Um nur einen bestimmten Build für einen der Hypervisoren zu erhalten, verwenden Sie den Parameter `--only=<Image-Typ>`. Mit ihm kann der Image-Typ auf `ecosystem-virtualbox`, `ecosystem-vmware` oder `ecosystem-qemu` konfiguriert werden
* Um nur einen bestimmten Build für einen der Hypervisoren zu erhalten, verwenden Sie den Parameter `--only=<Image-Typ>`. Mit ihm kann der Image-Typ auf `virtualbox-iso.ecosystem-virtualbox`, `qemu.ecosystem-qemu` oder `vmware-iso.ecosystem-vmware` konfiguriert werden
* Der Standardbenutzer ist `ces-admin` mit dem Passwort `ces-admin` (wird im Setup-Prozess geändert)
* `packer build template.dev.json`
* `cd <ecosystem-pfad>/images/dev/ && packer init . && packer build dev.pkr.hcl`
* Erzeugt ein Image für die Entwicklung
* Fügt Entwicklungswerkzeuge wie `htop` und `jq` zum vm hinzu.
* Fügt Entwicklungswerkzeuge wie `htop` und `jq` zur VM hinzu.
Eine vollständige Liste ist in den folgenden Dateien zu finden:
* [dependencies.sh](https://github.com/cloudogu/ecosystem/blob/develop/images/scripts/dev/dependencies.sh)
* [vagrant.sh](https://github.com/cloudogu/ecosystem/blob/develop/images/scripts/dev/vagrant.sh)
* Der Standardbenutzer ist `vagrant` mit dem Passwort `vagrant`.
* Sollte eine VirtualBox-Version kleiner als 7 zum Bauen benutzt werden, muss der zusätzliche Parameter `virtualbox-version-lower-7` benutzt werden, bspw. so: `packer build -var virtualbox-version-lower-7=true dev.pkr.hcl`

## 3. Warten
* Der Image-Erstellungsprozess dauert etwa 45 Minuten, abhängig von Ihrer Hardware
* Der Image-Erstellungsprozess dauert etwa 20 Minuten, abhängig von Ihrer Hardware und der Geschwindigkeit ihres Internetanschlusses.

## 4. Beenden
* Das/die Image(s) finden Sie in `<ecosystem-Pfad>/images/output-*`.
* Das/die Image(s) finden Sie in `<ecosystem-Pfad>/images/dev/build` bzw. `<ecosystem-Pfad>/images/prod/output-*`.
15 changes: 9 additions & 6 deletions docs/development/image-build_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@
## 1. Check out the ecosystem repository
* `git clone https://github.com/cloudogu/ecosystem.git`
## 2. Build the image(s) with packer
* `cd <ecosystem-path>/images/`
* `packer build -var "timestamp=$(date +%Y%m%d)" template.prod.json`
* `cd <ecosystem-path>/images/prod/`
* `packer init .`
* `packer build -var "timestamp=$(date +%Y%m%d)" prod.pkr.hcl`
* Builds all images for production
* To get only a specific build for one of the hypervisors, use the`--only=<image-type>` parameter. With it, the image type can be configured to `ecosystem-virtualbox`, `ecosystem-vmware` or `ecosystem-qemu`
* To get only a specific build for one of the hypervisors, use the`--only=<image-type>` parameter. With it, the image type can be configured to `virtualbox-iso.ecosystem-virtualbox`, `qemu.ecosystem-qemu` or `vmware-iso.ecosystem-vmware`.
* The default user is `ces-admin` with password `ces-admin` (will be changed in setup process)
* `packer build template.dev.json`
* `cd <ecosystem-path>/images/dev && packer init . && packer build dev.pkr.hcl`
* Builds an image for development
* Adds development tools like `htop` and `jq` to the the vm.
A full list can be found in the following files:
* [dependencies.sh](https://github.com/cloudogu/ecosystem/blob/develop/images/scripts/dev/dependencies.sh)
* [vagrant.sh](https://github.com/cloudogu/ecosystem/blob/develop/images/scripts/dev/vagrant.sh)
* The default user is `vagrant` with password `vagrant`
* If you are using a VirtualBox version below 7 to build the images, you have to set the additional build parameter `virtualbox-version-lower-7`, e.g.: `packer build -var virtualbox-version-lower-7=true dev.pkr.hcl`

## 3. Wait
* The image build process lasts around 45 minutes, depending on your hardware
* The image build process lasts around 20 minutes, depending on your hardware and internet connection speed.

## 4. Finish
* The image(s) can be found in `<ecosystem-path>/images/output-*`
* The image(s) can be found in `<ecosystem-path>/images/dev/build` and `<ecosystem-path>/images/prod/output-*`.
10 changes: 5 additions & 5 deletions docs/development/releasing_basebox_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
0. Make a release of ecosystem, if not already existent, as described in [Release the ecosystem](release_ecosystem_en.md)
1. Build a basebox as described in [Building Basebox](building_basebox_en.md)
2. Add a version to the basebox
- Change the basebox name from `images/build/ecosystem-basebox.box` to `images/build/basebox-virtualbox-v20.04.X-Y.box`
3. Create a new folder `v20.04.X-Y` in the `basebox/virtualbox` folder in the [Google Cloud Bucket](https://console.cloud.google.com/storage/browser/cloudogu-ecosystem?project=cloudogu-backend)
- Change the basebox name from `images/dev/build/ecosystem-basebox.box` to `images/dev/build/basebox-virtualbox-v24.04.X-Y.box`
3. Create a new folder `v24.04.X-Y` in the `basebox/virtualbox` folder in the [Google Cloud Bucket](https://console.cloud.google.com/storage/browser/cloudogu-ecosystem?project=cloudogu-backend)
4. Upload the box to the corresponding versioned folder
- e.g. upload the `images/build/basebox-virtualbox-v20.04.X-Y.box` into the `basebox/virtualbox/v20.04.X-Y` folder
- e.g. upload the `images/dev/build/basebox-virtualbox-v24.04.X-Y.box` into the `basebox/virtualbox/v24.04.X-Y` folder
5. Edit the file's access permissions
- Add an entry "Public/allUsers" and grant it "Reader" permissions
6. Adapt the Vagrantfile to match the newly released box
- Adapt the basebox_version (to `v20.04.X-Y`)
- Adapt the basebox_checksum (get it via `sha256sum images/build/basebox-virtualbox-v20.04.X-Y.box`)
- Adapt the basebox_version (to `v24.04.X-Y`)
- Adapt the basebox_checksum (get it via `sha256sum images/dev/build/basebox-virtualbox-v24.04.X-Y.box`)
- Test it via `vagrant up`
- Commit and push
24 changes: 11 additions & 13 deletions docs/operations/ubuntu_upgrade_de.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
# Upgrade von Ubuntu 18.04 auf 20.04
# Upgrade von Ubuntu 20.04 auf 24.04

## 1. Upgrade von Ubuntu 18.04 auf 20.04
## 1. Upgrade von Ubuntu 20.04 auf 24.04

Sie können die Ubuntu-Distribution, auf der das Cloudogu EcoSystem aufgebaut ist, wie jedes andere Ubuntu-basierte System aktualisieren. Eine gute Referenz über die zu unternehmenden Schritte finden Sie hier: https://www.linuxcloudvps.com/blog/how-to-update-your-server-from-ubuntu-18-04-to-ubuntu-20-04/
Sie können die Ubuntu-Distribution, auf der das Cloudogu EcoSystem aufgebaut ist, wie jedes andere Ubuntu-basierte System aktualisieren.

## 2. Anpassen der apt-Konfiguration

Nachdem Sie Ihr EcoSystem auf Ubuntu 20.04 aktualisiert haben, müssen Sie einige der EcoSystem-spezifischen apt-Konfiguration anpassen:
Nachdem Sie Ihr EcoSystem auf Ubuntu 24.04 aktualisiert haben, müssen Sie einige der EcoSystem-spezifischen apt-Konfiguration anpassen:

- Passen Sie die Datei `/etc/apt/sources.list.d/ces.list` von 18.04 (bionic) auf 20.04 (focal) an
- Fügen Sie diese Zeile ein: `deb [arch=amd64] https://apt.cloudogu.com/ces/ focal main`
- Entfernen Sie alte Zeilen wie `deb [arch=amd64] https://apt.cloudogu.com/ces/ bionic main`
- Passen Sie die Datei `/etc/apt/sources.list.d/docker.list` von 20.04 (focal) auf 24.04 (noble) an
- Fügen Sie diese Zeile ein: `deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable`
- Entfernen Sie alte Zeilen wie `deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable`

- Passen Sie die Datei `/etc/apt/sources.list.d/docker.list` von 18.04 (bionic) auf 20.04 (focal) an
- Fügen Sie diese Zeile ein: `deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable`
- Entfernen Sie alte Zeilen wie `deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable`
- Passen Sie die Datei `/etc/apt/sources.list.d/hashicorp.list` von 20.04 (focal) auf 24.04 (noble) an
- Fügen Sie diese Zeile ein: `deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com noble main`
- Entfernen Sie alte Zeilen wie `deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com focal main`

- Passen Sie die Datei `/etc/apt/sources.list.d/hashicorp.list` von 18.04 (bionic) auf 20.04 (focal) an
- Fügen Sie diese Zeile ein: `deb [arch=amd64] https://apt.releases.hashicorp.com focal main`
- Entfernen Sie alte Zeilen wie `deb [arch=amd64] https://apt.releases.hashicorp.com bionic main`
- Belassen Sie die `/etc/apt/sources.list.d/ces.list` auf dem `focal`-Codename.

- Überprüfen Sie Ihre Arbeit, indem Sie `sudo apt update` ausführen. Es sollte keine Fehler melden.

Expand Down
24 changes: 11 additions & 13 deletions docs/operations/ubuntu_upgrade_en.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
# Upgrading from Ubuntu 18.04 to 20.04
# Upgrading from Ubuntu 20.04 to 24.04

## 1. Upgrade Ubuntu 18.04 to 20.04
## 1. Upgrade Ubuntu 20.04 to 24.04

You can upgrade the Ubuntu distribution the Cloudogu EcoSystem is built on just like in any other Ubuntu based system. A good reference about the steps to take can be found here: https://www.linuxcloudvps.com/blog/how-to-update-your-server-from-ubuntu-18-04-to-ubuntu-20-04/
You can upgrade the Ubuntu distribution the Cloudogu EcoSystem is built on just like in any other Ubuntu based system.

## 2. Adjust apt configuration

After you have upgraded your EcoSystem to Ubuntu 20.04, you have to adapt some of the EcoSystem-specific apt configuration:
After you have upgraded your EcoSystem to Ubuntu 24.04, you have to adapt some of the EcoSystem-specific apt configuration:

- Adjust the file `/etc/apt/sources.list.d/ces.list` from 18.04 (bionic) to 20.04 (focal)
- Insert this line: `deb [arch=amd64] https://apt.cloudogu.com/ces/ focal main`
- Remove old lines like `deb [arch=amd64] https://apt.cloudogu.com/ces/ bionic main`
- Adjust the file `/etc/apt/sources.list.d/docker.list` from 20.04 (focal) to 24.04 (noble)
- Insert this line: `deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable`
- Remove old lines like `deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable`

- Adjust the file `/etc/apt/sources.list.d/docker.list` from 18.04 (bionic) to 20.04 (focal)
- Insert this line: `deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable`
- Remove old lines like `deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable`
- Adjust the file `/etc/apt/sources.list.d/hashicorp.list` from 20.04 (focal) to 24.04 (noble)
- Insert this line: `deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com noble main`
- Remove old lines like `deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com focal main`

- Adjust the file `/etc/apt/sources.list.d/hashicorp.list` from 18.04 (bionic) to 20.04 (focal)
- Insert this line: `deb [arch=amd64] https://apt.releases.hashicorp.com focal main`
- Remove old lines like `deb [arch=amd64] https://apt.releases.hashicorp.com bionic main`
- Keep the `focal` codename in the `/etc/apt/sources.list.d/ces.list` file.

- Check your work by running `sudo apt update`. It should report no errors.

Expand Down
10 changes: 5 additions & 5 deletions docs/operations/unattended_upgrades_de.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ Um zu überprüfen, ob automatische Updates aktiviert sind, führen Sie den Befe
Die Ausgabe sollte lauten: `APT::Periodic::Unattended-Upgrade "1";`

# Troubleshooting
## Ubuntu-Versionen <= 16.04 erhalten keine apt-Updates mehr
Seit April 2021 wird die LTS-Version von [Ubuntu 16.04 nicht mehr mit Updates versorgt](https://ubuntu.com/about/release-cycle).
Aus diesem Grund unterstützt auch das Cloudogu Ecosystem (CES) die Ubuntu-Version 16.04 nicht weiter. Zusätzlich wurde auch das apt-Repository von Cloudogu geändert, aus dem die apt-Pakete des Cloudogu EcoSystem gezogen werden.
Sollten Sie nun eine ältere Cloudogu-Version nutzen, legen wir Ihnen nahe Ihre Ubuntu-Version auf mindestens 18.04 zu updaten. Bitte führen Sie zuerst ein Update mit folgenden Befehlen aus:
## Ubuntu-Versionen <= 18.04 erhalten keine apt-Updates mehr
Seit April 2023 wird die LTS-Version von [Ubuntu 18.04 nicht mehr mit Updates versorgt](https://ubuntu.com/about/release-cycle).
Aus diesem Grund unterstützt auch das Cloudogu Ecosystem (CES) die Ubuntu-Version 18.04 nicht weiter. Zusätzlich wurde auch das apt-Repository von Cloudogu geändert, aus dem die apt-Pakete des Cloudogu EcoSystem gezogen werden.
Sollten Sie nun eine ältere Cloudogu-Version nutzen, legen wir Ihnen nahe Ihre Ubuntu-Version auf mindestens 20.04 zu updaten. Bitte führen Sie zuerst ein Update mit folgenden Befehlen aus:
```shell
apt-get update
apt-get upgrade
```
Das Paket `ces-commons` sollte nun in mindestens Version `0.8.0` installiert sein. Dies lässt sich mit dem Befehl `apt list | grep ces-commons` überprüfen.

Erhalten Sie weiterhin keine Updates für CES-Pakete empfehlen wir die Datei `/etc/apt/sources.list.d/ces.list` zu überprüfen. Diese sollte eine Zeile der Form `deb [arch=amd64] https://apt.cloudogu.com/ces/ bionic main` enthalten.
Erhalten Sie weiterhin keine Updates für CES-Pakete empfehlen wir die Datei `/etc/apt/sources.list.d/ces.list` zu überprüfen. Diese sollte eine Zeile der Form `deb [arch=amd64] https://apt.cloudogu.com/ces/ focal main` enthalten.
10 changes: 5 additions & 5 deletions docs/operations/unattended_upgrades_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ To validate that automatic updates are activated, run the command `apt-config du
The output should be: `APT::Periodic::Unattended-Upgrade "1";`

## Troubleshooting
## Ubuntu versions <= 16.04 no longer receive apt updates.
As of April 2021, the LTS version of [Ubuntu 16.04 will no longer receive updates](https://ubuntu.com/about/release-cycle).
For this reason, the Cloudogu Ecosystem (CES) will also no longer support Ubuntu version 16.04. In addition, Cloudogu's apt repository, from which the Cloudogu EcoSystem apt packages are pulled, has also been changed.
If you are now using an older Cloudogu version, we suggest you update your Ubuntu version to at least 18.04. Please run an update with the following commands first:
## Ubuntu versions <= 18.04 no longer receive apt updates.
As of April 2023, the LTS version of [Ubuntu 18.04 will no longer receive updates](https://ubuntu.com/about/release-cycle).
For this reason, the Cloudogu Ecosystem (CES) will also no longer support Ubuntu version 18.04. In addition, Cloudogu's apt repository, from which the Cloudogu EcoSystem apt packages are pulled, has also been changed.
If you are now using an older Cloudogu version, we suggest you update your Ubuntu version to at least 20.04. Please run an update with the following commands first:
```shell
apt-get update
apt-get upgrade
```
The package `ces-commons` should now be installed in at least version `0.8.0`. This can be checked with the command `apt list | grep ces-commons`.

If you still do not receive updates for CES packages we recommend to check the file `/etc/apt/sources.list.d/ces.list`. This should contain a line of the form `deb [arch=amd64] https://apt.cloudogu.com/ces/ bionic main`.
If you still do not receive updates for CES packages we recommend to check the file `/etc/apt/sources.list.d/ces.list`. This should contain a line of the form `deb [arch=amd64] https://apt.cloudogu.com/ces/ focal main`.
Loading