“vagrant up”确定但无法通过浏览器访问

时间:2015-03-16 12:47:37

标签: vagrant chef

我第一次在OSX Yosemite上尝试使用Vagrant,并使用LAMP堆栈从http://rove.io下载了Vagrantfile / Cheffile。

他们是:

cheffile

# encoding: utf-8

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

cookbook "apt"
cookbook "mysql", {}
cookbook "nodejs", {:github=>"mdxp/nodejs-cookbook"}
cookbook "python", {}
cookbook "git", {}
cookbook "php", {}
cookbook "nginx", {}

vagrantfile

# encoding: utf-8
# This file originally created at http://rove.io/36f03d7ed905b30118b48bfe3d16ee07

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "opscode-ubuntu-12.04_chef-11.4.0"
  config.vm.box_url = "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_chef-11.4.0.box"
  config.ssh.forward_agent = true

  config.vm.network :forwarded_port, guest: 80, host: 8080

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["cookbooks"]
    chef.add_recipe :apt
    chef.add_recipe 'mysql::server'
    chef.add_recipe 'nodejs'
    chef.add_recipe 'python'
    chef.add_recipe 'git'
    chef.add_recipe 'php'
    chef.add_recipe 'nginx'
    chef.json = {
      :mysql => {
        :server_root_password   => "password",
        :server_repl_password   => "password",
        :server_debian_password => "password",
        :service_name           => "mysql",
        :basedir                => "/usr",
        :data_dir               => "/var/lib/mysql",
        :root_group             => "root",
        :mysqladmin_bin         => "/usr/bin/mysqladmin",
        :mysql_bin              => "/usr/bin/mysql",
        :conf_dir               => "/etc/mysql",
        :confd_dir              => "/etc/mysql/conf.d",
        :socket                 => "/var/run/mysqld/mysqld.sock",
        :pid_file               => "/var/run/mysqld/mysqld.pid",
        :grants_path            => "/etc/mysql/grants.sql"
      },
      :git   => {
        :prefix => "/usr/local"
      },
      :nginx => {
        :dir                => "/etc/nginx",
        :log_dir            => "/var/log/nginx",
        :binary             => "/usr/sbin/nginx",
        :user               => "www-data",
        :init_style         => "runit",
        :pid                => "/var/run/nginx.pid",
        :worker_connections => "1024"
      }
    }
  end
end

所以,我尝试了这个:

$ librarian-chef install
$ vagrant up

➜  myapp git:(master) ✗ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: VirtualBox VM is already running.
➜  myapp git:(master) ✗ vagrant reload
==> default: Attempting graceful shutdown of VM...
==> default: Clearing any previously set forwarded ports...
Skipping Berkshelf with --no-provision
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2200 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.2.12
    default: VirtualBox Version: 4.3
==> default: Mounting shared folders...
    default: /vagrant => /Users/myuser/projects/dev
    default: /tmp/vagrant-chef-3/chef-solo-1/cookbooks => /Users/myuser/projects/dev/cookbooks
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: to force provisioning. Provisioners marked to run always will still run.

我猜它有效,对吧?

我正在Chrome上尝试http://127.0.0.1,但未找到。

我做错了吗?

2 个答案:

答案 0 :(得分:0)

您需要按照以下步骤通过vm box的IP进行访问。

ssh到无业游民的盒子

vagrant ssh

$ ifconfig

复制ID并在浏览器中打开。 IP应该类似于192.168.1.5,并在浏览器中打开http://192.168.1.5:8080

答案 1 :(得分:-1)

尝试销毁它并重新启动它。如果没有帮助,请向我们显示日志:

vagrant destroy
vagrant up

您始终可以使用ssh登录VM并检查出现了什么问题:

vagrant ssh