# Guide pour la création de VM interne au crans # Étape préliminaire Savoir ce que l'on veut, et regarder les besoins du services que l'on souhaite installer # Création de la VM ## Se connecter à Proxmox Proxmox est un logiciel de virtualisation utilisé au crans, plus d'info ici [Proxmox](./truct/) Pour se connecter au proxmox : ```bash ssh -NL 8006:localhost:8006 sam.adm.crans.org ``` Puis connectez vous `https://localhost:8006/` dans votre navigateur open source préféré (Et connectez vous avec vos identifiants nounous) Trouvez un identifiant de vm qui n'ai pas déjà pris. ##  Se connecter au bon LDAP Se connecter au ldap à l'aide de shelldap par exemple : - `wall-e` pour `adm`, (serveur de service) - `flirt` pour `adh` (service de service) `shelldap -f shelldap_wall-e.rc` Avec le fichier `shelldap_wall-e.rc` (évidemment modifiez `_ton_pseudo` avec votre pseudo nounou) : ``` # Fichier de configuration shelldap admin # de bleizi/shirenn adapté server: ldaps://172.16.10.100:636 binddn: uid=_ton_pseudo,ou=passwd,dc=crans,dc=org basedn: dc=crans,dc=org promptpass: yes tls: yes tls_cacert: /etc/ldap/ldap.pem ``` "Bind password :" -> Entrez votre mot de passe nounous ## Créer l'entrée dans LDAP ### Base de navigation dans le LDAP Les élements commencent par ```d``` sont les dossiers, on peut donc "entrer dans ces dossier". Ici le dossier qui nous interesse est le dossier ```ou=hosts``` qui contient les configurations des différentes VM. Ce sont dans "ces fichiers" de configuration qu’est décrit les la vm. On peut utiliser ```cat``` pour regarder leurs contenues, ```mv``` pour changer leurs noms ou les déplacer. Pour les éditer est ```edit```. Voir :  [doc ldap](/infrastructure/services/ldap.md) pour en savoir plus à propos du LDAP et de shelldap. ### Configuration réseau L'adresse ipv4 est alors : `172.16.[vlan].XYZ ` L'adresse ipv6 est alors : `fd00::10:0:ff:fe0X:YZ[vlan]` L'adresse mac est alors : `02:00:00:0X:YZ:[vlan]` Recommendation : copier une configuration LDAP voisine // On garde ? ## Création de la VM sur Proxmox Créer une VM dans Proxmox avec l'iso debian. Mettez l'id que vous avez sélectionné précédemment. Et le nom que vous souhaitez donner à la machine (un nom avec une ref obscure ou un nom qui reprends le nom du service qui sera hébergé afin de facilement savoir à quoi sert la VM) Convention du Crans (plus ou moins respecté) : Si votre id est XYZ (avec X, Y, Z des chiffres) > - Ne pas modifier d’autre si option inconnu > - Bien spécifier dans l’option Disks ou sera stocké la VM: serveur adhérent avec 10TB > - Entrer la bonne adresse MAC dans le networking ## Installation de Debian ### Config réseaux Configurez l'interface réseau de la VM (pas de DHCP): l’ip du serveur lui même est à entrer manuellement (pas d’autoconf) Gateway : ipv4 : 172.16.10.101 (bizarre, fournit par routeur sam) romanesco : ipv4 : 172.16.10.128 (DNS récursif) hostname : le_nom_de_la machine Nom de domaine pour les machines adm : `adm.crans.org` Fqdm : `[nom du service].adm.crans.org` __Installer openssh__ si pas fait dans l’installateur changer la config openssh : ```/etc/ssh/sshd_config``` changer `PermitRootLogin prohibit-password` -> `PermitRootLogin yes` > :warning: > Ne pas oublier de changer `PermitRootLogin` avec prohibit-password après avoir lancer ansible (prochaine étape) # Setup initial de la VM Installez ansible sur votre machine. Télechargez le depo git avec les fichiez ansible du Crans. [depot git](https://gitlab.crans.org/nounous/ansible) Copiez votre clé ssh (public) sur le compte root. Vérifiez que votre config n'a pas de problème ``` plays/root.yml -l [machine a déployer].adm.crans.org --extra-vars='ansible_become_user=root' -u root --check ``` Une fois que le check n'a plus d'erreur, vous pouvez lancer la même commande sans le `--check`. Plus d'info sur ansible dans son [guide dédier](https://gitlab.crans.org/nounous/ansible). ``` plays/root.yml -l [machine a déployer].adm.crans.org --extra-vars='ansible_become_user=root' -u root ``` # Post setup inital changer la config openssh : /etc/ssh/sshd_config changer `PermitRootLogin yes` -> `PermitRootLogin prohibit-password`