1
0
Fork 0

🐱 Add instructions for ubuntu and nixos

master
cheshire 2023-10-14 12:30:53 +02:00
parent 3a9b57f192
commit 6958e4b2c8
5 changed files with 138 additions and 0 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
```

9
LICENSE Normal file
View File

@ -0,0 +1,9 @@
MIT License
Copyright (c) 2023 cheshire
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

12
README.md Normal file
View File

@ -0,0 +1,12 @@
# hscloud-docs
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)