From 9ae6cdaddcdb68fa42e1197ec781516be9821463 Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Thu, 30 Oct 2014 15:53:02 -0400 Subject: [PATCH] Add Chef Apply documentation --- website/docs/source/layouts/layout.erb | 1 + .../source/v2/provisioning/chef_apply.html.md | 102 ++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 website/docs/source/v2/provisioning/chef_apply.html.md diff --git a/website/docs/source/layouts/layout.erb b/website/docs/source/layouts/layout.erb index f9d5f54b9..688b7507d 100644 --- a/website/docs/source/layouts/layout.erb +++ b/website/docs/source/layouts/layout.erb @@ -174,6 +174,7 @@ >CFEngine >Chef Solo >Chef Client + >Chef Apply >Docker >Puppet Apply >Puppet Agent diff --git a/website/docs/source/v2/provisioning/chef_apply.html.md b/website/docs/source/v2/provisioning/chef_apply.html.md new file mode 100644 index 000000000..6aae0927a --- /dev/null +++ b/website/docs/source/v2/provisioning/chef_apply.html.md @@ -0,0 +1,102 @@ +--- +page_title: "Chef Apply - Provisioning" +sidebar_current: "provisioning-chefapply" +--- + +# Chef Apply Provisioner + +**Provisioner name: `chef_apply`** + +The Chef Apply provisioner allows you to provision the guest using +[Chef](https://www.getchef.com/), specifically with +[Chef Apply](https://docs.getchef.com/ctl_chef_apply.html). + +Chef Apply is ideal for people who are already experienced with Chef and the +Chef ecosystem. Specifically, this documentation page does not cover how use +Chef or how to write Chef recipes. + +
+

+ Warning: If you are not familiar with Chef and Vagrant already, + we recommend starting with the shell + provisioner. +

+
+ +## Options + +This section lists the complete set of available options for the Chef Apply +provisioner. More detailed examples of how to use the provisioner are +available below this section. + +Due to the unqiue nature of Chef Apply, the Chef Apply provisioner does not +inherit the [common options for other Chef provisioners](/v2/provisioning/chef_common.html). + +* `recipe` (string) - The raw recipe contents to execute using Chef Apply on + the guest. + +* `log_level` (string) - The log level to use while executing `chef-apply`. The + default value is "info". + +* `upload_path` (string) - **Advanced!** The location on the guest where the + generated recipe file should be stored. For most use cases, it is unlikely you + will need to customize this value. The default value is + `/tmp/vagrant-chef-apply-#` where `#` is a unique counter generated by + Vagrant to prevent collisions. + +## Specifying a Recipe + +The easiest way to get started with the Chef Apply provisioner is to just +specify an inline +[Chef recipe](https://docs.getchef.com/essentials_cookbook_recipes.html). For +example: + +```ruby +Vagrant.configure("2") do |config| + config.vm.provision "chef_apply" do |chef| + chef.recipe = "package[apache2]" + end +end +``` + +This causes Vagrant to run Chef Apply with the given recipe contents. If you are +familiar with Chef, you know this will install the apache2 package from the +system package provider. + +Since single-line Chef recipes are rare, you can also specify the recipe using a +"heredoc": + +```ruby +Vagrant.configure("2") do |config| + config.vm.provision "chef_apply" do |chef| + chef.recipe = <<-RECIPE + package "apache2" + + template "/etc/apache2/my.config" do + # ... + end + RECIPE + end +end +``` + +Finally, if you would prefer to store the recipe as plain-text, you can set the +recipe to the contents of a file: + +```ruby +Vagrant.configure("2") do |config| + config.vm.provision "chef_apply" do |chef| + chef.recipe = File.read("/path/to/my/recipe.rb") + end +end +``` + +## Roles + +The Vagrant Chef Apply provisioner does not support roles. Please use the a +different Vagrant Chef provisioner if you need support for roles. + +## Data Bags + +The Vagrant Chef Apply provisioner does not support data_bags. Please use the a +different Vagrant Chef provisioner if you need support for data_bags.