私はubuntuノードから取得しなければならない結果に基づいてレシピからスクリプトを実行する必要があります。私はエージェントのバージョンを稼働させる必要があり、それに基づいてスクリプトを実行する必要があります。以下は私が走っているレシピの状態です。シェフのレシピからシェルスクリプトを実行する
notifies :run, 'bash[uninstall CloudPassage]', :immediate
only_if { Mixlib::ShellOut.new("dpkg -s cphalo | grep Version | awk '{print $2}'" -lt "3.9.5").run_command.success? }
しかし、それは構文を与えています。誰もがubuntuノードからバージョン番号を取得する構文で私を助けることができます。
構文エラー:
FATAL: Cookbook file recipes/default.rb has a ruby syntax error: FATAL: /home/ubuntu/chef-repo/cookbooks/cloudPassage/recipes/default.rb:27:syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' FATAL: ...rsion | awk '{print $2}'" -lt "3.9.5").run_command.success? } FATAL: ... ^ FATAL: /home/ubuntu/chef-repo/cookbooks/cloudPassage/recipes/default.rb:27: syntax error, unexpected ')', expecting '}' FATAL: ... awk '{print $2}'" -lt "3.9.5").run_command.success? } FATAL: ...
私はこの状態を書いていますが、この状態はシェフのレシピから構文エラーを出しています。 – Deepak
料理本がアップロードされましたが、シェフクライアントがノードで失敗しています。私のonly_ifブロックに間違いがありますか? – Deepak
両方のソリューションを試しましたか? '[y.x -lt a.b]'は 'y.x'が' a.b'より小さければ '0'を返します。 –