🐱 Add instructions for ubuntu and nixos
parent
17755597e0
commit
eec447a94e
|
@ -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)
|
|
@ -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)
|
|
@ -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
|
||||
```
|
11
README.md
11
README.md
|
@ -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)
|
Loading…
Reference in New Issue