-
Notifications
You must be signed in to change notification settings - Fork 2
Installation_de_MAAS_et_JUJU
+-------|Proxmox|--------------+
| |
| |VM MAAS(JUJU client)|>......|......
| . | .
| |VM PostgreSQL|>.......... | .
| | .
+------------------------------+ .
.
+---|KVM Hyperviseur|----+ .
| | .
| |VM JUJU controller|>..|............
| | .
| |VM Xn|>...............|............
+------------------------+
| Machine | IP | Version |
|---|---|---|
| Proxmox | 192.168.0.21-23 | 6.2-8 |
| KVM | 192.168.0.24 | 4.2.0-7 |
| MAAS | 192.168.0.100 | 2.8 |
| PostgreSQL | 192.168.0.103 | 12.2 |
Exemple donnée pour la configuration de la VM MAAS.
Configuration du fichier hosts
sudo vim /etc/hosts
127.0.0.1 maas.tpdaniel.fr maas
127.0.1.1 maas
192.168.0.100 maas.tpdaniel.fr maas
192.168.0.102 postgresql.tpdaniel.fr postgresql
Configuration du fichier hostname
sudo vim /etc/hostname
maas
Configuration du réseau
sudo netplan generate
sudo vim /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
addresses: [192.168.0.100/24]
gateway4: 192.168.0.1
nameservers:
search: [maas.tpdaniel.fr]
addresses: [8.8.8.8, 8.8.4.4, 1.1.1.1]
dhcp4: false
dhcp6: false
version: 2
sudo netplan apply && sudo systemctl restart systemd-networkd && sudo reboot
Échanger les clés SSH entre les différentes machines
ssh-keygen
ssh-copy-id daniel@192.168.0.102
sudo apt update -y
sudo apt install -y postgresql
Utilisateur de la base de données : MAAS_DBUSER='daniel'
Mot de passe de l'utilisateur de la base de donnée : MAAS_DBPASS='digital'
Création de l'utilisateur de la base de donnée
sudo -u postgres psql -c "CREATE USER "$MAAS_DBUSER" WITH ENCRYPTED PASSWORD '$MAAS_DBPASS'"
Création de la base de donnée pour MAAS
Nom désiré pour la base de donnée pour MAAS : MAAS_DBNAME='maas'
Création de la base de donnée
sudo -u postgres createdb -O "$MAAS_DBUSER" "$MAAS_DBNAME"
Éditer le fichier pg_hba.conf, ajoutez la ligne suivante pour la base de données.
sudo vim /etc/postgresql/12/main/pg_hba.conf
host maas daniel 0.0.0.0/0 md5
Vous pouvez limiter l'accès à un réseau spécifique en utilisant un CIDR différent de 0.0.0.0/0.
Pour une installation en production on a besoin d'installer PostgreSQL sur une machine à part il faut donc configurer PostegreSQL pour que à partir de MAAS on puise accéder au serveur PostgreSQL à distance, car par défaut PostgreSQL n'écoute que sur localhost et refuse les connexions distantes.
Configuration de PostgreSQL pour un accès distant
Nous avons besoin de changer les fichiers suivant :
- postgresql.conf
- pg_hba.conf
Activer les connections distantes, pour pouvoir écouter sur tous les IP
sudo vim /etc/postgresql/12/main/postgresql.conf
Décommenter et ajouter un *
avant :
#listen_addresses = 'localhost'
après :
listen_addresses = '*'
sudo service postgresql restart
Installation de la version 2.8 de MAAS sur une nouvelle machine
sudo snap install maas
On va vérifier la connexion entre MAAS et la base de donnée PostgreSQL.
Pour commencer on installe le client PostgreSQL sur MAAS pour tester la connexion.
Attention on doit installer la version exacte du client par rapport au serveur.
Si notre serveur "PostgreSQL 12" alors le client c'est "postgresql-client-12".
sudo apt install postgresql-client-12
Connexion à la base de donnée "maas"
psql --host='postgresql.tpdaniel.fr' --username='daniel' --password maas
| Option | Description |
|---|---|
| --host | Nom de domaine du serveur PostgreSQL |
| --username | Nom de l'utilisateur de la Base de donnée maas |
| --password | Permet de forcer la demande du mot de passe |
| maas | C'est le nom de la base de donnée pour MAAS |
Maintenant que la connexion à la base de donnée MAAS fonctionne, on peut initialiser MAAS.
sudo maas init region+rack --database-uri "postgres://daniel:digital@192.168.0.102/maas"
vérification du status des services MAAS
sudo maas status
Normalement tout doit être running sauf :
- dhcpd
- dhcpd6
Création des identifiants pour la connexion sur l'interface web de MAAS
sudo maas createadmin
Maintenant on peut se connecter sur l'interface web de MAAS
Exemple : http://192.168.0.100:5240/MAAS
Pour afficher les informations de connections
sudo maas config
Ajouter la clé publique SSH de MAAS
On copie la clé puis on la colle là ou c'est demandée
cat .ssh/id\_rsa.pub

Appuyer sur "go to dashboard"
Ici on va indiquer le nom de la région et le DNS.

Appuyer sur "continue"
Sélectionner les images de Ubuntu 18.04 et 20.04.

Configuration des plages IP
Appuyer sur l'onglet "subnets"

La partie range désigne la plage d'adresses IP pour le "commissioning".
Range dynamic désigne la plage d'adresses IP attribuées aux machines déployées par MAAS.
Appuyer sur "Enable DHCP" pour activer le DHCP de MAAS.
Configuration du système d'exploitation a lancer pendant le "commissionning" et le déploiement

sudo snap install juju --classic
Attention JUJU s'installe qu'en mode "--classic"
Les SNAPS utilisent des modes différents de confinement pour les applications.
Modes de confinement :
| Confinement | Description |
|---|---|
| Strict | C'est le mode utilisé par défaut, |
| il permet un isolement total entre l'application et la machine hôte. | |
| Classic | Permet à l'application d'accéder au ressources du système hôte, |
| comme une application traditionnelle. | |
| Devmade | C'est un mode spécial pour les développeurs. |
juju add-cloud --local
Choisir le type : maas
Select cloud type: maas
Enter a name for your maas cloud: maaslab
Enter the API endpoint url: http://192.168.0.100:5240/MAAS
juju add-credential maaslab
Enter credential name: maaslab
Regions
default
Select region [any region, credential is not region specific]: any
Enter maas-oauth:
Credential "maaslab" added locally for cloud "maaslab".
Au moment où il y a la demande "Enter maas-oauth:" on va sur l'interface web de MAAS, pour récupérer la clé de l'API.
juju bootstrap --bootstrap-constraints mem=1G
Pour que le controller soit créé avec une machines disponible qui a 1GO de mémoire RAM.
Les "constraints" permettent de cibler une machine en particulier selon certains critères, ici le critére est 1GO de mémoire RAM.
La création du controller s'initialise.

juju gui
Dashboard 0.1.8 for controller "maaslab-default" is enabled at:
https://192.168.0.13:17070/dashboard
Your login credential is:
username: admin
password: b351559f52f1e2057ff3dabc498c6fa7
Voici le dashboard.

| Type | Description |
|---|---|
| Charm | C'est une collection de fichiers YAML, |
| ces fichiers permettent la configuration d'une application. | |
| Bundle | C'est la combinaison de plusieurs charms pour créer un service. |
Le concept de "models" sur JUJU est aussi appelé "Bundles" en ligne de commande.
Installation de charm
sudo snap install charm --classic

Projets Open Source
