eole-risotto
Contournement à mettre en place
Pour installer facilement risotto faire :
Démarrer un serveur
- aca.hapy-2.8.1-instance-default
# installer les paquets libvirt
scp -r root@192.168.230.107:libvirt .
dpkg -i libvirt/*deb
# installer ovmf
apt -y install ovmf
# reconfigure + reboot
reconfigure ; echo|reboot
- aca.eolebase-2.8.0-Daily avec au minimum 6GO de RAM (pour packer).
Fix temporaire
# problème de prise en compte des certificats LE
cp /usr/share/ca-certificates/letsencrypt/* /usr/local/share/ca-certificates/
update-ca-certificates
/root/mount.eole-ci-tests
/mnt/eole-ci-tests/scripts/configure-vm.sh -M configeol
echo "from creole.loader import creole_loader, config_save_values
c=creole_loader(rw=True)
c.creole.depot_tiers.additional_repository_name.additional_repository_name = [u'cadoles', u'hashicorp']
c.creole.depot_tiers.additional_repository_name.additional_repository_source = [u'deb https://vulcain.cadoles.com risotto-2.8.0-dev main', u'deb https://apt.releases.hashicorp.com focal main']
c.creole.depot_tiers.additional_repository_name.additional_repository_key_type = [u'URL de la clé', u'URL de la clé']
c.creole.depot_tiers.additional_repository_name.additional_repository_key_url = [u'https://vulcain.cadoles.com/cadoles.gpg', u'https://apt.releases.hashicorp.com/gpg']
config_save_values(c, 'creole')" > add_repo.py
python3 add_repo.py
echo "Package: *
Pin: origin "apt.releases.hashicorp.com"
Pin-Priority: 400
" > /etc/apt/preferences.d/hashicorp
Maj-Auto
apt-eole install eole-risotto-all jq terraform
echo "from creole.loader import creole_loader, config_save_values
c=creole_loader(rw=True)
c.creole.risotto.password_admin_email = 'contact@cadoles.com'
c.creole.lemur.lemur_admin_email = 'contact@cadoles.com'
c.creole.lemur.lemur_default_organization = 'Cadoles'
c.creole.lemur.lemur_default_organization_unit = 'Prod'
config_save_values(c, 'creole')" > conf.py
python3 conf.py
CreoleSet password_length 10
manage_schedule -d majauto
manage_schedule --apply
instance
scp root@hapy.ac-test.fr:/etc/ssl/certs/ca_local.crt /usr/local/share/ca-certificates
update-ca-certificates
Importation avec cucchiaiata-cli
Exemple de script de provisioning : https://forge.cadoles.com/Infra/cucchiaiata/raw/branch/develop/provisioning_example.sh
Importation avec cucchiaiata-import
Il faut d'abord créer un utilisateur et autoriser l'utilisateur a modifier les serveurs créés :
cucchiaiata-cli v1.user.user.create --login gnunux \
--name gnunux \
--surname gnunux \
--email egarette@cadoles.com
cucchiaiata-cli v1.user.role.create --user_login gnunux \
--role_name 'server_rw' \
--role_attribute 'Server.ServerName' \
--role_attribute_value dns.cadoles.com
Crééer un fichier d'import (exemple de fichier : https://forge.cadoles.com/Infra/cucchiaiata/src/branch/develop/provisioning.yaml ).
cucchiaiata-import provisioning.yaml
Création d'un clé SSH
FORCE_RISOTTO_USER=gnunux cucchiaiata-cli v1.setting.pki.openssh.client.get -a cadoles.com -w
Dans /etc/hosts ajouter : "192.168.0.150 dns.cadoles.com".
ssh dns.cadoles.com
Note
l’ajustement est actuellement fait dans un script postservice. Il manquait la capacité login pour les roles (alter role tiramisu with login; idem pour risotto) et les droits sur les tables, ceux-ci étant remis à zéro par eoledb à chaque reconfigure. Un paquet d’une version modifiée de eole-db est également fournie dans le répertoire owncloud pour gérer ce cas.
Supprimer contenu de la base de donnée
psql -U risotto
truncate applicationservicedependency, deployment, factoryclusternode, factorycluster, log, release, userrole, risottouser, roleuri, server, servermodel, site, source, uri, userrole, zone, applicationservice;
PLUS
remise à zero risotto (reset des BDD)
Au préalable il est nécessaire d'arrêter les services :
systemctl stop risotto.service
systemctl stop lemur.service
systemctl stop bitwarden_rs.service
systemctl stop celeryrisotto.service
Se connecter ensuite à postgresql pour supprimer les différentes bases et les rôles associés
psql -U postgres
drop database risotto;
drop database tiramisu;
drop database celery;
drop database lemur;
drop database bitwarden;
drop role celery;
drop role bitwarden;
drop role lemur;
drop role risotto;
drop role tiramisu;
quit;
Supprimer le fichier yaml précédement créé
rm .cucchiaiata-config.yaml
Ensuite effectuer un reconfigure pour que les bases soit rebuildées. attention la création d'utilisateur sera perdu
retour d'information
Sur la machine RISOTTO => afficher log de création d'iso.
journalctl -fu celeryrisotto.service
suivie après lancement d'un script provisionning
cucchiaiata-cli v1.user.log.list
aller sur un job particulier, ici id 51 (cf commande plus haut, elle renvoi des jobs avec id, utiliser l'id voulue)
cucchiaiata-cli v1.user.log.query -c 51
afficher tout les jobs status pour avoir les jobs failure
cucchiaiata-cli v1.user.log.list | grep Status
affiche en condensé (réduit) les infos sur les état d'action d'une suite de construction
cucchiaiata-cli v1.user.log.list | grep status | uniq -c
avoir les infos au dessus d'un failure pour voir ce qui déconne, -B 20 ou 20= nombre de ligne précédent le message (attention affiche ici tous les jobs failure)
cucchiaiata-cli v1.user.log.list | grep Failure -B 20
BUG au 24 mai 2021
Une fois l'image buildée, et opérationnel, se connecter à sunstone, cliquer sur la VM pour accéder à ses options, puis dans les options => configuration & cliquer sur mettre à jours la configuration. coller :
<os firmware='efi'>
<type>hvm</type>
<loader secure='no'/>
</os>
accès bitwarden
eolebase.ac-test.fr à modifier pour correspondre à la conf
https://eolebase.ac-test.fr:8001/#/
récupérer le mdp de la vm
pour récupérer le mdp => utiliser
mailq
puis voir les courrier en attente sinon ci-dessous
en essayant de se connecter à bitwarden et créant un nouvel utilisateur
https://eolebase.ac-test.fr:8001/#/
Sinon
remonter dans les logs jusqu'au job infra.server.deploy de la vm concerné (partir de la fin)
cucchiaiata-cli v1.user.log.list
"context_id": 357,
"uri_name": "v1.infra.server.deploy",
"user_login": "Anonymous",
"kwargs": {
"server_name": "nsd.cadoles.com"
},
"status": "Success"
},
{
"context_id": 360,
"uri_name": "v1.infra.server.deploy",
"user_login": "Anonymous",
"kwargs": {
"server_name": "dns.cadoles.com"
},
"status": "Failure"
},
{
"context_id": 383,
"uri_name": "v1.user.log.list",
On trouve server.deploy et on prend l'id juste au dessus ici 357.
cucchiaiata-cli v1.user.log.query -c 357 | grep passwo
"root_password": "rj5uHuROPCcs4g",
"root_password": "rj5uHuROPCcs4g",
"root_password": "rj5uHuROPCcs4g",
et voila mdp de la vm
### Ce balader dans l'iso créé
/srv/risotto/images/
pour monter l'image
mkdir a
mount nsd.cadoles.com.iso a
fichier de conf qui seront utilisé pour le build d'image
a/tmpfiles.d/
Emplacement file
emplacement des modèles
- cluster servermodel zone
/srv/risotto/cache
-modèles prêt pour serveurs, cahque dossier représente un établissement. dans les établissements ce trouve les modèles de serveurs
/srv/risotto/cache/servermodel/3
dataset => FICHIER DE CONF, ET TEMPLATES
/usr/share/risotto/seed/
infos annexes
https://www.freedesktop.org/software/systemd/man/systemd-repart.html