Error: $cron_values is false, not a hash or array
Error: $cron_values is false, not a hash or array
Vag运行t 正确安装并启动了 Centos 6.6 VM,但未能配置它并显示此错误消息:
Error: $cron_values is false, not a hash or array at /tmp/vagrant-puppet/manifests-893fcda21077f5a583c2dbbba8515c0a/nodes/Cron.pp:3 on node localhost.localdomain
就在这之前显示:
==> default: Running provisioner: puppet...
==> default: Running Puppet with site.pp...
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/composer/lib/facter/composer_home.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/concat/lib/facter/concat_basedir.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/ip6tables_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/iptables_persistent_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/iptables_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/git/lib/facter/git_exec_path.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/git/lib/facter/git_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/php/lib/facter/php_fact_extension_dir.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/php/lib/facter/php_fact_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/last_run.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/puppi_projects.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/windows_common_appdata.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rabbitmq/lib/facter/rabbitmq_erlang_cookie.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rvm/lib/facter/rvm_installed.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rvm/lib/facter/rvm_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/staging/lib/facter/staging_http_get.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/staging/lib/facter/staging_windir.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/facter_dot_d.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/pe_version.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/puppet_vardir.rb
==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/root_home.rb
老实说,我什至不确定去哪里寻找问题。我可以通过 SSH 连接到 VM,那部分似乎工作正常。由于主机未解析,Apache 似乎尚未安装。
我也不确定是否有更多有用的信息?如果是这样,我很乐意提供它。似乎根本没有很多人遇到过这个问题。即使您不知道解决方案,如果您至少可以提供一些关于在哪里寻找更详细日志的方向,我将不胜感激(我 运行 vagrant provision --debug
但错误日志没有那里更有意义),或者可以让我开始的东西?
我是 运行 这台以 Parallels 作为供应商的机器。
有什么想法吗?
更新:
Vag运行t 文件是由 puppet(或真正的 PuPHPet)生成的。这是 config.yaml 文件:
vagrantfile-local:
vm:
box: puphpet/centos65-x64
box_url: puphpet/centos65-x64
hostname: ''
memory: '512'
cpus: '1'
chosen_provider: parallels
network:
private_network: 192.168.58.101
forwarded_port:
48IqH2aTQkz4:
host: '9321'
guest: '22'
post_up_message: ''
provider:
virtualbox:
modifyvm:
natdnshostresolver1: on
vmware:
numvcpus: 1
parallels:
cpus: 1
provision:
puppet:
manifests_path: puphpet/puppet
manifest_file: site.pp
module_path: puphpet/puppet/modules
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
- '--parser future'
synced_folder:
jzVfnoa6cO3T:
owner: ''
group: ''
source: ./
target: /Users/myname/Sites/website/
sync_type: nfs
rsync:
auto: 'false'
usable_port_range:
start: 10200
stop: 10500
ssh:
host: null
port: null
private_key_path: null
username: vagrant
guest_port: null
keep_alive: true
forward_agent: false
forward_x11: false
shell: 'bash -l'
vagrant:
host: detect
server:
install: '1'
packages:
- ImageMagick
- vim-common
- php-soap
firewall:
install: '1'
rules: null
apache:
install: '1'
settings:
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- rewrite
vhosts:
MvR5v9C4Vsuh:
servername: myserver.mag
serveraliases:
- www.awesome.dev
docroot: /Users/myname/Sites/sitename/base/
port: '80'
setenv:
- 'APP_ENV dev'
override:
- All
options:
- Indexes
- FollowSymLinks
- MultiViews
engine: ''
custom_fragment: ''
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
mod_pagespeed: 0
php:
install: '1'
version: '55'
composer: '1'
composer_home: ''
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl:
- pecl_http
- imagick
ini:
display_errors: On
error_reporting: '-1'
session.save_path: /var/lib/php/session
timezone: America/Chicago
mod_php: 0
xdebug:
install: '1'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
ruby:
install: '1'
versions: { }
nodejs:
install: '0'
npm_packages: { }
python:
install: '1'
packages: { }
versions: { }
mysql:
install: '1'
override_options: { }
root_password: root
adminer: 0
databases:
ouWYyTlD0olg:
grant:
- ALL
name: db_name
host: localhost
user: user_name
password: password
sql_file: ../databases/output.sql
redis:
install: '1'
settings:
conf_port: '6379'
Vag运行t文件:
require 'yaml'
dir = File.dirname(File.expand_path(__FILE__))
configValues = YAML.load_file("#{dir}/puphpet/config.yaml")
data = configValues['vagrantfile-local']
Vagrant.require_version '>= 1.6.0'
Vagrant.configure('2') do |config|
config.vm.box = "#{data['vm']['box']}"
config.vm.box_url = "#{data['vm']['box_url']}"
if data['vm']['hostname'].to_s.strip.length != 0
config.vm.hostname = "#{data['vm']['hostname']}"
end
if data['vm']['network']['private_network'].to_s != ''
config.vm.network 'private_network', ip: "#{data['vm']['network']['private_network']}"
end
data['vm']['network']['forwarded_port'].each do |i, port|
if port['guest'] != '' && port['host'] != ''
config.vm.network :forwarded_port, guest: port['guest'].to_i, host: port['host'].to_i
end
end
if !data['vm']['post_up_message'].nil?
config.vm.post_up_message = "#{data['vm']['post_up_message']}"
end
if Vagrant.has_plugin?('vagrant-hostmanager')
hosts = Array.new()
if !configValues['apache']['install'].nil? &&
configValues['apache']['install'].to_i == 1 &&
configValues['apache']['vhosts'].is_a?(Hash)
configValues['apache']['vhosts'].each do |i, vhost|
hosts.push(vhost['servername'])
if vhost['serveraliases'].is_a?(Array)
vhost['serveraliases'].each do |vhost_alias|
hosts.push(vhost_alias)
end
end
end
elsif !configValues['nginx']['install'].nil? &&
configValues['nginx']['install'].to_i == 1 &&
configValues['nginx']['vhosts'].is_a?(Hash)
configValues['nginx']['vhosts'].each do |i, vhost|
hosts.push(vhost['server_name'])
if vhost['server_aliases'].is_a?(Array)
vhost['server_aliases'].each do |x, vhost_alias|
hosts.push(vhost_alias)
end
end
end
end
if hosts.any?
if config.vm.hostname.to_s.strip.length == 0
config.vm.hostname = 'puphpet-dev-machine'
end
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.ignore_private_ip = false
config.hostmanager.include_offline = false
config.hostmanager.aliases = hosts
end
end
if Vagrant.has_plugin?('vagrant-cachier')
config.cache.scope = :box
end
data['vm']['synced_folder'].each do |i, folder|
if folder['source'] != '' && folder['target'] != ''
sync_owner = !folder['sync_owner'].nil? ? folder['sync_owner'] : 'www-data'
sync_group = !folder['sync_group'].nil? ? folder['sync_group'] : 'www-data'
if folder['sync_type'] == 'nfs'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'nfs'
if Vagrant.has_plugin?('vagrant-bindfs')
config.bindfs.bind_folder "#{folder['target']}", "/mnt/vagrant-#{i}"
end
elsif folder['sync_type'] == 'smb'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'smb'
elsif folder['sync_type'] == 'rsync'
rsync_args = !folder['rsync']['args'].nil? ? folder['rsync']['args'] : ['--verbose', '--archive', '-z']
rsync_auto = !folder['rsync']['auto'].nil? ? folder['rsync']['auto'] : true
rsync_exclude = !folder['rsync']['exclude'].nil? ? folder['rsync']['exclude'] : ['.vagrant/']
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: 'rsync', group: sync_group, owner: sync_owner
elsif data['vm']['chosen_provider'] == 'parallels'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
group: sync_group, owner: sync_owner, mount_options: ['share']
else
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
group: sync_group, owner: sync_owner, mount_options: ['dmode=775', 'fmode=764']
end
end
end
config.vm.usable_port_range = (data['vm']['usable_port_range']['start'].to_i..data['vm']['usable_port_range']['stop'].to_i)
if data['vm']['chosen_provider'].empty? || data['vm']['chosen_provider'] == 'virtualbox'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
config.vm.provider :virtualbox do |virtualbox|
data['vm']['provider']['virtualbox']['modifyvm'].each do |key, value|
if key == 'memory'
next
end
if key == 'cpus'
next
end
if key == 'natdnshostresolver1'
value = value ? 'on' : 'off'
end
virtualbox.customize ['modifyvm', :id, "--#{key}", "#{value}"]
end
virtualbox.customize ['modifyvm', :id, '--memory', "#{data['vm']['memory']}"]
virtualbox.customize ['modifyvm', :id, '--cpus', "#{data['vm']['cpus']}"]
if data['vm']['provider']['virtualbox']['modifyvm']['name'].nil? ||
data['vm']['provider']['virtualbox']['modifyvm']['name'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
virtualbox.customize ['modifyvm', :id, '--name', config.vm.hostname]
end
end
end
end
if data['vm']['chosen_provider'] == 'vmware_fusion' || data['vm']['chosen_provider'] == 'vmware_workstation'
ENV['VAGRANT_DEFAULT_PROVIDER'] = (data['vm']['chosen_provider'] == 'vmware_fusion') ? 'vmware_fusion' : 'vmware_workstation'
config.vm.provider :vmware_fusion do |v, override|
data['vm']['provider']['vmware'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.vmx["#{key}"] = "#{value}"
end
v.vmx['memsize'] = "#{data['vm']['memory']}"
v.vmx['numvcpus'] = "#{data['vm']['cpus']}"
if data['vm']['provider']['vmware']['displayName'].nil? ||
data['vm']['provider']['vmware']['displayName'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
v.vmx['displayName'] = config.vm.hostname
end
end
end
end
if data['vm']['chosen_provider'] == 'parallels'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'parallels'
config.vm.provider 'parallels' do |v|
data['vm']['provider']['parallels'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.customize ['set', :id, "--#{key}", "#{value}"]
end
v.memory = "#{data['vm']['memory']}"
v.cpus = "#{data['vm']['cpus']}"
if data['vm']['provider']['parallels']['name'].nil? ||
data['vm']['provider']['parallels']['name'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
v.name = config.vm.hostname
end
end
end
end
ssh_username = !data['ssh']['username'].nil? ? data['ssh']['username'] : 'vagrant'
config.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/initial-setup.sh'
s.args = '/vagrant/puphpet'
end
config.vm.provision 'shell' do |kg|
kg.path = 'puphpet/shell/ssh-keygen.sh'
kg.args = "#{ssh_username}"
end
config.vm.provision :shell, :path => 'puphpet/shell/install-ruby.sh'
config.vm.provision :shell, :path => 'puphpet/shell/install-puppet.sh'
config.vm.provision :puppet do |puppet|
puppet.facter = {
'ssh_username' => "#{ssh_username}",
'provisioner_type' => ENV['VAGRANT_DEFAULT_PROVIDER'],
'vm_target_key' => 'vagrantfile-local',
}
puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
puppet.manifest_file = "#{data['vm']['provision']['puppet']['manifest_file']}"
puppet.module_path = "#{data['vm']['provision']['puppet']['module_path']}"
if !data['vm']['provision']['puppet']['options'].empty?
puppet.options = data['vm']['provision']['puppet']['options']
end
end
config.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once', 'exec-always']
end
config.vm.provision :shell, run: 'always' do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once', 'startup-always']
end
config.vm.provision :shell, :path => 'puphpet/shell/important-notices.sh'
customKey = "#{dir}/files/dot/ssh/id_rsa"
vagrantKey = "#{dir}/.vagrant/machines/default/#{ENV['VAGRANT_DEFAULT_PROVIDER']}/private_key"
if File.file?(customKey)
config.ssh.private_key_path = [
customKey,
"#{ENV['HOME']}/.vagrant.d/insecure_private_key"
]
if File.file?(vagrantKey) and ! FileUtils.compare_file(customKey, vagrantKey)
File.delete(vagrantKey)
end
if ! File.directory?(File.dirname(vagrantKey))
FileUtils.mkdir_p(File.dirname(vagrantKey))
end
if ! File.file?(vagrantKey)
FileUtils.cp(customKey, vagrantKey)
end
end
if !data['ssh']['host'].nil?
config.ssh.host = "#{data['ssh']['host']}"
end
if !data['ssh']['port'].nil?
config.ssh.port = "#{data['ssh']['port']}"
end
if !data['ssh']['username'].nil?
config.ssh.username = "#{data['ssh']['username']}"
end
if !data['ssh']['guest_port'].nil?
config.ssh.guest_port = data['ssh']['guest_port']
end
if !data['ssh']['shell'].nil?
config.ssh.shell = "#{data['ssh']['shell']}"
end
if !data['ssh']['keep_alive'].nil?
config.ssh.keep_alive = data['ssh']['keep_alive']
end
if !data['ssh']['forward_agent'].nil?
config.ssh.forward_agent = data['ssh']['forward_agent']
end
if !data['ssh']['forward_x11'].nil?
config.ssh.forward_x11 = data['ssh']['forward_x11']
end
if !data['vagrant']['host'].nil?
config.vagrant.host = data['vagrant']['host'].gsub(':', '').intern
end
end
我最近自己也遇到了这个问题,下面是我解决它的方法。当你创建一个 Puphpet 配置文件,并且没有指定任何 cron 作业时,就会产生这个错误。
要修复它,请使 config.yaml
中的 cron
键看起来像以下之一:
选项 #1(用于启动 Magento cron 作业):
cron:
install: '1'
jobs:
cj_lfgowfjsb51y:
name: magento
user: ''
command: '/bin/sh /var/www/sites/cron.sh'
minute: '*/5'
hour: '*'
weekday: '*'
month: '*'
monthday: ''
选项 #2
cron:
install:'1'
jobs: []
Vag运行t 正确安装并启动了 Centos 6.6 VM,但未能配置它并显示此错误消息:
Error: $cron_values is false, not a hash or array at /tmp/vagrant-puppet/manifests-893fcda21077f5a583c2dbbba8515c0a/nodes/Cron.pp:3 on node localhost.localdomain
就在这之前显示:
==> default: Running provisioner: puppet... ==> default: Running Puppet with site.pp... ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/composer/lib/facter/composer_home.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/concat/lib/facter/concat_basedir.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/ip6tables_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/iptables_persistent_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/firewall/lib/facter/iptables_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/git/lib/facter/git_exec_path.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/git/lib/facter/git_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/php/lib/facter/php_fact_extension_dir.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/php/lib/facter/php_fact_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/last_run.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/puppi_projects.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/puppi/lib/facter/windows_common_appdata.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rabbitmq/lib/facter/rabbitmq_erlang_cookie.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rvm/lib/facter/rvm_installed.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/rvm/lib/facter/rvm_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/staging/lib/facter/staging_http_get.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/staging/lib/facter/staging_windir.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/facter_dot_d.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/pe_version.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/puppet_vardir.rb ==> default: Info: Loading facts in /tmp/vagrant-puppet/modules-419a158586c48436c8f5c2349fe39c11/stdlib/lib/facter/root_home.rb
老实说,我什至不确定去哪里寻找问题。我可以通过 SSH 连接到 VM,那部分似乎工作正常。由于主机未解析,Apache 似乎尚未安装。
我也不确定是否有更多有用的信息?如果是这样,我很乐意提供它。似乎根本没有很多人遇到过这个问题。即使您不知道解决方案,如果您至少可以提供一些关于在哪里寻找更详细日志的方向,我将不胜感激(我 运行 vagrant provision --debug
但错误日志没有那里更有意义),或者可以让我开始的东西?
我是 运行 这台以 Parallels 作为供应商的机器。
有什么想法吗?
更新:
Vag运行t 文件是由 puppet(或真正的 PuPHPet)生成的。这是 config.yaml 文件:
vagrantfile-local:
vm:
box: puphpet/centos65-x64
box_url: puphpet/centos65-x64
hostname: ''
memory: '512'
cpus: '1'
chosen_provider: parallels
network:
private_network: 192.168.58.101
forwarded_port:
48IqH2aTQkz4:
host: '9321'
guest: '22'
post_up_message: ''
provider:
virtualbox:
modifyvm:
natdnshostresolver1: on
vmware:
numvcpus: 1
parallels:
cpus: 1
provision:
puppet:
manifests_path: puphpet/puppet
manifest_file: site.pp
module_path: puphpet/puppet/modules
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
- '--parser future'
synced_folder:
jzVfnoa6cO3T:
owner: ''
group: ''
source: ./
target: /Users/myname/Sites/website/
sync_type: nfs
rsync:
auto: 'false'
usable_port_range:
start: 10200
stop: 10500
ssh:
host: null
port: null
private_key_path: null
username: vagrant
guest_port: null
keep_alive: true
forward_agent: false
forward_x11: false
shell: 'bash -l'
vagrant:
host: detect
server:
install: '1'
packages:
- ImageMagick
- vim-common
- php-soap
firewall:
install: '1'
rules: null
apache:
install: '1'
settings:
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- rewrite
vhosts:
MvR5v9C4Vsuh:
servername: myserver.mag
serveraliases:
- www.awesome.dev
docroot: /Users/myname/Sites/sitename/base/
port: '80'
setenv:
- 'APP_ENV dev'
override:
- All
options:
- Indexes
- FollowSymLinks
- MultiViews
engine: ''
custom_fragment: ''
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
mod_pagespeed: 0
php:
install: '1'
version: '55'
composer: '1'
composer_home: ''
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl:
- pecl_http
- imagick
ini:
display_errors: On
error_reporting: '-1'
session.save_path: /var/lib/php/session
timezone: America/Chicago
mod_php: 0
xdebug:
install: '1'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
ruby:
install: '1'
versions: { }
nodejs:
install: '0'
npm_packages: { }
python:
install: '1'
packages: { }
versions: { }
mysql:
install: '1'
override_options: { }
root_password: root
adminer: 0
databases:
ouWYyTlD0olg:
grant:
- ALL
name: db_name
host: localhost
user: user_name
password: password
sql_file: ../databases/output.sql
redis:
install: '1'
settings:
conf_port: '6379'
Vag运行t文件:
require 'yaml'
dir = File.dirname(File.expand_path(__FILE__))
configValues = YAML.load_file("#{dir}/puphpet/config.yaml")
data = configValues['vagrantfile-local']
Vagrant.require_version '>= 1.6.0'
Vagrant.configure('2') do |config|
config.vm.box = "#{data['vm']['box']}"
config.vm.box_url = "#{data['vm']['box_url']}"
if data['vm']['hostname'].to_s.strip.length != 0
config.vm.hostname = "#{data['vm']['hostname']}"
end
if data['vm']['network']['private_network'].to_s != ''
config.vm.network 'private_network', ip: "#{data['vm']['network']['private_network']}"
end
data['vm']['network']['forwarded_port'].each do |i, port|
if port['guest'] != '' && port['host'] != ''
config.vm.network :forwarded_port, guest: port['guest'].to_i, host: port['host'].to_i
end
end
if !data['vm']['post_up_message'].nil?
config.vm.post_up_message = "#{data['vm']['post_up_message']}"
end
if Vagrant.has_plugin?('vagrant-hostmanager')
hosts = Array.new()
if !configValues['apache']['install'].nil? &&
configValues['apache']['install'].to_i == 1 &&
configValues['apache']['vhosts'].is_a?(Hash)
configValues['apache']['vhosts'].each do |i, vhost|
hosts.push(vhost['servername'])
if vhost['serveraliases'].is_a?(Array)
vhost['serveraliases'].each do |vhost_alias|
hosts.push(vhost_alias)
end
end
end
elsif !configValues['nginx']['install'].nil? &&
configValues['nginx']['install'].to_i == 1 &&
configValues['nginx']['vhosts'].is_a?(Hash)
configValues['nginx']['vhosts'].each do |i, vhost|
hosts.push(vhost['server_name'])
if vhost['server_aliases'].is_a?(Array)
vhost['server_aliases'].each do |x, vhost_alias|
hosts.push(vhost_alias)
end
end
end
end
if hosts.any?
if config.vm.hostname.to_s.strip.length == 0
config.vm.hostname = 'puphpet-dev-machine'
end
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.ignore_private_ip = false
config.hostmanager.include_offline = false
config.hostmanager.aliases = hosts
end
end
if Vagrant.has_plugin?('vagrant-cachier')
config.cache.scope = :box
end
data['vm']['synced_folder'].each do |i, folder|
if folder['source'] != '' && folder['target'] != ''
sync_owner = !folder['sync_owner'].nil? ? folder['sync_owner'] : 'www-data'
sync_group = !folder['sync_group'].nil? ? folder['sync_group'] : 'www-data'
if folder['sync_type'] == 'nfs'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'nfs'
if Vagrant.has_plugin?('vagrant-bindfs')
config.bindfs.bind_folder "#{folder['target']}", "/mnt/vagrant-#{i}"
end
elsif folder['sync_type'] == 'smb'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'smb'
elsif folder['sync_type'] == 'rsync'
rsync_args = !folder['rsync']['args'].nil? ? folder['rsync']['args'] : ['--verbose', '--archive', '-z']
rsync_auto = !folder['rsync']['auto'].nil? ? folder['rsync']['auto'] : true
rsync_exclude = !folder['rsync']['exclude'].nil? ? folder['rsync']['exclude'] : ['.vagrant/']
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: 'rsync', group: sync_group, owner: sync_owner
elsif data['vm']['chosen_provider'] == 'parallels'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
group: sync_group, owner: sync_owner, mount_options: ['share']
else
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
group: sync_group, owner: sync_owner, mount_options: ['dmode=775', 'fmode=764']
end
end
end
config.vm.usable_port_range = (data['vm']['usable_port_range']['start'].to_i..data['vm']['usable_port_range']['stop'].to_i)
if data['vm']['chosen_provider'].empty? || data['vm']['chosen_provider'] == 'virtualbox'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
config.vm.provider :virtualbox do |virtualbox|
data['vm']['provider']['virtualbox']['modifyvm'].each do |key, value|
if key == 'memory'
next
end
if key == 'cpus'
next
end
if key == 'natdnshostresolver1'
value = value ? 'on' : 'off'
end
virtualbox.customize ['modifyvm', :id, "--#{key}", "#{value}"]
end
virtualbox.customize ['modifyvm', :id, '--memory', "#{data['vm']['memory']}"]
virtualbox.customize ['modifyvm', :id, '--cpus', "#{data['vm']['cpus']}"]
if data['vm']['provider']['virtualbox']['modifyvm']['name'].nil? ||
data['vm']['provider']['virtualbox']['modifyvm']['name'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
virtualbox.customize ['modifyvm', :id, '--name', config.vm.hostname]
end
end
end
end
if data['vm']['chosen_provider'] == 'vmware_fusion' || data['vm']['chosen_provider'] == 'vmware_workstation'
ENV['VAGRANT_DEFAULT_PROVIDER'] = (data['vm']['chosen_provider'] == 'vmware_fusion') ? 'vmware_fusion' : 'vmware_workstation'
config.vm.provider :vmware_fusion do |v, override|
data['vm']['provider']['vmware'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.vmx["#{key}"] = "#{value}"
end
v.vmx['memsize'] = "#{data['vm']['memory']}"
v.vmx['numvcpus'] = "#{data['vm']['cpus']}"
if data['vm']['provider']['vmware']['displayName'].nil? ||
data['vm']['provider']['vmware']['displayName'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
v.vmx['displayName'] = config.vm.hostname
end
end
end
end
if data['vm']['chosen_provider'] == 'parallels'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'parallels'
config.vm.provider 'parallels' do |v|
data['vm']['provider']['parallels'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.customize ['set', :id, "--#{key}", "#{value}"]
end
v.memory = "#{data['vm']['memory']}"
v.cpus = "#{data['vm']['cpus']}"
if data['vm']['provider']['parallels']['name'].nil? ||
data['vm']['provider']['parallels']['name'].empty?
if data['vm']['hostname'].to_s.strip.length != 0
v.name = config.vm.hostname
end
end
end
end
ssh_username = !data['ssh']['username'].nil? ? data['ssh']['username'] : 'vagrant'
config.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/initial-setup.sh'
s.args = '/vagrant/puphpet'
end
config.vm.provision 'shell' do |kg|
kg.path = 'puphpet/shell/ssh-keygen.sh'
kg.args = "#{ssh_username}"
end
config.vm.provision :shell, :path => 'puphpet/shell/install-ruby.sh'
config.vm.provision :shell, :path => 'puphpet/shell/install-puppet.sh'
config.vm.provision :puppet do |puppet|
puppet.facter = {
'ssh_username' => "#{ssh_username}",
'provisioner_type' => ENV['VAGRANT_DEFAULT_PROVIDER'],
'vm_target_key' => 'vagrantfile-local',
}
puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
puppet.manifest_file = "#{data['vm']['provision']['puppet']['manifest_file']}"
puppet.module_path = "#{data['vm']['provision']['puppet']['module_path']}"
if !data['vm']['provision']['puppet']['options'].empty?
puppet.options = data['vm']['provision']['puppet']['options']
end
end
config.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once', 'exec-always']
end
config.vm.provision :shell, run: 'always' do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once', 'startup-always']
end
config.vm.provision :shell, :path => 'puphpet/shell/important-notices.sh'
customKey = "#{dir}/files/dot/ssh/id_rsa"
vagrantKey = "#{dir}/.vagrant/machines/default/#{ENV['VAGRANT_DEFAULT_PROVIDER']}/private_key"
if File.file?(customKey)
config.ssh.private_key_path = [
customKey,
"#{ENV['HOME']}/.vagrant.d/insecure_private_key"
]
if File.file?(vagrantKey) and ! FileUtils.compare_file(customKey, vagrantKey)
File.delete(vagrantKey)
end
if ! File.directory?(File.dirname(vagrantKey))
FileUtils.mkdir_p(File.dirname(vagrantKey))
end
if ! File.file?(vagrantKey)
FileUtils.cp(customKey, vagrantKey)
end
end
if !data['ssh']['host'].nil?
config.ssh.host = "#{data['ssh']['host']}"
end
if !data['ssh']['port'].nil?
config.ssh.port = "#{data['ssh']['port']}"
end
if !data['ssh']['username'].nil?
config.ssh.username = "#{data['ssh']['username']}"
end
if !data['ssh']['guest_port'].nil?
config.ssh.guest_port = data['ssh']['guest_port']
end
if !data['ssh']['shell'].nil?
config.ssh.shell = "#{data['ssh']['shell']}"
end
if !data['ssh']['keep_alive'].nil?
config.ssh.keep_alive = data['ssh']['keep_alive']
end
if !data['ssh']['forward_agent'].nil?
config.ssh.forward_agent = data['ssh']['forward_agent']
end
if !data['ssh']['forward_x11'].nil?
config.ssh.forward_x11 = data['ssh']['forward_x11']
end
if !data['vagrant']['host'].nil?
config.vagrant.host = data['vagrant']['host'].gsub(':', '').intern
end
end
我最近自己也遇到了这个问题,下面是我解决它的方法。当你创建一个 Puphpet 配置文件,并且没有指定任何 cron 作业时,就会产生这个错误。
要修复它,请使 config.yaml
中的 cron
键看起来像以下之一:
选项 #1(用于启动 Magento cron 作业):
cron:
install: '1'
jobs:
cj_lfgowfjsb51y:
name: magento
user: ''
command: '/bin/sh /var/www/sites/cron.sh'
minute: '*/5'
hour: '*'
weekday: '*'
month: '*'
monthday: ''
选项 #2
cron:
install:'1'
jobs: []