🐱 Add instructions for ubuntu and nixos

cheshire 2023-10-14 12:30:04 +02:00
parent 17755597e0
commit eec447a94e
4 changed files with 127 additions and 1 deletions

33
01-prepare-nixos.md Normal file
View File

@ -0,0 +1,33 @@
# Kompilacja w środowisku NixOS
NixOS jest systemem operacyjnym, który pozwala na deklaratywne opisywanie środowiska. W tym rozdziale opisane są kroki potrzebne do zbudowania środowiska, w którym można budować usługi w chmurze.
W tym tutorialu została wykorzystana wersja NixOS 23.05.
Skrypt wykonujący dostępny w [01-build-nixos.sh](01-build-nixos.sh) wykonuje wszystkie kroki opisane w tym rozdziale.
Całość opisu opiera się na informacjach uzyskanych z rozmów oraz z [dokumentacji użytkownika hscloud](https://code.hackerspace.pl/hswaw/hscloud/src/branch/master/cluster/doc/user.md).
## Wymagania
Chęć do zainstalowania NixOSa, bare metal lub wirtualnie. Wirtualizacja może być wykonana np. za pomocą [VirtualBox](https://www.virtualbox.org/).
## Kroki
Pobierz system NixOS z [nixos.org](https://nixos.org/download.html#nixos-iso) i zainstaluj go na swojej maszynie.
Potrzebujemy zainstalować pakiet `git` i sklonować repozytorium z kodem źródłowym usług w chmurze. W terminalu wpisujemy:
```bash
nix-env -iA nixos.git
git clone https://code.hackerspace.pl/hswaw/hscloud
cd hscloud
```
Ze względu na drobny błąd, należy pozbyć się z `shell.nix` komendy kompilacji `clang`:
```bash
sed -i '/gcc binutils clang/s/clang//g' "shell.nix"
```
Następny krok: [Budowa środowiska](02-build-environment.md)

32
01-prepare-ubuntu.md Normal file
View File

@ -0,0 +1,32 @@
# Kompilacja w środowisku Ubuntu
W tym rozdziale opisane są kroki potrzebne do zbudowania środowiska, w którym można budować usługi w chmurze hscloud. Instrukcja wzoruje się na [01-build-nixos.md](01-build-nixos.md), jedynie z dodatkowym krokiem pobierania i instalacji menedżera pakietów `nix`.
## Wymagania
Uprawnienia administratora, środowisko Ubuntu 22.04 lub nowsze, bądź odpowiedni Ubuntu-like desktop.
## Kroki
Instalujemy pakiety `git` oraz `curl`:
```bash
sudo apt install git curl
```
Pobieramy i instalujemy menadżer pakietów `nix` (źródło: [nixos.org](https://nixos.org/download)):
```bash
sh <(curl -L https://nixos.org/nix/install) --daemon
```
Po tej operacji należy wylogować się i zalogować ponownie, aby móc korzystać z `nix`.
Klonujemy repozytorium z kodem źródłowym usług w chmurze:
```bash
git clone https://code.hackerspace.pl/hswaw/hscloud
cd hscloud
```
Następny krok: [Budowa środowiska](02-build-environment.md)

52
02-build-environment.md Normal file
View File

@ -0,0 +1,52 @@
# Budowa środowiska
W tym rozdziale przedstawię, jak na przygotowanej już platformie (NixOS, Ubuntu, etc.) zbudować środowisko, w którym będziemy budować usługi w chmurze hscloud.
## Kroki
Ze względu na drobny błąd, należy pozbyć się z `shell.nix` komendy kompilacji `clang`:
```bash
sed -i '/gcc binutils clang/s/clang//g' "shell.nix"
```
Tworzymy środowisko, w którym będziemy budować usługi. W tym celu tworzymy środowisko na podstawie definicji w pliku `shell.nix`:
```bash
nix-shell
```
Używamy teraz narzędzia `bazel`, aby zbudować i uruchomić potrzebne usługi, m.in. `prodaccess` oraz `kubectl`:
```bash
bazel build //tools:install
bazel run //tools:install
```
Teraz możemy poprosić o przyznanie nam dostępu do klastra hscloud poprzez narzędzie [prodaccess](https://pkg.go.dev/code.hackerspace.pl/hscloud/cluster/prodaccess#section-readme). w miejsce `$hs_username` należy wstawić nazwę użytkownika w SSO hackerspejsu:
```bash
prodaccess -u $hs_username
```
W przypadku braku dostępu do klastra, należy skontaktować się w ramach [Matrix](https://matrix.hackerspace.pl/) z [@q3k](q3k:hackerspace.pl) bądź z [@inf](informatic:hackerspace.pl).
Aby sprawdzić, czy mamy dostęp do klastra, możemy wykonać polecenie:
```bash
# pokazuje wersję Kubernetesów
kubectl version
# pokazuje statystyki klastra
kubectl top nodes
```
Możemy również wywołać publiczny obraz Dockera (ponownie, w miejsce `$USER` należy wstawić nazwę użytkownika w SSO hackerspejsu):
```bash
# aby utworzyć obraz
kubectl -n personal-$hs_username run --image=alpine:latest -it foo
# aby skasować obraz
kubectl -n personal-$hs_username delete pod foo
```

View File

@ -1,3 +1,12 @@
# hscloud-docs
Wprowadzenie do tworzenia usług w hscloud.
Wprowadzenie do tworzenia usług w hscloud. Niniejszy zestaw dokumentów ma na celu dokumentację procesu wgryzania się w działanie chmury.
## Przygotowanie środowiska
- [Budowa na NixOS](01-prepare-nixos.md)
- [Budowa na Ubuntu](01-prepare-ubuntu.md)
## Przygotowywanie narzędzi
- [Budowa środowiska](02-build-environment.md)