Comment lire un fichier de contenu au moment de l'exécution? Chef de lit au moment de la compilation
Parce que je suis en cours d'exécution dans cette MIXLIB-11 erreur que j'ai signalée à Mixlib de l'équipe, j'ai besoin de trouver un walkaround, une alternative à Mixlib::Shellout.
Brièvement sur le problème:
Ici est une déclaration qui dit "*Pas de surprise -- la lecture se passe au moment de la compilation, mais le remote_file ressource est en fait créé au moment de l'exécution.**"
À cause de cette caractéristique, Mixlib::Shellout.new("ls", :cwd => '/opt/cubrid/share/webmanager')
soulève "Aucun fichier ou répertoire" erreur, même si ce répertoire est créé au moment de l'exécution par une précédente recette inclus dans cette recette.
Est-il un moyen de lire un fichier/répertoire au moment de l'exécution?
OriginalL'auteur Eye | 2013-03-29
Vous devez vous connecter pour publier un commentaire.
Trouvé une réponse: placer le code dans
ruby_block
, et il sera exécuté au moment de l'exécution.Maintenant la version est correctement remplie à partir du fichier créé dans la recette précédente.
OriginalL'auteur Eye
Si l'aide personnalisée des ressources, vous pouvez utiliser le
load_current_value
méthode.https://docs.chef.io/dsl_custom_resource.html
OriginalL'auteur spuder
Personnellement, je préfère utiliser le
type
commande pour lire le fichier dans une variable lors de l'exécution.Simplement lire le fichier dans une variable, vous pouvez essayer
%x(type "#{v_ip_folder}\\ip.txt")
va exécuter letype
de commande dans l'invite de commande et renvoyez la sortie à lav_ip
la variable spécifiée.OriginalL'auteur dope_vector
Envisager une
remote_file
. Il est exécuté à l'exécution (run) de temps, et il peut travaille également avec les fichiers par exemple:Donc à l'aide d'
remote_file
est bon contourner. Pendant l'écriture d'un code personnalisé nécessitent un temps et peuvent être sujettes à erreur.Voir aussi cette réponse.
remote_file
est pour le transfert ou la copie de fichiers, pas pour la lecture.Votre solution ne permet pas de répondre à la question
OriginalL'auteur Cherry