Ich versuche, ein Rezept in Chef schreiben, aber ich bin fest, wie ich eine mehrzeilige Ausführung in der Befehlszeile in Linux tun kann. Erstens ist das Rezept und das Folgen ist die Fehlerausgabe, die ich erhalte.Chef Multi line Befehl
node['freeswitch']['source']['dependencies'].each { |d| package d }
execute "apt_update" do
command "wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -&&"
"echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list &&"
"apt-get update &&"
"apt-get install -y --force-yes freeswitch-video-deps-most &&"
# because we're in a branch that will go through many rebases it's
# better to set this one, or you'll get CONFLICTS when pulling (update)
git config --global pull.rebase true
end
Unten ist die Fehlerausgabe
NoMethodError
-------------
No resource or method named `command' for `Chef::Recipe "source"'
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/freeswitch/recipes/source.rb:6:in `from_file'
/var/chef/cache/cookbooks/freeswitch/recipes/default.rb:5:in `from_file'
Relevant File Content:
----------------------
/var/chef/cache/cookbooks/freeswitch/recipes/source.rb:
1: #include_recipe 'apt'
2:
3: node['freeswitch']['source']['dependencies'].each { |d| package d }
4:
5: execute "apt_update"
6>> command 'wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -'&&
7: 'echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list' &&
8: 'apt-get update' &&
9: 'apt-get install -y --force-yes freeswitch-video-deps-most' &&
10:
11: # because we're in a branch that will go through many rebases it's
12: # better to set this one, or you'll get CONFLICTS when pulling (update)
13: 'git config --global pull.rebase true'
14:
15: execute "git_clone" do
Platform:
---------
x86_64-linux
Running handlers:
[2016-08-02T09:19:35+01:00] ERROR: Running exception handlers
Running handlers complete
[2016-08-02T09:19:35+01:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2016-08-02T09:19:35+01:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2016-08-02T09:19:35+01:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-08-02T09:19:35+01:00] ERROR: No resource or method named `command' for `Chef::Recipe "source"'
[2016-08-02T09:19:35+01:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Gewöhnen Sie sich an Chef und uns die entsprechenden Ressourcen, zB [remote_file] (https://docs.chef.io/resource_remote_file.html), das [apt Kochbuch] (https://supermarket.chef.io/ Kochbücher/apt) und die Ressource [package] (https://docs.chef.io/resource_package.html). Verwenden Sie Chef nicht nur als Runner für Shell-Skripts. Du wirst damit keinen Spaß haben. – StephenKing
In diesem Fall ist die Ausführung von der Quelle die bevorzugte Option. – jaseUK