diff --git a/2021-03-01-recycledcloud-intro/.gitignore b/2021-03-01-recycledcloud-intro/.gitignore new file mode 100644 index 0000000..a136337 --- /dev/null +++ b/2021-03-01-recycledcloud-intro/.gitignore @@ -0,0 +1 @@ +*.pdf diff --git a/2021-03-01-recycledcloud-intro/Makefile b/2021-03-01-recycledcloud-intro/Makefile new file mode 100644 index 0000000..7e8747a --- /dev/null +++ b/2021-03-01-recycledcloud-intro/Makefile @@ -0,0 +1,2 @@ +slides: + pandoc --standalone -t beamer -V theme:CambridgeUS -o slides.pdf slides.md diff --git a/2021-03-01-recycledcloud-intro/cdist-logo.jpeg b/2021-03-01-recycledcloud-intro/cdist-logo.jpeg new file mode 100644 index 0000000..9bfa252 Binary files /dev/null and b/2021-03-01-recycledcloud-intro/cdist-logo.jpeg differ diff --git a/2021-03-01-recycledcloud-intro/gitea-logo.png b/2021-03-01-recycledcloud-intro/gitea-logo.png new file mode 100644 index 0000000..4cb523b Binary files /dev/null and b/2021-03-01-recycledcloud-intro/gitea-logo.png differ diff --git a/2021-03-01-recycledcloud-intro/location.drawio b/2021-03-01-recycledcloud-intro/location.drawio new file mode 100644 index 0000000..97f2f9e --- /dev/null +++ b/2021-03-01-recycledcloud-intro/location.drawio @@ -0,0 +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 \ No newline at end of file diff --git a/2021-03-01-recycledcloud-intro/location.png b/2021-03-01-recycledcloud-intro/location.png new file mode 100644 index 0000000..1edd9c4 Binary files /dev/null and b/2021-03-01-recycledcloud-intro/location.png differ diff --git a/2021-03-01-recycledcloud-intro/one-logo.png b/2021-03-01-recycledcloud-intro/one-logo.png new file mode 100644 index 0000000..6be1111 Binary files /dev/null and b/2021-03-01-recycledcloud-intro/one-logo.png differ diff --git a/2021-03-01-recycledcloud-intro/recycledcloud-text.png b/2021-03-01-recycledcloud-intro/recycledcloud-text.png new file mode 100644 index 0000000..0208611 Binary files /dev/null and b/2021-03-01-recycledcloud-intro/recycledcloud-text.png differ diff --git a/2021-03-01-recycledcloud-intro/slides.md b/2021-03-01-recycledcloud-intro/slides.md new file mode 100644 index 0000000..cddcf93 --- /dev/null +++ b/2021-03-01-recycledcloud-intro/slides.md @@ -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 diff --git a/2021-03-01-recycledcloud-intro/ungleich-logo-black.png b/2021-03-01-recycledcloud-intro/ungleich-logo-black.png new file mode 100644 index 0000000..411f28f Binary files /dev/null and b/2021-03-01-recycledcloud-intro/ungleich-logo-black.png differ