我正在與廚師和流浪者合作,以更好地自動化一些機器構建過程,並遇到了一個我似乎無法弄清楚的問題。問題是,無論我們做什麼,只要我們包含我們的PHP服務器食譜,它就會以某種方式將apache2彈出到運行列表的頂部。對於mysql也是一樣。我們希望使用remi repos而不是被PHP 5.3.3卡住,但我不能像Apache和mysql一樣首先安裝。 IE,預期的安裝順序是這樣的:Chef-solo安裝MySql和Apache2故障
- 運行yum /公寓更新並安裝基線包(該
- 基線的Linux服務器食譜)安裝的Apache2/PHP的安裝mysql
- 服務器
但我看到:
- 安裝的Apache2
- 安裝mysql服務器
- 開始按預期的順序安裝所有東西 - 包括再次查看php/apache2/mysql服務器。
在vagrantfile運行列表的樣子:
chef.add_recipe "company-baseline-linux-server::enterprise-linux"
chef.add_recipe "company-baseline-linux-server"
chef.add_recipe "company-php-server"
chef.add_recipe "company-mysql-server"
chef.add_recipe "company-php-server::setup-website"
chef.add_recipe "company-wordpress-app"
chef.add_recipe "company-wordpress-app::copy-assets"
chef.add_recipe "company-wordpress-app::load-wordpress-db"
公司的PHP ::默認食譜是:
#set apache ports
node.default['apache']['listen_ports'] = node['listen_ports']
#setup apache default modules
node.default['apache']['default_modules'] = %w(status alias rewrite headers deflate dir env mod_proxy mod_proxy_http mime negotiation setenvif authz_default authz_host log_config logio)
include_recipe "apache2"
include_recipe "apache2::mod_ssl"
#set apache to autostart
execute "auto start apache" do
command "chkconfig httpd on"
end
#add php
include_recipe "php"
include_recipe "apache2::mod_php5"
include_recipe "php::module_mysql"
#disable iptables for now
include_recipe "iptables::disabled"
#kill default site
apache_site "default" do
enable false
end
公司MySQL的默認::食譜:
node.default["mysql"]["remove_anonymous_users"] = true
include_recipe "mysql::server"
#setup remote database user
include_recipe "database"
include_recipe "database::mysql"
mysql_connection_info = {
:host => node['dbserver'],
:username => 'root',
:port => node['mysql']['port'],
:password => node['mysql']['server_root_password']
}
dbuser = node['remote_root_user']
dbpassword = node['remote_root_password']
mysql_database_user dbuser do
connection mysql_connection_info
password dbpassword
host '%'
grant_option true
action :grant
only_if { node['remote_root_user'] }
end
mysql_database_user dbuser do
connection mysql_connection_info
password dbpassword
host 'localhost'
grant_option true
action :grant
only_if { node['remote_root_user'] }
end
當我運行所有這一切,我得到以下輸出,其中一個可以看到httpd的安裝,然後再mysql的,然後基線Linux的食譜,它與EPEL開始安裝:
[2013-11-29T00:53:48+00:00] INFO: Forking chef instance to converge...
[2013-11-29T00:53:48+00:00] INFO: *** Chef 11.6.0 ***
[2013-11-29T00:53:48+00:00] INFO: Setting the run_list to ["recipe[company-baseline-linux-server::enterprise-linux]", "recipe[company-baseline-linux-server]", "recipe[company-php-server]", "recipe[company-mysql-server]", "recipe[company-php-server::setup-website]", "recipe[company-wordpress-app]", "recipe[company-wordpress-app::copy-assets]", "recipe[company-wordpress-app::load-wordpress-db]"] from JSON
[2013-11-29T00:53:48+00:00] INFO: Run List is [recipe[company-baseline-linux-server::enterprise-linux], recipe[company-baseline-linux-server], recipe[company-php-server], recipe[company-mysql-server], recipe[company-php-server::setup-website], recipe[company-wordpress-app], recipe[company-wordpress-app::copy-assets], recipe[company-wordpress-app::load-wordpress-db]]
[2013-11-29T00:53:48+00:00] INFO: Run List expands to [company-baseline-linux-server::enterprise-linux, company-baseline-linux-server, company-php-server, company-mysql-server, company-php-server::setup-website, company-wordpress-app, company-wordpress-app::copy-assets, company-wordpress-app::load-wordpress-db]
[2013-11-29T00:53:48+00:00] INFO: Starting Chef Run for localhost
[2013-11-29T00:53:48+00:00] INFO: Running start handlers
[2013-11-29T00:53:48+00:00] INFO: Start handlers complete.
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for service[apache2] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous service[apache2]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/default.rb:24:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Current service[apache2]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/default.rb:210:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for file[/etc/httpd/conf.d/ssl.conf] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous file[/etc/httpd/conf.d/ssl.conf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/default.rb:84:in `block in from_file'
[2013-11-29T00:53:49+00:00] WARN: Current file[/etc/httpd/conf.d/ssl.conf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/mod_ssl.rb:28:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for template[/etc/httpd/ports.conf] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous template[/etc/httpd/ports.conf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/default.rb:185:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Current template[/etc/httpd/ports.conf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/recipes/mod_ssl.rb:34:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for execute[a2dissite default] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous execute[a2dissite default]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/definitions/apache_site.rb:34:in `block in from_file'
[2013-11-29T00:53:49+00:00] WARN: Current execute[a2dissite default]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/apache2/definitions/apache_site.rb:34:in `block in from_file'
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for directory[/var/lib/mysql] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous directory[/var/lib/mysql]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/mysql/recipes/server.rb:117:in `block in from_file'
[2013-11-29T00:53:49+00:00] WARN: Current directory[/var/lib/mysql]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/mysql/recipes/server.rb:117:in `block in from_file'
[2013-11-29T00:53:49+00:00] WARN: Cloning resource attributes for template[/etc/my.cnf] from prior resource (CHEF-3694)
[2013-11-29T00:53:49+00:00] WARN: Previous template[/etc/my.cnf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/mysql/recipes/server.rb:134:in `from_file'
[2013-11-29T00:53:49+00:00] WARN: Current template[/etc/my.cnf]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/mysql/recipes/server.rb:194:in `from_file'
[2013-11-29T00:53:49+00:00] INFO: Could not find previously defined grants.sql resource
[2013-11-29T00:54:36+00:00] INFO: package[mysql] installing mysql-5.1.69-1.el6_4 from updates repository
[2013-11-29T00:54:47+00:00] INFO: package[mysql-devel] installing mysql-devel-5.1.69-1.el6_4 from updates repository
[2013-11-29T00:55:18+00:00] WARN: Cloning resource attributes for mysql_database_user[wordpress-dba] from prior resource (CHEF-3694)
[2013-11-29T00:55:18+00:00] WARN: Previous mysql_database_user[wordpress-dba]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-mysql-server/recipes/default.rb:27:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Current mysql_database_user[wordpress-dba]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-mysql-server/recipes/default.rb:36:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Cloning resource attributes for link[/etc/httpd/sites-enabled/cabletechtalk] from prior resource (CHEF-3694)
[2013-11-29T00:55:18+00:00] WARN: Previous link[/etc/httpd/sites-enabled/cabletechtalk]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-php-server/recipes/setup-website.rb:14:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Current link[/etc/httpd/sites-enabled/cabletechtalk]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-php-server/recipes/setup-website.rb:19:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Cloning resource attributes for link[/srv/websites/cabletechtalk/webroot/wp-config.php] from prior resource (CHEF-3694)
[2013-11-29T00:55:18+00:00] WARN: Previous link[/srv/websites/cabletechtalk/webroot/wp-config.php]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-wordpress-app/recipes/default.rb:13:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Current link[/srv/websites/cabletechtalk/webroot/wp-config.php]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-wordpress-app/recipes/default.rb:18:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Cloning resource attributes for service[httpd] from prior resource (CHEF-3694)
[2013-11-29T00:55:18+00:00] WARN: Previous service[httpd]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-php-server/recipes/setup-website.rb:23:in `from_file'
[2013-11-29T00:55:18+00:00] WARN: Current service[httpd]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/company-wordpress-app/recipes/default.rb:22:in `from_file'
[2013-11-29T00:55:18+00:00] INFO: Adding RPM-GPG-KEY-EPEL-6 GPG key to /etc/pki/rpm-gpg/
[2013-11-29T00:55:18+00:00] INFO: remote_file[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6] created file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[2013-11-29T00:55:23+00:00] INFO: remote_file[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6] updated file contents /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[2013-11-29T00:55:23+00:00] INFO: remote_file[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6] mode changed to 644
[2013-11-29T00:55:23+00:00] INFO: remote_file[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6] sending run action to execute[import-rpm-gpg-key-RPM-GPG-KEY-EPEL-6] (immediate)
[2013-11-29T00:55:24+00:00] INFO: execute[import-rpm-gpg-key-RPM-GPG-KEY-EPEL-6] ran successfully
[2013-11-29T00:55:24+00:00] INFO: Adding epel repository to /etc/yum.repos.d/epel.repo
[2013-11-29T00:55:24+00:00] INFO: template[/etc/yum.repos.d/epel.repo] created file /etc/yum.repos.d/epel.repo
[2013-11-29T00:55:24+00:00] INFO: template[/etc/yum.repos.d/epel.repo] updated file contents /etc/yum.repos.d/epel.repo
[2013-11-29T00:55:24+00:00] INFO: template[/etc/yum.repos.d/epel.repo] mode changed to 644
[2013-11-29T00:55:24+00:00] INFO: template[/etc/yum.repos.d/epel.repo] sending run action to execute[yum-makecache-epel] (immediate)
我已經試過最明顯的技巧,如推到這個呼叫直接到我們wordpress-的應用程序配方,並將運行列表聲明爲run_list而不是一堆包含。我懷疑這是簡單而愚蠢的,但我似乎無法得出答案。
你提供的「php」配方是「company-php-server」,不是嗎? Apache是在php之前安裝的,因爲你之前包含了它:'include_recipe「apache2」'在'include_recipe「php之前。不太清楚實際的問題是什麼。 –
@DracoAter - 感謝您的反饋,我已經編輯了一些問題來澄清問題。問題在於apache和php在上面列出的食譜之前就開始了,所以在進入之前我不能做類似選擇的回購。 –
可能是「company-baseline-linux-server」食譜還包括apache?否則,不知道,對不起。 –