« Le portail self-service » : différence entre les versions

De Le Labo de Yorzian
Aller à la navigation Aller à la recherche
Ligne 83 : Ligne 83 :


   source:
   source:
     instance: "self1" #nom de l'image créée
     #instance: "self1" #nom de l'image créée
    image: "alpine/3.18"
     type: "container" #ou "virtual-machine"
     type: "container" #ou "virtual-machine"


Ligne 96 : Ligne 97 :


  session:
  session:
   command: ["bash"]
   command: ["sh"]
   expiry: 900
   expiry: 900
   console_only: false
   console_only: false

Version du 26 février 2025 à 12:52

L'idée derrière le portail self-service, est d'avoir une plateforme pour accéder à des machines préconfigurées pour des cours ou des expérimentations:

  • La machine a une durée de vie définie à l'avance
  • Il y a un contrôle de limite par adresse IP
  • Basé sur des images créées localement

Projet d'origine

https://github.com/lxc/incus-demo-server

Le fork

https://github.com/yrougy/incus-demo

Usage

Pour le moment, sur la même machine que le serveur Incus.

Dépendances

https://go.dev/doc/install pour golang

apt install -y git build-essential screen
git clone https://github.com/lxc/incus-demo-server
cd incus-demo-server
export CGO_ENABLED=1 # pour permettre l'intégration de C dans le projet GO
go install github.com/lxc/incus-demo-server/cmd/incus-demo-server@latest
Construction
make
Configuration
server:
  api:
    address: "[::]:8080"
  blocklist:
    - 1.2.3.4
  feedback:
    enabled: false
    timeout: 20
    email:
      smtp: SERVER:PORT
      from: ADDRESS
      to: ADDRESS
      subject: User feedback from try-it
  limits: # 64 machines au total, chaque IP peut en demander 10
    total: 64
    ip: 10
  maintenance:
    enabled: false
    message: Custom downtime message
  proxy:
    address: ""
    certificate: |-
    key: |-
      PEM
  statistics:
    keys:
      - 69280011-c8a5-4ef9-ae3d-e7caf4d06e06
  terms: |-
    ToS<br />
    <ul>
      <li>Access to this service may be revoked at any time for any reason</li>
      <li>Access to this service is solely provided to test</li>
      <li>Your IP address, access time and activity on the test server may be recorded</li>
      <li>Any abuse of this service may lead to a ban or other applicable actions</li>
    </ul>
incus:
  # certificate est la clé publique du certificat d'authentification
  # key est la clé privée du certificat d'authentification 
  # on peut la faire avec openssl pkcs12 -in incus-ui.pfx -out incus-ui.pem -nodes
  # et ça sera dans le incus-ui.pem
  client:
    certificate: |- # incusPortal.crt
    key: |-         # incusPortal.key
  project: default
  server:
    url: "https://nomdelinstance:8443"
    # Certificate est le certificat de l'interface web 
    certificate: |-
  target: nomDuCluster

instance:
 allocate:
   count: 4
   expiry: 21600
 source:
   #instance: "self1" #nom de l'image créée
   image: "alpine/3.18"
   type: "container" #ou "virtual-machine"
 profiles:
   - default #Profil Incus à utiliser
 limits:
   cpu: 1
   disk: 10GiB
   processes: 200
   memory: 512MiB
session:
 command: ["sh"]
 expiry: 900
 console_only: false
 network: ipv6
Appel
~/go/bin/incus-demo-server