1

を介してノードにchefをセットアップしようとしていますknife bootstrap IP。ネイティブ拡張(mkmf)がビルドエッセンシャルを必要とするまでは、正常に機能しているようです。knifeがログインに使用するユーザーはrootであるため、knifeはbuild-essentialsをインストールできる必要があります。

これを自動化できるかどうか、またはブートストラップしてこれらのパッケージをインストールする前にすべてのマシンにログインする必要があるかどうかは誰にもわかりません。

ありがとう、
ロビン

4

1 に答える 1

2

できることがいくつかあります。

  1. OS インストールまたは基本イメージに build-essentials を配置して、ネイティブ拡張をコンパイルするものをインストールしようとする前にそこにあるようにします (Chef をインストールする場合、これはおそらく JSON RubyGem です)。

  2. ブートストラップ スクリプトにインストールされたリストに build-essentials パッケージを追加します。ただし、デフォルトのブートストラップ テンプレートでubuntu10.04-gems、これは既に行われています。

  3. Opscodeフルスタック インストーラーを使用します。Opscode は、Chef クライアント (またはソロ) を実行するために必要な libc 以上のすべてのプリコンパイル済みネイティブ パッケージをビルドします。このページには、小さなスクリプトを使用してプラットフォームを検出し、S3 バケットから正しいパッケージをダウンロードする方法が記載されています。たとえば、Ubuntu 10.04 を使用している場合、プラットフォーム、バージョン、およびアーキテクチャが検出され、適切な .deb パッケージが取得されます。これは、このテンプレートknife bootstrapを使用して実行できます(Chef の次のリリース バージョンに含まれる予定です)。

于 2012-01-02T17:03:13.843 に答える