Initial writeup for the recycledcloud intro
This commit is contained in:
parent
ae46c2aae4
commit
2ebb8b3c06
10 changed files with 160 additions and 0 deletions
1
2021-03-01-recycledcloud-intro/.gitignore
vendored
Normal file
1
2021-03-01-recycledcloud-intro/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.pdf
|
2
2021-03-01-recycledcloud-intro/Makefile
Normal file
2
2021-03-01-recycledcloud-intro/Makefile
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
slides:
|
||||||
|
pandoc --standalone -t beamer -V theme:CambridgeUS -o slides.pdf slides.md
|
BIN
2021-03-01-recycledcloud-intro/cdist-logo.jpeg
Normal file
BIN
2021-03-01-recycledcloud-intro/cdist-logo.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
2021-03-01-recycledcloud-intro/gitea-logo.png
Normal file
BIN
2021-03-01-recycledcloud-intro/gitea-logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
1
2021-03-01-recycledcloud-intro/location.drawio
Normal file
1
2021-03-01-recycledcloud-intro/location.drawio
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<mxfile host="app.diagrams.net" modified="2021-02-26T12:58:47.622Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/83.0.4103.122 Safari/537.36" etag="t_4In5bQ_3puKYnu2bJL" version="14.4.3" type="device"><diagram id="Uwfal66hrvO_9e_vWxiZ" name="Page-1">7Vrbdps4FP0arzXzkCwuBtuPteM06WpSz3LSTh5lkA1TjBghYjtf3yMQFyESO4lt3MmkaYu2LqB99jlHSHTM0XL9maLIuyEuDjqG5q475kXHMPSuYXT4r+ZuBDKw9AxZUN8VWAlM/ScsQE2gie/iWGrICAmYH8mgQ8IQO0zCEKVkJTebk0C+a4QWWAGmDgpU9IfvMi9D+5ZW4lfYX3j5nXVN1CxR3lgAsYdcsqpA5rhjjighLLtarkc44OzlvGT9Lp+pLR6M4pDt0uHzzRX5vvTdp6er+y8Po2ESXH85E6M8oiARE3YIxeKB2SZngZIkdDEfSOuYw5XnMzyNkMNrV2B4wDy2DKCkw6UYElOG188+q14wANrBZIkZ3UCTvENOmpCNkbO6Km1QtPEq/NsCQ8Lsi2Lokhm4EOS8gihDIWpF6E9MAYOp2AHcfxhHKJR4s/9NuHWHDgkI7ZifoJIuZugPeEj4hQfRGq/+5JecR5BryM7maOkHm6z7koQkTpmXmsSp3/AGWrQu7wtXi+x/q+6jFsydo6n+ilLOhZWyAcgFv+YPZvHpW0DhtrZ60Ta395uGMcphMs6LmkygeWVGdlGZC5UD/HaSWDmYypXjqWA5oqfFyu0y4e4yoaKqmEspZYuLuWxZmby2qUxTq+CZuJv7CJEXlXalDsRe4IvKA9SpTosF31VQVoFoJ8sFtDXOhQ4elGk9l1fL4cLonVq46D4fLm5bp8s6uehqKXQpJOHQ/cTzOZRCEgI4dFHspazpMkMcnyDGMA1TxNBMHpwZJT+LHN4tmMSusgDYymOFJ6uBphyjOEDMf5SHb+JO3GFCfB5dcjN162Yya/THJKEOFr2qmb82kKXVBjIG55Y8FEN0gZkyVGrMYuJvt69uq/YE3qeiSCjzyIKEKBiX6FB2i7LNV0IiYep/MGMbsWhECSOyEPDaZ3/z7jDbrPQgBuPXF+tqYZMXQphp1smw8vJDPiAvlP3SUtmxrk9ALn3OU1ov609/hf6AttTQL/Ar6M2s+JIdzGZB76zUd3m52eDVx1OBXtVAoYhtKqhKQPT63UXQb1MDthLp+dx1RRjHzommLsfIrqnmxEFDrDcOlRL1Vp1FDpn6js5ybssxE2LoVoeB0gRTH0iD1dEJeFF/11CqNevpOG6kD05HHTsnVLsvJdRzze79d+XRaqbtN0ZZNaIcO8p2u6cWZdXMc1Q/6kqLki1xFgqqLxTe9arVquoj27xqjz6Up9qtTmS3GmI1xYnuPL7vdh3yV0vMVOUEgR/FnLrYQxEHnYAk7nbPin9i5ni5afJ94n1tjgwsyecsXfW54s2+6nR6/X1zf5upmsrdqWavFnNNlkN28BOjTT8xWg6hvTetRX6fd/udVdBtVQUtv64Y/6ugcqL3DhWkXWGeaFNpEPGNwbgycn2rsrbDaJq1s8hae73/Ynu4yJ5gv5uQppLQpyufJ953LYulbeg95GuzJ+drs9ewO6815OvDpWuVuNF4cgXIGfy98EH4/ixh/NhNmzJC+ZH6uyiVlkASv9JKaQ6+N8qOVuEWpmvhvtstHLFS0zdmpm3vxzz1o+kz3VLtYx319MRQT5vuLu8m3ACYPqaHTtxQt5jN0nO+vam9ZoC5xf80GcBOf3gPErIKnv0cxjB2g9sc1yzqXueE8rE9nMTCJjck9MFj/HDxUcyiN7zyH9kuPcUu3yIc3uJZEiDAv92OAYO7888rpkkYM57tDe0HnsG/99eHs5SLcH/uNFrK6ePZ/EARrN+6RdT9qq/+7NGnrLDDX+Obe+4z3wFMUOA/wWqGhAd0mvnccBpN4doz2zpUMil2utqzxeCD2qL+EckJ2CIPlR/OFvUvVE7BFuqnkhOyShdXNyiEJe8Shx9mbXXWsIe4L3N0xOdolXe/8kM0c/wL</diagram></mxfile>
|
BIN
2021-03-01-recycledcloud-intro/location.png
Normal file
BIN
2021-03-01-recycledcloud-intro/location.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
BIN
2021-03-01-recycledcloud-intro/one-logo.png
Normal file
BIN
2021-03-01-recycledcloud-intro/one-logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
2021-03-01-recycledcloud-intro/recycledcloud-text.png
Normal file
BIN
2021-03-01-recycledcloud-intro/recycledcloud-text.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 95 KiB |
156
2021-03-01-recycledcloud-intro/slides.md
Normal file
156
2021-03-01-recycledcloud-intro/slides.md
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
---
|
||||||
|
title: Recycled Cloud Technical Intro
|
||||||
|
author: Timothée Floure
|
||||||
|
institute: e-Durable SA
|
||||||
|
date: 2021-03-01
|
||||||
|
license: CC BY-SA
|
||||||
|
---
|
||||||
|
|
||||||
|
# It works! (TM)
|
||||||
|
|
||||||
|
![](recycledcloud-text.png)
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
We even have a website! \href{https://recycled.cloud/}{https://recycled.cloud/}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
# High-Level Overview
|
||||||
|
|
||||||
|
* 3 locations - **Yes, it's overkill**.
|
||||||
|
* LNTH and LSNE are production capable.
|
||||||
|
* LNTH has **power and network redundancy**.
|
||||||
|
|
||||||
|
* **Networking** + **Distributed Storage** + QEMU/KVM **VMs**.
|
||||||
|
* Humans: 1-1.5 people Summer, ~0.5 'til last week, ~1.25 these days.
|
||||||
|
|
||||||
|
# Public-ish services
|
||||||
|
|
||||||
|
* Web hosting: Static + Wordpress - **unmanaged**.
|
||||||
|
* Storage / backups - **unmanaged**.
|
||||||
|
* KVM Virtual Machine Hosting - **unmanaged**.
|
||||||
|
|
||||||
|
**e-Durable is our biggest client by far. Bottleneck is user support.**
|
||||||
|
|
||||||
|
* No management interface or billing pipeline so far.
|
||||||
|
- Billing is hard. We'll leverage Odoo.
|
||||||
|
|
||||||
|
# A bit of History
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics{ungleich-logo-black.png}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
* I arrived around June last year (from ungleich).
|
||||||
|
* The 3 locations were already in the pipe.
|
||||||
|
* JD and Olivier have been playing with **OpenStack** (and JuJu + MAAS) for a
|
||||||
|
few months. It was **massively overkill** (and broken).
|
||||||
|
* We tried to reuse some parts, but **had to drop everything and start from
|
||||||
|
scratch**.
|
||||||
|
* Only low-end hardware around.
|
||||||
|
|
||||||
|
# System Administration 101
|
||||||
|
|
||||||
|
* Setting something up is easy, **keeping it running is not**.
|
||||||
|
* **Complexity** is your worst enemy.
|
||||||
|
|
||||||
|
# Technial Stack - General guidelines
|
||||||
|
|
||||||
|
* **KISS**: Keep things as simple as possible.
|
||||||
|
* Alpine Linux and Debian GNU/Linux.
|
||||||
|
* Document things in the Wiki ([wiki.recycled.cloud](https://wiki.recycled.cloud)).
|
||||||
|
* Use configuration management ([cdist](https://cdi.st)).
|
||||||
|
* Obviously **FOSS**-only... non-free software is a PITA!
|
||||||
|
|
||||||
|
# Technical Stack - Networking
|
||||||
|
|
||||||
|
* We are registered at [RIPE](https://ripe.net): **AS208948**, x1 IPv4 **/22**, x1 IPv6 **/29**.
|
||||||
|
* External BGP peering in every location, OSPF internally.
|
||||||
|
* Two edge routers per location, for redundancy.
|
||||||
|
* **IPv6-first** - IPv4 is **LEGACY** (and painful)!
|
||||||
|
|
||||||
|
# Technical Stack - Core Infrastructure
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics{location.png}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
# Technical Stack - Services
|
||||||
|
|
||||||
|
* Services usually run in their own VM.
|
||||||
|
* Central user directory with OpenLDAP.
|
||||||
|
* Monitoring is provided by Prometheus + Grafana.
|
||||||
|
* Backups with Borg.
|
||||||
|
* ...
|
||||||
|
|
||||||
|
# Tooling
|
||||||
|
|
||||||
|
* There was no tooling at e-Durable, so we made our own.
|
||||||
|
* Software Forge: code.recycled.cloud
|
||||||
|
* Documentation: wiki.recycled.cloud
|
||||||
|
* Mailing Lists: lists.recycled.cloud
|
||||||
|
* File Sharing: files.recycled.cloud
|
||||||
|
* Chat: chat.recycled.cloud
|
||||||
|
|
||||||
|
# Buffer slide
|
||||||
|
|
||||||
|
That's all for the big lines! Let's do some hands-on exercises now.
|
||||||
|
|
||||||
|
* Allocating & accessing a new VM.
|
||||||
|
* Using the Software Forge.
|
||||||
|
* Configure said VM with cdist.
|
||||||
|
|
||||||
|
# Allocating a new VM
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=5cm]{one-logo.png}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
* Web interface at one.$LOCATION.recycled.cloud, LDAP account.
|
||||||
|
* VMs are defined by templates.
|
||||||
|
* We build our own images - see the RecycledCloud/images repository
|
||||||
|
* Allocating a new VM is easy: **demo**.
|
||||||
|
|
||||||
|
# Using the Software Forge
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=10cm]{gitea-logo.png}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
* Our **VCS** is **git**.
|
||||||
|
* **Everything** regarding the RC lives in version control.
|
||||||
|
* **If you don't use version control, you're likely doing it wrong**.
|
||||||
|
* code.recycled.cloud provides remote git repositories and simple issue
|
||||||
|
tracking.
|
||||||
|
* Joachim makes lovely git introductions.
|
||||||
|
|
||||||
|
# CDIST
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=5cm]{cdist-logo.jpeg}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
* Configuration management tool (similar to Ansible, Puppet, Chef, ...).
|
||||||
|
* **KISS**. Do one thing, and do it right.
|
||||||
|
* Originally written by ungleichfolk, much larger community now.
|
||||||
|
* Shellscript.
|
||||||
|
|
||||||
|
# CDIST 101
|
||||||
|
|
||||||
|
* Manifests
|
||||||
|
* Types
|
||||||
|
* Explorers
|
||||||
|
|
||||||
|
# e-Durable CDIST workflow
|
||||||
|
|
||||||
|
* dot-cdist.
|
||||||
|
* cdist-workdir meta repository and third-party sources.
|
||||||
|
* RecycledCloud and e-Durable each have their own repositories.
|
||||||
|
* Shellcheck (it's convenient to have it built-in in your editor...).
|
||||||
|
|
||||||
|
# References
|
||||||
|
|
||||||
|
* Recycled Cloud account management: meta.recycled.cloud
|
||||||
|
* Recycled Cloud Software Forge: code.recycled.cloud
|
||||||
|
* Recycled Cloud Wiki: wiki.recycled.cloud
|
||||||
|
* CDIST Manual: cdi.st
|
||||||
|
* OpenNebula Web UI: one.{lnth,lsne}.ch.recycled.cloud
|
BIN
2021-03-01-recycledcloud-intro/ungleich-logo-black.png
Normal file
BIN
2021-03-01-recycledcloud-intro/ungleich-logo-black.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Loading…
Reference in a new issue