---
layout: docs
page_title: Vagrant Cloud-Init Configuration
description: Documentation of various configuration options for Vagrant cloud-init
---

# Configuration

Vagrant cloud-init has several options that allow users to define a config to be
used with cloud-init.

For more detailed information about these config values and how to use cloud-init,
please read the [official documentation for cloud-init](https://cloudinit.readthedocs.io/en/latest/index.html).

## cloud_init Options

It should be noted that Vagrant will not validate the correctness of the `cloud-init`
config provided, only that a cloud-init config has been provided through `path`
or directly `inline` in a Vagrantfile.

- `content_type` (string) - Required argument that defines the Content-Type of the
  given cloud_init config. Vagrant only supports the following options for `content_type`:

  - `"text/cloud-boothook"`
  - `"text/cloud-config"`
  - `"text/cloud-config-archive"`
  - `"text/jinja2"`
  - `"text/part-handler"`
  - `"text/upstart-job"`
  - `"text/x-include-once-url"`
  - `"text/x-include-url"`
  - `"text/x-shellscript"`

- `path` (string) - Path to a file on the host machine that contains
  cloud-init user data. This will be added to the multipart user-data file along
  with its `content_type`. Incompatible with the `inline` option.
- `inline` (string) - Inline cloud-init user data. This will be added to the
  multipart user-data file along with its `content_type`. Incompatible with `path`
  option.

Examples of how to define these options can be found in the
[usage documentation](/vagrant/docs/cloud-init/configuration).

### cloud_init Type

When defining a config for cloud_init, you can optionally define a `type` for the config:

```ruby
config.vm.cloud_init :user_data, content_type: "text/cloud-config", path: "config.cfg"

config.vm.cloud_init :user_data do |cloud_init|
  cloud_init.content_type = "text/cloud-config"
  cloud_init.path = "config.cfg"
end
```

However, this is not a requirement. Leaving off `type` will default to `:user_data`.

- `type` (Symbol) - This is an optional config that defines the type of
  cloud-init config. Currently, the only supported `type` is `:user_data`. If a type
  is not defined, it will default to `:user_data`.
