# Packer - Plugins OpenNebula

Plugins [Packer](https://www.packer.io/) pour [OpenNebula](https://opennebula.org/)

## Utilisation des plugins

Télécharger la [dernière versions des plugins](https://forge.cadoles.com/Cadoles/packer-opennebula/releases) pour votre plateforme et [configurer votre installation](https://www.packer.io/docs/extending/plugins.html#installing-plugins) de Packer pour utiliser ceux ci.

## Plugins

### Post-processors

#### `image-template`

Plugin permettant de mettre à jour un template d'image OpenNebula en utilisant l'API XML-RPC de celui ci.

##### Exemple d'utilisation

```json
{
  "post-processors": [
    {
      "type": "opennebula-image-template",
      "user": "<Utilisateur OpenNebula>",
      "password": "<Mot de passe OpenNebula>",
      "endpoint": "<URL du point d'entrée de l'API XML-RPC OpenNebula>",
      "image_name": "<Nom du template de l'image OpenNebula à créer/modifier>",
      "image_template": [
        "DESCRIPTION = \"<Description du template>\"",
        "DRIVER = \"qcow2\"",
        "TYPE = OS",
        "PERSISTENT = NO",
        "PATH = \"<Chemin (ou URL) vers l'image>\""
      ],
      "acl": {
        "group_use": 1
      },
      "owner": {
        "group": "users"
      },
      "datastore_name": "<Nom du Datastore dans lequel enregistrer l'image>",
      "auto_update_vm_templates": true,
      "cleanup_unused_images": true
    }
  ]
}
```

Voir la [documentation OpenNebula](https://docs.opennebula.org/5.4/operation/references/img_template.html#image-definition-template) pour connaitre les attributs possibles pour le template.

## Construire les plugins depuis les sources

### Dépendances

- [Go >= 1.10](https://golang.org/)
- [dep >= 0.4.1](https://github.com/golang/dep)

### Procédure

```
./script/dist
```

## FAQ

### Comment utiliser mon plugin en phase de développement ?

Vous pouvez utiliser [`modd`](https://github.com/cortesi/modd) pour recompiler à la volée le binaire du plugin et créer un [fichier de configuration pour Packer](https://www.packer.io/docs/extending/plugins.html#testing-plugins) pour lui indiquer où trouver le binaire de votre plugin en développement.

## Licence

GPL-3.0
