web-dev-qa-db-ja.com

Linuxコマンド出力をchef属性に取得する方法

コマンド出力をchef属性に取得したいのですが。実行リソースまたは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

上記のコードで属性を使用する方法。

15
SASI

あなたの質問への答えは で与えられたかなりの方法ですChefの「リソースの実行」の出力を変数に入れるにはどうすればよいですか 。小さな変更を加えると、質問が正しく理解できれば、問題は次のように解決できます。

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

commandの内容を、実行するコマンドとmy_attributeに設定する属性を指定します。

23
StephenKing