forked from cheshire/hscloud-docs
🐱 Add instructions for ubuntu and nixos
parent
3a9b57f192
commit
6958e4b2c8
|
@ -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
|
||||
```
|
|
@ -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.
|
|
@ -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)
|
Loading…
Reference in New Issue