問題タブ [chef-recipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - テンプレート パスに予期しない tIDENTIFIER があります
私は Ruby について少し知っているが、あまりよく知らないということを前置きしておきます。したがって、これはよくある Ruby の間違いかもしれません (しかし、答えが見つからないようです!)。
このChefレシピがあります(Vagrantを使用して実行):
これは次のメッセージで失敗します。
「関連するファイルの内容」がファイルのさまざまな部分から変更されているように見えるため、これはあまり意味がありません。
文字列にスラッシュを挿入することについて、Ruby には何かありますか?
ruby - Chef レシピ内の DRY
シェフのレシピで少し DRY を行う最良の方法は何ですか? つまり、Ruby コードのほんの一部を分割するだけなので、何度もコピーして貼り付けるわけではありません。
もちろん、次の場合は失敗します。
1 つのレシピに複数の ruby_block を含めることができます。それらは異なることを行い、真の冪等性を持たせるには異なる not_if ブロックが必要だからです。
git - Opscode Chef - /shared/cached-copy をクリーンアップする方法
パイプラインで Opscode Chef を使用しており、デプロイ ( http://docs.opscode.com/resource_deploy.htmlを参照) によってソースコードの完全なコピーが /shared/cached-copy に作成されることに気付きました。
その .git/object フォルダーには、すでに 1,000 近くの完全なバージョン (デルタだけでなく!) があるため、ファイルサイズはどんどん大きくなっています。
これをクリーンアップする、または完全に防止する方法はありますか? まったく必要ありません。
確かに、各展開後にディレクトリを削除する何かを書くことができますが、これを処理する良い方法はありますか? ありがとう。
chef-infra - Chef Apache2 web_app 構成
Opscode cookbookを使用して、chef を使用して Apache をプロビジョニングしようとしています。以下のようにデフォルトの属性を設定しました。テンプレートファイルを作成しました/vagrant/sites-available/sof.conf
(/vagrant/sites-available/sof.conf.erb
念のためにも)。
テンプレートを評価したり、サイトを有効にしたりすることはありません。なにが問題ですか?
(それが何かを変えるならchef-serverを使う)
amazon-web-services - アプリサーバーの起動後にシェフのレシピを実行するにはどうすればよいですか
Amazons OpsWorks の使用
PHP アプリケーション サーバーを初期化することができます。それは git からプロジェクトをダウンロードしてセットアップします。動作するカスタム レシピを実行しSetup
てダウンロードしますcomposer
が、これは git リポジトリがダウンロードされる前に実行されます。 、許可を変更しようとするのは時期尚早です。
私は現在Deploy
、git プロジェクトのダウンロードの一環として作成されたいくつかのファイルのアクセス許可を変更するレシピを持っていますが、このレシピは新しいインスタンスをセットアップするときに起動されないようです。手動でデプロイすることによってのみ実行できますアプリ。
git プロジェクトがシェフによってダウンロードされた後、インスタンスが作成されたときにレシピを実行するにはどうすればよいですか (そのため、サイトが自動スケーリングされ、新しいインスタンスが起動されると、ファイルのアクセス許可を正しく設定するためにレシピが実行されます)
chef-infra - Vagrant の Chef Recipe が、実行時間の長い w-get ダウンロードで rest_timeout または timeout オプションを尊重しない
シェフのレシピで使用する大きなファイルを wget しようとしています。これは約 350 MB のデータベース バックアップです。ファイルを取得するために wget を使用しています。これが私のレシピです。
何を試しても、次の結果が得られます。
rest_timeout オプションを追加できるように、Vagrant にモンキー パッチを適用してみました。
これにより、rest_timeout オプションを持つ /tmp/vagrant-chef-1/solo.rb が生成されます。
しかし、Chef が完了できないという同じエラーが引き続き表示されます。Chef のタイムアウトやその他の問題でレシピが停止することなく、この大規模なダウンロードを機能させるための提案はありますか? マシンをセットアップして内部から wget を実行すると、正常に動作します。どんな助けでも大歓迎です!
api - Chef Solo レシピで Vagrant プロパティをプログラムで取得する
/vagrant/css
CSSファイルを生成し、それをWebルートディレクトリ(私の場合はVM上)のどこかに置くChef(ソロ)レシピがあります。問題は、レシピが VM 上の vagrant 同期ディレクトリへの絶対パスを知る必要があることです。これは、あるフォルダーでVagrantfile
あり、デフォルトで/vagrant
は VM 内にマップされます。
私はそのパスを設定する方法を知っています:
しかし、問題は、それをレシピにどのように知らせるかです/synced/dir/on/vm
。
現在、私はそれを使用しています:
レシピ コード内で使用できますnode["base_directory"]
が、これには欠点があります。複数のレシピを記述する場合node["base_directory"]
、すべてのレシピで使用するのは不便です。パスをハードコーディングする方がはるかに優れていますがchef.json
、すべてのレシピで同じキーを使用する必要があります。
さらに、レシピを共有したい場合は、ユーザーにその"base_directory" => "/vagrant"
キーと値のペアをVagrantfile
.
レシピ コードで VM 上のこの同期されたディレクトリ パスを取得する API メソッドはありますか? または、より一般的に: Chef レシピから Vagrant 固有のプロパティを取得する方法はありますか?
私は Vagrant のドキュメントを精査しましたが、そのトピックに関するページは 1 つだけのようで、Vagrant に固有のものであるため、Chef のドキュメントにも関連する情報はありません。