Reputation: 11
I'm attempting to use Chef-Provisioning to spin up some Vagrant VMs. The chef-client -z provision.rb
command runs and successfully completes. I know that the machine, or something exists out there because it idempotently completes this run with no changes when I rerun the command.
Inside knife.rb I define the profiles:
profiles({
'default' => {
},
'ubuntu_vagrant' => {
:driver => 'vagrant:',
:machine_options => {
:vagrant_options => {
'vm.box' => 'chef/ubuntu-14.04',
}
}
},
'ubuntu_docker' => {
:driver => 'docker',
:machine_options => {
:docker_options => {
:base_image => {
:name => 'ubuntu',
:tag => '14.04.2'
}
}
}
}
})
Then I execute sudo CHEF_PROFILE=ubuntu_vagrant chef-client -z provision.rb
provision.rb:
machine 'webserver' do
recipe 'djnginx'
end
Results:
sudo CHEF_PROFILE=ubuntu_vagrant chef-client -z provision.rb
[2015-04-18T13:13:23-08:00] INFO: Started chef-zero at http://localhost:8889 with repository at /Users/djenriquez/chef-repo
One version per cookbook
[2015-04-18T13:13:23-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.2.1
[2015-04-18T13:13:23-08:00] INFO: *** Chef 12.2.1 ***
[2015-04-18T13:13:23-08:00] INFO: Chef-client pid: 948
[2015-04-18T13:13:26-08:00] INFO: Run List is []
[2015-04-18T13:13:26-08:00] INFO: Run List expands to []
[2015-04-18T13:13:26-08:00] INFO: Starting Chef Run for djenriquez07
[2015-04-18T13:13:26-08:00] INFO: Running start handlers
[2015-04-18T13:13:26-08:00] INFO: Start handlers complete.
[2015-04-18T13:13:26-08:00] INFO: HTTP Request Returned 404 Not Found : Object not found: /reports/nodes/djenriquez07/runs
resolving cookbooks for run list: []
[2015-04-18T13:13:26-08:00] INFO: Loading cookbooks []
Synchronizing Cookbooks:
Compiling Cookbooks...
[2015-04-18T13:13:26-08:00] WARN: Node djenriquez07 has an empty run list.
Converging 1 resources
Recipe: @recipe_files::/Users/djenriquez/chef-repo/cookbooks/djnginx/provision.rb
* machine[webserver] action converge[2015-04-18T13:13:26-08:00] INFO: Processing machine[webserver] action converge (@recipe_files::/Users/djenriquez/chef-repo/cookbooks/djnginx/provision.rb line 1)
[2015-04-18T13:13:26-08:00] INFO: Processing vagrant_cluster[/] action create (basic_chef_client::block line 212)
[2015-04-18T13:13:26-08:00] INFO: Processing directory[/] action create (basic_chef_client::block line 15)
[2015-04-18T13:13:26-08:00] INFO: Processing file[/Vagrantfile] action create (basic_chef_client::block line 16)
[2015-04-18T13:13:26-08:00] INFO: Processing file[/webserver.vm] action create (basic_chef_client::block line 232)
[2015-04-18T13:13:26-08:00] INFO: Processing chef_node[webserver] action create (basic_chef_client::block line 57)
[2015-04-18T13:13:31-08:00] INFO: Processing chef_node[webserver] action create (basic_chef_client::block line 57)
[2015-04-18T13:13:31-08:00] INFO: Executing sudo cp /etc/chef/client.pem /tmp/client.pem.1379680942 on [email protected]
[2015-04-18T13:13:32-08:00] INFO: Completed cp /etc/chef/client.pem /tmp/client.pem.1379680942 on [email protected]: exit status 0
[2015-04-18T13:13:32-08:00] INFO: Executing sudo chown vagrant /tmp/client.pem.1379680942 on [email protected]
[2015-04-18T13:13:32-08:00] INFO: Completed chown vagrant /tmp/client.pem.1379680942 on [email protected]: exit status 0
[2015-04-18T13:13:32-08:00] INFO: Executing sudo rm /tmp/client.pem.1379680942 on [email protected]
[2015-04-18T13:13:32-08:00] INFO: Completed rm /tmp/client.pem.1379680942 on [email protected]: exit status 0
[2015-04-18T13:13:32-08:00] INFO: Processing chef_client[webserver] action create (basic_chef_client::block line 131)
[2015-04-18T13:13:32-08:00] INFO: Processing chef_node[webserver] action create (basic_chef_client::block line 142)
[2015-04-18T13:13:32-08:00] INFO: Port forwarded: local URL http://localhost:8889 is available to 127.0.0.1 as http://localhost:8889 for the duration of this SSH connection.
[2015-04-18T13:13:32-08:00] INFO: Executing sudo ls -d /etc/chef/client.rb on [email protected]
[2015-04-18T13:13:32-08:00] INFO: Completed ls -d /etc/chef/client.rb on [email protected]: exit status 0
[2015-04-18T13:13:32-08:00] INFO: Executing sudo md5sum -b /etc/chef/client.rb on [email protected]
[2015-04-18T13:13:32-08:00] INFO: Completed md5sum -b /etc/chef/client.rb on [email protected]: exit status 0
[2015-04-18T13:13:32-08:00] INFO: Executing sudo chef-client -v on [email protected]
[2015-04-18T13:13:33-08:00] INFO: Completed chef-client -v on [email protected]: exit status 0
[2015-04-18T13:13:33-08:00] INFO: Processing chef_node[webserver] action create (basic_chef_client::block line 57)
(up to date)
[2015-04-18T13:13:33-08:00] INFO: Chef Run complete in 6.688063 seconds
Running handlers:
[2015-04-18T13:13:33-08:00] INFO: Running report handlers
Running handlers complete
[2015-04-18T13:13:33-08:00] INFO: Report handlers complete
Chef Client finished, 0/1 resources updated in 9.993406 seconds
But I look at virutalbox and I do not see a VM created for this instance, nor can I visit the static nginx page created by the djnginx cookbook.
Where the heck is my VM? Or does Chef-provisioning not actually create a vagrant VM for me??
If I create a Vagrantfile for this cookbook and run vagrant up
, the VM is spun-up and the static nginx page is available for me to navigate to.
Upvotes: 0
Views: 153
Reputation: 1122
You may want to set converge true
in your machine resource, at least while testing. It doesn't appear to have run your recipe on the created VM. Appears to have created a VM and successfully run linux commands on it, so even if you can't find it, it's running.
Upvotes: 0
Reputation: 1
The Vagrant machines by default are stored in “.chef/vms”. You can see their status by going to this directory and running normal vagrant commands, e.g.:
cd .chef/vms
vagrant status
You can also use the vagrant global-status
command to see the status of any VM on your workstation. This is a useful command because it also gives you a global ID that you can use to issue vagrant commands on any VM, rather than having to find the directory with the Vagrantfile.
Upvotes: 0