Chef - Sacs de données

Les sacs de données Chef peuvent être définis comme une collection arbitraire de données que l'on peut utiliser avec des livres de cuisine. L'utilisation de sacs de données est très utile lorsque l'on ne souhaite pas coder en dur les attributs dans les recettes ni stocker les attributs dans les livres de cuisine.

Méthode de travail

Dans la configuration suivante, nous essayons de communiquer avec l'URL du point de terminaison http. Pour cela, nous devons créer un sac de données, qui contiendra le détail de l'URL du point de terminaison et l'utilisera dans notre recette.

Step 1 - Créez un répertoire pour notre sac de données.

[email protected]:~/chef-repo $ mkdir data_bags/hooks

Step 2- Créez un élément de sac de données pour le bac de demande. Il faut s'assurer que l'on utilise une URL requestBin définie.

[email protected]:~/chef-repo $ subl data_bags/hooks/request_bin.json { 
   "id": "request_bin", 
   "url": "http://requestb.in/1abd0kf1" 
}

Step 3 - Créer un sac de données sur le serveur Chef

[email protected]:~/chef-repo $ knife data bag create hooks 
Created data_bag[hooks]

Step 4 - Téléchargez le sac de données sur le serveur Chef.

[email protected]:~/chef-repo $ knife data bag from file hooks requestbin.json 
Updated data_bag_item[hooks::RequestBin]

Step 5 - Mettez à jour la recette par défaut du livre de cuisine pour recevoir le livre de cuisine requis à partir d'un sac de données.

[email protected]:~/chef-repo $ subl cookbooks/my_cookbook/recipes/default.rb 
hook = data_bag_item('hooks', 'request_bin') 
http_request 'callback' do 
   url hook['url'] 
end

Step 6 - Téléchargez le livre de cuisine modifié sur le serveur Chef.

[email protected]:~/chef-repo $ knife cookbook upload my_cookbook 
Uploading my_cookbook [0.1.0]

Step 7 - Exécutez le client Chef sur le nœud pour vérifier si la requête http est exécutée.

[email protected]:~$ sudo chef-client 
...TRUNCATED OUTPUT... 
[2013-02-22T20:37:35+00:00] INFO: http_request[callback] 
GET to http://requestb.in/1abd0kf1 successful 
...TRUNCATED OUTPUT...

Comment ça fonctionne

Le sac de données est une collection nommée d'entrées de données de structure. Il faut définir la saisie de données et appeler l'élément de sac de données dans le fichier JSON. On peut également rechercher un élément de sac de données à partir des recettes pour utiliser les données stockées dans les sacs de données.

Nous avons créé un sac de données appelé hooks. Un sac de données est un répertoire dans le référentiel Chef. Nous avons utilisé un couteau pour le créer sur le serveur.