web-dev-qa-db-fra.com

Comment obtenir une sortie de commande Linux pour l'attribut chef

Je veux obtenir une sortie de commande dans un attribut chef. Quelqu'un peut-il m'aider à définir cela dans la ressource d'exécution ou la ressource bash.

Ruby_block "something" do
    block do
        #tricky way to load this Chef::Mixin::ShellOut utilities
        Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)      
        command = 'cat #{fileName}'
        command_out = Shell_out(command)
        node.set['my_attribute'] = command_out.stdout
    end
    action :create
end

Comment utiliser les attributs dans le code ci-dessus.

15
SASI

La réponse à votre question est assez mich donnée dans Comment puis-je mettre la sortie d'une "exécution de ressource" de Chef dans une variable . Avec une petite modification, si je comprends bien la question, votre problème peut être résolu comme suit:

Ruby_block "something" do
    block do
        #tricky way to load this Chef::Mixin::ShellOut utilities
        Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)      
        command = 'cat /etc/hostname'
        command_out = Shell_out(command)
        node.set['my_attribute'] = command_out.stdout
    end
    action :create
end

Remplacez le contenu de command par la commande que vous souhaitez exécuter et my_attribute avec l'attribut que vous souhaitez définir.

23
StephenKing