95 Home
lseys edited this page 2021-09-09 09:57:42 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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

lajustement 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 dune 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