diff --git a/demo.md b/demo.md index 2e19912..7d11865 100644 --- a/demo.md +++ b/demo.md @@ -1,11 +1,16 @@ -# Inhoud van de demo +# Onderwerpen van de demo * Mini-omschrijving XS4ALL voice platform * Waarom LXD? +* Doel van de demo: LXD + Ansible + Galera cluster * Installatie VM's voor de demo * Netwerktopologie * LXD clustering * De Ansible container - +* Ansible-vault voor opslag secrets +* Dynamische inventory +* Container bootstrapping vanuit Ansible +* Installatie van het Galera cluster +* Rolling upgrade Galera cluster # Mini-omschrijving XS4ALL voice platform @@ -209,46 +214,58 @@ CONTAINER2 aangesloten is op SIP en mgmt. CONTAINER4 is alleen aangesloten op he SIP netwerk, en kan via dat netwerk op layer 2 CONTAINER1 en CONTAINER2 ook bereiken. -__Voor de demo gebruiken we een simpeler opzet:__ +__Voor de demo gebruiken we een iets simpeler opzet:__ ```yaml network: version: 2 ethernets: enp1s0: {} + enp6s0: {} bridges: - br-demo: + br-public: dhcp4: no dhcp6: no interfaces: ["enp1s0"] - addresses: ["192.168.56.150/24"] # of 151 voor sidn-demo-02 + addresses: ["192.168.56.150/24"] # en 151 op de andere host gateway4: "192.168.56.1" nameservers: - addresses: ["192.168.56.1"] + addresses: ["8.8.8.8", "9.9.9.9"] + br-demo: + dhcp4: no + dhcp6: no + interfaces: ["enp6s0"] + addresses: ["10.0.0.150/24"] # en 151 op de andere host ``` -Dus maar 1 bridge "br-demo" en het "fysieke" interface enp1s0 van de VM zit -"ingeplugd" in deze bridge. In een plaatje: +Bridge br-public is aangesloten op een bridge die NAT netwerk verzorgt op +de VM host en daarmee gebruikt kan worden om via NAT naar het internet te +komen. Bridge br-demo zit aangesloten op een host-only bridge op de VM host +en heeft dus de rol van een losse, niet-connected netwerkswitch. + +In een plaatje: ```text KVM host 192.168.56.1 (gateway + DHCP + DNS) | | - +------192.168.56.0/24----+ - | | - +------O---------------+ +------O---------------+ - | enp1s0 | | enp1s0 | - | | | | | | - | +---O------------+ | | +---O------------+ | - | | br-demo | | | | br-demo | | - | | 192.168.56.150 | | | | 192.168.56.151 | | - | +--O---O---------+ | | +--O--O----------+ | - | | | | | | | | - | | CONTAINER2 | | | CONTAINER4 | - | | | | | | - | CONTAINER1 | | CONTAINER3 | - | | | | + +------192.168.56.0/24-----------+ + | | + | private | + | +----bridge----+ | + | | 10.0.0.0/24 | | + | | | | + +------O------O--------+ +--O----------O--------+ + | enp1s0 enp6s0 | | enp6s0 enp1s0 | + | | | | | | | | + | br-public br-demo | | br-demo br-public | + | | \ / | | | | \ / | | + | | \/ | | | | \/ | | + | | /\ | | | | /\ | | + | ansible-01 \ | | | galera-02 \ | | + | | | | | \ | | + | galera-01 | | galera-03 | +----------------------+ +----------------------+ KVM guest: sidn-demo-01 KVM guest: sidn-demo-02 ``` @@ -367,6 +384,11 @@ sidn-demo-0X# lxc profile edit demo timezone: Europe/Amsterdam description: SIDN demo profile devices: + if-public: + name: if-public + nictype: bridged + parent: br-public + type: nic if-demo: name: if-demo nictype: bridged @@ -390,7 +412,7 @@ ook voor oudere versies van Ubuntu en voor niet cloud-init images te gebruiken i Noot: In de praktijk hebben wij tot op heden alleen maar timezone en netwerkconfiguratie gepusht met de cloud-init configuratie. En zelfs de netwerkconfguratie slechts -deels, omdat deze met de cloud-init van Ubuntu 14.04 nog niet mogelijk was. +deels, omdat demodeze met de cloud-init van Ubuntu 14.04 nog niet mogelijk was. @@ -402,7 +424,7 @@ koppelt, die onderling gaan uitwisselen welke containers er op de hosts draaien. Daarna krijg je met bijvoorbeeld "lxc list" niet alleen inzicht in de containers die op de lokale host draaien, maar ook in alle containers die op alle cluster hosts draaien. - +demo Het klinkt heel goed: LXD clustering. Functioneel heb ik er echter nog weinig heil in gevonden voor onze setup. Bovendien heb ik op clustersystemen regelmatig problemen gezien met het goed werkend houden van het cluster, @@ -480,13 +502,19 @@ sidn-demo-01# vi /tmp/config version: 1 config: - type: physical -name: if-demo -subnets: -- type: static + name: if-public + subnets: + - type: static address: 192.168.56.160 netmask: 255.255.255.0 gateway: 192.168.56.1 dns_nameservers: [192.168.56.1] +- type: physical + name: if-demo + subnets: + - type: static + address: 10.0.0.160 + netmask: 255.255.255.0 ``` Bouw de container op en start hem: @@ -519,13 +547,15 @@ Opmerkingen: ook weggelaten kunnen worden. -Op de container is nu te zien dat het layer 2 netwerk via de netwerk bridge +Op de container is nu te zien dat het layer 2 netwerk via de netwerk bridges ontsloten is vanuit de container: ``` ansible# ip a (laat zien dat er nu een if-demo interface bestaat) ansible# ping 192.168.56.150 (een ping naar de eigen LXD host) ansible# ping 192.168.56.151 (een ping naar de andere LXD host) +ansible# ping 10.0.0.150 (een ping naar de eigen LXD host) +ansible# ping 10.0.0.151 (een ping naar de andere LXD host) ``` #### Connectie Ansible -> managed hosts @@ -591,8 +621,8 @@ sidn-demo-0X# lxc exec sidn-demo-01:ansible cat /root/.ssh/id_rsa.pub >> /root/. Hierna moet het volgende werken: ```bash -ansible# ssh 192.168.56.150 touch .hushlogin -ansible# ssh 192.168.56.151 touch .hushlogin +ansible# ssh 10.0.0.150 touch .hushlogin +ansible# ssh 10.0.0.151 touch .hushlogin ``` #### Installatie van de Ansible software