Chef Recette Comment Faire Pour Vérifier Si Le Fichier Existe
J'ai juste commencé à l'aide de Chef et je suis à essayer de comprendre comment faire pour vérifier si un fichier existe avant de faire quoi que ce soit.
J'ai le fichier de la partie vers le bas pour mon utilisation actuelle de cas, où je suis la suppression d'un fichier de connexion pour le serveur de production, ex:
file '/var/www/html/login.php' do
action :delete
end
Cependant, j'aimerais que la possibilité de vérifier d'abord si le fichier existe, ex.
if (file_exists === true)
file '/var/www/html/login.php' do
action :delete
end
end
Pourquoi avez-vous besoin de cette capacité? N'est pas Chef vérifiez si le système de l'état souhaité est égale à l'état que vous avez décrit, et il ne fait que des modifications si l'état souhaité est-il différent? Ce problème réel ou d'erreur message essayez-vous de résoudre maintenant?
Hey @DavidGrayson merci pour votre réponse. Je suis nouveau avec le Chef, de sorte que vous peut-être raison dans votre façon de penser. Je ne suis pas actuellement toutes les erreurs ou les problèmes, mais je suis tellement habitué à l'écriture des instructions conditionnelles qu'il semblait être la bonne chose à faire - ce qui pourrait être une faille dans ma pensée, que je suis encore à apprendre à connaître les meilleures pratiques de la façon dont le Chef exerce ses activités. N'ai-je pas besoin de vérifier si un fichier existe dans ce cas? Ce qui signifie que je ne vais pas obtenir toute sorte d'erreur si le fichier n'existe pas et je suis toujours excuting une recette qui tente de le supprimer?
Je n'ai pas l'habitude de supprimer des fichiers avec le Chef, mais je sais que lorsque je les créer je n'ai pas besoin d'avoir des "si" états, donc je ne vois pas pourquoi vous auriez besoin d'une instruction "if" lors de la suppression.
Hey @DavidGrayson merci pour votre réponse. Je suis nouveau avec le Chef, de sorte que vous peut-être raison dans votre façon de penser. Je ne suis pas actuellement toutes les erreurs ou les problèmes, mais je suis tellement habitué à l'écriture des instructions conditionnelles qu'il semblait être la bonne chose à faire - ce qui pourrait être une faille dans ma pensée, que je suis encore à apprendre à connaître les meilleures pratiques de la façon dont le Chef exerce ses activités. N'ai-je pas besoin de vérifier si un fichier existe dans ce cas? Ce qui signifie que je ne vais pas obtenir toute sorte d'erreur si le fichier n'existe pas et je suis toujours excuting une recette qui tente de le supprimer?
Je n'ai pas l'habitude de supprimer des fichiers avec le Chef, mais je sais que lorsque je les créer je n'ai pas besoin d'avoir des "si" états, donc je ne vois pas pourquoi vous auriez besoin d'une instruction "if" lors de la suppression.
OriginalL'auteur Corey | 2016-07-07
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans les commentaires, pour une action de suppression, le
if
déclaration est inutile, comme mentionné, parce que si le chef ne trouve pas le fichier à supprimer, il va supposer qu'il a déjà été supprimée.Sinon, en général, vous souhaitez utiliser garde propriétés dans la ressource (disponible pour toutes les ressources), plutôt que d'habillage d'une ressource dans un si-alors.
Et probablement vous aussi souhaitez vous familiariser avec le Ruby
File
les méthodes de la classe.C'est redondant, comme mentionné ci-dessous. Le
file
des ressources déjà ne fait rien pour le:delete
action si le fichier n'existe pas.OriginalL'auteur Karen B
L'idée de base du Chef, c'est que vous l'état de l'état souhaité pour le système, puis Chef compare à l'état réel, et fait tous les changements nécessaires pour ramener le système dans l'état voulu. Vous n'avez pas besoin d'avoir une instruction if pour vérifier si le fichier existe avant de les supprimer; le Chef lui-même devriez vérifier si le fichier existe, si je ne me trompe pas.
OriginalL'auteur David Grayson