0

簡単なカスタム レシピの GitHub リポジトリを作成しました。

my-cookbook/
|- recipes/
   |- appsetup.rb

カスタム シェフ レシピにレポを次のように追加しました。https://github.com/my-github-user/my-github-repo.git

my-cookbook::appsetupセットアップの「サイクル」に追加しました。

構文をめちゃくちゃにするとロードに失敗するため、実行されていることがわかります。

これは私のappsetup.rbです:

node[:deploy].each do |app_name, deploy|
  script "install_composer" do
    interpreter "bash"
    user "root"
    cwd "#{deploy[:deploy_to]}/current"
    code "curl -sS https://getcomposer.org/installer | php && php composer.phar install --no-dev"
  end
end

ubuntu ユーザーで SSH 経由でインスタンスにログインすると、composer がインストールされません。

また、次のことを試してみましたが、役に立ちませんでした(nodejsのインストール):

node[:deploy].each do |app_name, deploy|
  execute "installing node" do
    command "add-apt-repository --yes ppa:chris-lea/node.js && apt-get update && sudo apt-get install python-software-properties python g++ make nodejs"
  end
end

ノードはインストールされず、ログにエラーはありません。ログ内のクックブックへの唯一の参照は次のとおりです。

[2014-03-31T13:26:04+00:00] INFO: OpsWorks Custom Run List: ["opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client", "opsworks_stack_state_sync", "mod_php5_apache2", "my-cookbook::appsetup", "deploy::default", "deploy::php", "test_suite", "opsworks_cleanup"]
...
2014-03-31T13:26:04+00:00] INFO: New Run List expands to ["opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client", "opsworks_stack_state_sync", "mod_php5_apache2", "my-cookbook::appsetup", "deploy::default", "deploy::php", "test_suite", "opsworks_cleanup"]
...
[2014-03-31T13:26:05+00:00] DEBUG: Loading Recipe my-cookbook::appsetup via include_recipe
[2014-03-31T13:26:05+00:00] DEBUG: Found recipe appsetup in cookbook my-cookbook

どこかで重要なステップが欠落していますか? レシピは明確に認識されて読み込まれますが、実行されていないようです。

(以下は架空の名前です: my-github-user、my-github-repo、my-cookbook)

4

4 に答える 4

3

あなたがクックブックを放棄したことは知っていますが、クックmetadata.rbブックのルートにファイルがないことが原因であるとほぼ 100% 確信しています。

于 2014-09-24T15:04:33.700 に答える
2

クックブック名​​にダッシュを含めないでください。私は同じ問題を抱えていましたが、「_」に置き換えると解決しました。

于 2014-07-30T08:19:40.770 に答える
0

コマンドを正常に実行しないと、現在のディレクトリにファイルが見つかりません。最後のリリース フォルダー内をチェックして、そこに配置されているかどうかを確認します。

CWD を : /tmp に変更して、適切なディレクトリなどのセットアップが行われたかどうかを確認することをお勧めします。

于 2014-04-01T00:51:46.300 に答える
0

これらのコマンドが黙って失敗する場合、&& の使用が失敗を覆い隠している可能性があります。

add-apt-repository に関しては、これは対話型コマンドです。「--yes」オプションを使用して、デフォルトで「yes」と答えるようにしてみてください。これにより、インタラクティブではなくなります。

于 2014-03-31T18:12:25.927 に答える