Question

J'ai du mal à convaincre le chef de télécharger un fichier que je dois utiliser dans une recette à partir d'un serveur SVN.

subversion "download installer" do
  repository "http://svnrepourl/path/to/installer.msi"
  revision "HEAD"
  destination "C:\\chef-repo\\cookbooks\\common\\files"
  action :export
  svn_username "username"
  svn_password "password"
end

Voici le résultat de l’exécution chef-client :

Compiling Cookbooks...
Converging 1 resources
Recipe: common::svntest
  * subversion[download installer] action export[2014-01-09T14:41:42-05:00] INFO
: Processing subversion[download installer] action export (common::svntest line
12)
 (up to date)
[2014-01-09T14:41:42-05:00] INFO: Chef Run complete in 1.482104 seconds
[2014-01-09T14:41:42-05:00] INFO: Running report handlers
[2014-01-09T14:41:42-05:00] INFO: Report handlers complete
Chef Client finished, 0 resources updated

La ligne 12 est "subversion" télécharger le programme d'installation "do".Ce n'est pas une sortie très utile - je n'ai aucune idée de ce qui se passe sous le capot ici.Il ne télécharge le fichier nulle part sur mon système – le répertoire de destination est vide.

L'exécution de cette commande fonctionne correctement :

svn export -r HEAD http://svnrepourl/path/to/installer.msi --username username --password password C:\chef-repo\cookbooks\common\files

Il télécharge avec succès le fichier depuis le serveur et le place dans la destination.Maintenant, je peux simplement écrire cette commande dans un bloc d'exécution, mais j'aimerais le faire à la manière de Chef.Comment puis-je télécharger un fichier spécifique à partir d’un dépôt SVN sous Windows ?

Était-ce utile?

La solution

On dirait qu'il s'agit d'un bug dans Chef, documenté ici.

Pour comprendre cela, j'ai couru chef-client -l debug > log.txt, ce qui m'a amené à ces lignes :

[2014-01-10T09:35:00-05:00] INFO: Processing subversion[download installer] action export (common::svntest line 12)
[2014-01-10T09:35:00-05:00] DEBUG: subversion[download installer] export destination C:\chef-repo\cookbooks\common\files already exists or is a non-empty directory - nothing to do

On dirait que la ressource Chef subversion nécessite un répertoire vide comme destination (la destination que j'ai spécifiée dans l'OP contient un seul dossier).Notez que c'est pas le cas avec la commande svn shell - j'ai réussi à exporter vers un répertoire non vide avec elle.

À ce stade, je vais simplement utiliser une ressource d'exécution pour récupérer le fichier dont j'ai besoin et j'espère qu'Opscode parviendra à corriger ce bug de longue date.

Un merci spécial à la communauté IRC de Chef.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top