Skip to content

Commit

Permalink
Update deploy_blog.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
53845714nF committed Sep 22, 2024
1 parent 02067df commit 032881d
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 23 deletions.
48 changes: 28 additions & 20 deletions .github/workflows/deploy_blog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,36 @@ on:
- main

jobs:
deploy:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Hugo
run: |
wget https://github.com/gohugoio/hugo/releases/download/v0.117.0/hugo_0.117.0_Linux-64bit.tar.gz
tar -xf hugo_0.117.0_Linux-64bit.tar.gz
mv hugo /usr/local/bin/hugo
hugo version
- name: Install Hugo
run: |
sudo apt install hugo
- name: Build Hugo Site
run: |
hugo -D
find public -name "*.html" | xargs sed -i '4i<meta name="theme-color" content="#6495ed" />'
- name: Build Hugo Site
run: |
hugo -D
find public -name "*.html" | xargs sed -i '4i<meta name="theme-color" content="#6495ed" />'
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
deploy:
runs-on: ubuntu-latest
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
28 changes: 25 additions & 3 deletions content/blog/distrobuilder/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ tags: ["lxc", "Proxmox", "Linux", "Distrobuilder", "golang", "containers", "Open

Hast du dich jemals gefragt, wie man eigene Images für LXC erstellt und diese dann in Proxmox integriert?
Obwohl ich bereits einige Zeit mit LXC gearbeitet habe, bin ich nie wirklich dazu gekommen, mein eigenes Image zu erstellen.
Neugierig geworden, begab ich mich auf die Suche und stieß auf [Distrobuilder](https://github.com/lxc/distrobuilder) – ein Tool zum Erstellen von Images für LXC und LXD, das in Go geschrieben ist.
(Distrobuilder kann auch VM-Images erstellen, aber das habe ich noch nicht ausprobiert.)
Neugierig geworden, begab ich mich auf die Suche und stieß auf [Distrobuilder](https://github.com/lxc/distrobuilder) – ein Tool zum Erstellen von Images für LXC und LXD, das in Golang geschrieben ist. Es bietet auch die Möglichkeit VM zu erstellen, dies habe ich gleich mitprobiert.


## Installation ✨
Expand All @@ -34,7 +33,7 @@ Im Template-Verzeichnis führte ich dann den folgenden Befehl aus:
distrobuilder build-lxc images/openwrt.yaml -o image.variant=default -o image.release=23.05
{{< /codeWide >}}

Dieser Befehl erstellt ein `rootfs.tar.xz` und `metadata.tar.xz`. Das `rootfs.tar.xz` kann dann mit `scp` oder `rsync` auf den Proxmox-Server kopiert werden.
Dieser Befehl erstellt die Dateien: `rootfs.tar.xz` und `metadata.tar.xz`. Das `rootfs.tar.xz` kann dann mit `scp` oder `rsync` auf den Proxmox-Server kopiert werden.

Es hat eine Weile gedauert, bis ich verstand, dass das `rootfs.tar.xz` ausreicht, um einen Container zu erstellen.
Ich war der Meinung, dass ich noch daraus ein Image erstellen müsste. Aber das ist nicht der Fall.
Expand All @@ -47,6 +46,29 @@ pct create 107 ./rootfs.tar.xz --unprivileged 1 --ostype unmanaged --hostname op

Nach einigen Einstellungen an den Netzwerkschnittstellen und der Container war einsatzbereit und konnte gestartet werden.

## VM erstellen 🔨
Bevor mit der erstellung von VM begonnen werden kann müssen Debian noch die Pakete `btrfs-progs` und `qemu-utils` installiert werde:

{{< codeWide >}}
apt install btrfs-progs qemu-utils
{{< /codeWide >}}

Im Template-Verzeichnis führte ich dann den folgenden Befehl aus:

{{< codeWide >}}
distrobuilder build-incus --vm images/openwrt.yaml -o image.release=23.05
{{< /codeWide >}}

Dieses Befehl erstellt die Dateien: `disk.qcow2` und `incus.tar.xz`. Die Datei `disk.qcow2` kann dann mit `scp` oder `rsync` auf den Proxmox-Server kopiert werden.
{{< codeWide >}}
qm create 390
qm importdisk 390 disk.qcow2 local-lvm
{{< /codeWide >}}

Dann in `/etc/pve/qemu-server/390.conf` den Namen der VM eintragen.
Und die Disk im Web UI hinzufügen.


## Fazit 🏁
Insgesamt finde ich Distrobuilder ein ausgezeichnetes Tool zur Erstellung von Images für LXC.
Es ist einfach zu bedienen und hat mir ermöglicht, schnell und unkompliziert mein eigenes OpenWrt-Image zu erstellen und in Proxmox zu integrieren.

0 comments on commit 032881d

Please sign in to comment.