Table of Contents
knife-tar
Présentation
knife-tar est un plugin facilitant le téléchargement des composants du chef dans un fichier tar.gz vers le serveur chef ainsi que le téléchargement de composants du format chef-serveur au format tar.gz.
Il existe de multiples façons de «publier» les cookbooks chef:
- créer une étiquette dans le gestionnaire de contrôle de source et télécharger le livre de cuisine à partir de cette étiquette.
- utilisation d'outils pour télécharger des livres de cuisine de git
- utilistation d'outils comme berkshelf qui permettent de télécharger des livres de cuisine de github.
knife-tar permet de déposer tous les fichiers d'un livre de recettes dans un fichier tar et de le transférer dans les dépôts.
Conventions
Structure du fichier Tar
Le plugin knife-tar permet d'utiliser un fichier tar pour télécharger une variété de composants de chef. Par conséquent, le fichier tar doit être créé d'une manière spécifique.
La structure du fichier tar doit ressemble à une structure de chef-repo standard du type :
[tarName].tar.gz |- cookbooks | |- [cookbookName] | [cookbookName]-[cookbookVersion] |- data_bags | |- [dataBagName] | | |- [valueName].[json|js|rb] |- environments | |- [environmentName].[json|js|rb] |- roles | |- [roleName].[json|js|rb] |- web_users | |- [webUserName].[json|js|rb] |- nodes | |- [nodeName].[json|js|rb]
OU
[tarName].tar.gz |- [projectName] | |- cookbooks | | |- [cookbookName] | [cookbookName]-[cookbookVersion] | |- data_bags | | |- [dataBagName] | | | |- [valueName].[json|js|rb] | |- environments | | |- [environmentName].[json|js|rb] | |- roles | | |- [roleName].[json|js|rb] | |- web_users | | |- [webUserName].[json|js|rb] | |- nodes | | |- [nodeName].[json|js|rb]
Noms de Cookbook Chef
Afin de prendre en charge le téléchargement de plusieurs versions du même livre de recettes, les noms de répertoires suivants sont valides pour les livres de recettes,
[cookbookName] (ex java) [cookbookName]-[cookbookVersion] (ex java-1.0.2)
Extensions de fichier de composant Chef
Tous les fichiers de composants de chef (c'est-à-dire tous les composants sauf les livres de recettes) doivent se terminer par l'extension appropriée '.js', '.json' ou '.rb' définie par Chef.
Le répertoire racine (ou [nomprojet]) dans la seconde structure peut être n'importe quoi sauf les noms des composants du chef (livres de cuisine, sacs_données, environnements, rôles …)
Il n'est pas nécessaire d'avoir tous les répertoires dans l fichier tar pour utiliser le plugin knife-tar. Il faut juste avoir les répertoires contenant les composants qui doivent être utilisés avec knife-tar. Donc, si on veut seulement l'utiliser pour télécharger des livres de recettes, un fichier tar valide pourrait ressembler,
[tarName].tar.gz
|- cookbooks
| |- [cookbookName]
OU
[tarName].tar.gz
|- [projectName]
| |- cookbooks
| | |- [cookbookName]
Installation
Installer la gem kife-tar.
$ gem install knife-tar
Utilisation
Dans toutes les instances ci-dessous, 'tarPath' représente le chemin du fichier tar sur le système de fichiers local ou une URL.
Upload
Cible | Commande | Description |
---|---|---|
Tout | knife tar upload tarPath (options) | Pour uploader toutes les ressources chef du fichier tar, |
Cookbooks | knife cookbook tar upload tarPath (options) | Pour uploader que les livres de recettes du fichier tar, |
Roles | knife role tar upload tarPath (options) | Pour uploader que les rôles du fichier tar, |
Data Bags | knife data bag tar upload tarPath (options) | Pour uploader que les sacs de données du fichier tar, |
Environnements | knife environment tar upload tarPath (options) | Pour uploader que l'environnement du fichier tar, |
Nodes | knife node tar upload tarPath (options) | Pour uploader que les noeuds du fichier tar, |
Users | knife user tar upload tarPath (options) | Pour uploader que les utilsateurs du fichier tar, |
Download
Cible | Commande | Description |
---|---|---|
Tout | knife tar download tarPath (options) | Pour télécharger toutes les ressources chef du fichier tar, |
Cookbooks | knife cookbook tar download tarPath (options) | Pour ne télécharger que les livres de recettes du fichier tar, |
Roles | knife role tar download tarPath (options) | Pour ne télécharger que less rôles du fichier tar, |
Data Bags | knife data bag tar download tarPath (options) | Pour ne télécharger que les sacs de données du fichier tar, |
Environnements | knife environment tar download tarPath (options) | Pour ne télécharger que l'environnement du fichier tar, |
Nodes | knife node tar download tarPath (options) | Pour ne télécharger que les noeuds du fichier tar, |
Users | knife user tar download tarPath (options) | Pour ne télécharger que lesutilsateurs du fichier tar, |