1

私はシェフを学んでいますが、これまでのところ、すべての opscode クックブックをクックブック ディレクトリに置き、すべてのカスタマイズをサイト クックブックに置くのが最善であることを理解しました。このようにして、たとえば apt cookbook を site-cookbooks にミラーリングし、

デフォルト['apt']['compile_time_update'] = true

その前に行わなかった apt-get 更新を強制します。ところで、この属性ファイルが「customize.rb」という名前になることを知るのにかなり時間がかかり、私の知る限り、どこにも文書化されていません。

シンプルな LAMP スタックの依存関係を持つすべてのクックブックを取得するには、vagrant-librarian プラグインを使用しています。したがって、私のCheffileは次のようになります。

site 'http://community.opscode.com/api/v1'

cookbook 'apt', '~> 2.8.2'
cookbook 'openssl', '~> 4.4.0'
cookbook 'apache2', '~> 3.1.0'
cookbook 'mysql', '~> 6.1.0'
cookbook "php", github: "priestjim/chef-php"
cookbook 'phpmyadmin', '~> 1.0.6'

私のVagrantfileは次のとおりです。

Vagrant.configure(2) do |config|
   config.vm.box = "ubuntu/trusty64"
   config.vm.provider "virtualbox" do |v|
      v.memory = 1024
      v.name = 'chef-lamp'
   end
   config.vm.network "private_network", ip: "192.168.33.10"
   config.vm.host_name = "project.dev"
   config.vm.synced_folder "./public", "/vagrant/"

   config.omnibus.chef_version = "12.3.0"
   config.vm.provision "chef_solo" do |chef|
   chef.arguments = '--force-formatter'
   chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
   chef.add_recipe 'apt'
   chef.add_recipe 'build-essential'
   chef.add_recipe 'mysql'
   chef.add_recipe 'xml'
   chef.add_recipe 'openssl'
   chef.add_recipe 'apache2'
   chef.add_recipe 'apache2::mod_php5'
   chef.add_recipe 'apache2::mod_rewrite'
   chef.add_recipe 'php'
   chef.add_recipe 'php::module_mysql'
   chef.add_recipe 'apache2::mod_php5'
   chef.add_recipe 'apache2::vhost'
   #chef.add_recipe 'phpmyadmin'
  end
 end

私の主な質問は、Apache がスレッド化された MPM を実行しているなど、apache を再起動しようとするとコンパイルエラーが発生するランリストの途中にあるにもかかわらず、シェフが apt クックブックを処理した直後に常に php をインストールしようとするのはなぜですか?モジュールはスレッドセーフになるようにコンパイルされていません。

プロビジョニングを2つの部分に分割し、最初の実行でphpリソースを使用せずに実行し、2回目の実行でphpリソースを追加すると(vagrantプロビジョニング)、正常に動作します。

そこに何が欠けているのですか...シェフに「apt、apache2、mysql」を実行するように指示するにはどうすればよいですか-最初に....次にphpをインストールしますか??

別の質問は次のとおりです-司書によって追加されたすべての依存関係がシェフによって(自動的に)ランリストに含まれていることを確信できますか、それとも、たとえば私のVagrantfile.

誰かが私を助けてくれることを願っています、ありがとう。

4

2 に答える 2