documentation/howto/creer_vm_adherent.md

186 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Création de machine virtuelle pour les adhérent⋅es
Le crans propose un système de locations de vms dont vous pouvez retrouver les
tarifs dans les annexes des statuts de l'association. En voici un
récapitulatif ici, mais attention celui-ci peut ne pas être à jour et seul
ce qui est marqué dans les statuts fait foi.
| Article | Tarifs |
|:---------------------------------------:|:------:|
| Service minimal | 10€ |
| Connexion internet | 30€ |
| Cœur additionnel | 5€ |
| 2GB de RAM additionnel | 5€ |
| Disque additionnel (par tranche de 16G) | 1€ |
Le service minimal comprend:
* un disque de 8G
* un cœur
* 2G de ram
Tous les services sont proposés pour une durée de 1 an.
## Utilisateur⋅ices
La documentation pour les utilisateur⋅ices se trouvent sur le
[wiki](https://wiki.crans.org/VieCrans/VPS).
## Nounous et apprenti⋅es
### Facturation
Quand cela est possible, privilégier la note. Sinon, voir avec un⋅e
trésorier⋅ère pour d'autres méthodes (espèces, virement, ...).
### LDAP
Quand un⋅e adhérent⋅e vous demande de lui créer une vm, il faut au
préalable læ rajouter dans le ldap des adhérent⋅es (qui n'est pas le même
que le ldap re2o).
Celui ci se situe sur flirt et à la structure suivante:
```txt
ou=users
├── cn=toto
└── cn=titi
ou=clubs
└── o=rover
ou=hosts
├── cn=voyager
└── cn=curiosity
```
Pour référence ma configuration `shelldap` pour me connecter au ldap est la
suivante:
```txt
# +---------------------------------+
# | Connexion à flirt.adm.crans.org |
# +---------------------------------+
server: ldaps://flirt.adm.crans.org/
promptpass: yes
binddn: cn=admin,dc=adh,dc=crans,dc=org
basedn: dc=adh,dc=crans,dc=org
```
et le mot de passe est disponible dans le password-store sous `ldap-adh`.
#### Utilisateur⋅ices
Les objets utilisateur⋅ices dispose des champs suivants:
```txt
dn: cn=toto,ou=users,dc=adh,dc=crans,dc=org
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: toto
description: birthDate:1998-01-08
description: birthLocation:Cachan
description: membershipStart:20xx-xx-xx
description: membershipEnd:20xx-xx-xx
description: re2oId:xxxxx
givenName: Toto
mail: nobody [AT] crans [DOT] org
postalAddress: 60 rue camille desmoulins, 94230, Cachan
sn: Passoir
telephoneNumber: +336xxxxxxxx
userPassword: {CRYPT}$6$…
```
Le script `addadherent` du repo
[crans-ldap](https://gitlab.crans.org/nounous/crans-ldap) permet néanmoins de
configurer la plupart des informations à renseigner:
```bash
[ _shirenn@flirt ] $ ./addadherent --re2o-id xxxxx toto
Prénom: Toto
NOM: Passoir
Adresse email: nobody [AT] crans [DOT] org
Adresse: 60 avenue camille desmoulins, 94230, Cachan
Numéro de téléphone: +33600000000
Date de naissance (YYYY-MM-DD): 1998-01-08
Lieu de naissance: Cachan
```
Cela rajoutera automatiquement la date de début d'adhésion mais pas celle de
fin d'adhésion, celle-ci doit être rajoutée à la main en utilisant votre
client ldap favori.
#### Club
Les clubs sont des objets ldap très simple qui ne contiennent que le nom des
adhérent⋅es qui gèrent le club:
```txt
dn: o=rover,ou=clubs,dc=adh,dc=crans,dc=org
objectClass: organization
objectClass: top
description: toto
o: rover
```
Similairement, un script permet de rajouter ces informations automatiquement au
ldap:
```txt
[ _shirenn@flirt ]$ ./addclub rover
Pseudo du responsable: toto
Pseudo du responsable: titi
Pseudo du responsable:
```
#### Machines
Les machines sont des objets ldap qui répertorient des informations sur leur
configuration et leurs propriétaires:
```txt
dn: cn=curiosity,ou=hosts,dc=adh,dc=crans,dc=org
objectClass: top
objectClass: device
objectClass: ipHost
objectClass: ieee802Device
cn: curiosity
description: ip.icmp.in,ip.icmp.out,ip6.icmpv6.in,ip6.icmpv6.out,ip.tcp.out:0-65535,ip6.tcp.out:0-65535,ip.udp.out:0-65535,ip6.udp.out:0-65535,ip.tcp.in:22,ip6.tcp.in:22
ipHostNumber: 185.230.78.199
macAddress: 02:a0:00:01:99:12
owner: o=rover,ou=clubs,dc=adh,dc=crans,dc=org
serialNumber: 199
```
Le script `addadherenthost` crée la machine dans le ldap
```txt
[ _shirenn@flirt ]$ ./addadherenthost --ip 185.230.78.199 --mac
02:a0:00:01:99:02 --vmid 199 --club rover curiosity
```
Le part-feu par défaut laisse passer tous les paquets icmp, tous les paquets en
sortie et ne laisse rentrer que le port 22 en tcp, en ip legacy et en ipv6.
Une fois l'adhérent⋅e ou le club et la machine rajoutée dans le ldap. Les
scripts devraient mettre à jour la configuration du parefeu, du dhcp et de
proxmox.
### Proxmox
Il faut maintenant aller sur le cluster constitué de gulp, odlyd et stitch
pour créer la machine virtuelle. C'est du clic clic dans proxmox, vous êtes
assez grand⋅es pour savoir lire des menus. (Par contre faites bien attention
à créer les disques sur la pool `vm`).
Ensuite, deux possibilités, soit l'adhérent⋅e vous a juste demandé de
créer la machine virtuelle et à ce moment là c'est fini et iel peut aller la
configurer seul⋅e (c.f. section suivante), soit iel vous a demandé si vous
pouviez lui installer une distribution de son choix.
Vous pouvez alors lui demander une clé publique ssh, et après avoir installé
la vm, vous la déposez dans `/root/.ssh/authorized_keys` (en faisant attention
à créer le `.ssh` avec les bonnes permissions `mkdir -m 0700 /root/.ssh`) et
vous supprimez les mots de passe que vous avez rentrer pendant l'installation
`passwd -d root`).