.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "CHEF\-SOLO" "8" "December 2011" "Chef 0.10.6" "Chef Manual"
.
.SH "NAME"
\fBchef\-solo\fR \- Runs chef in solo mode against a specified cookbook location\.
.
.SH "SYNOPSIS"
\fBchef\-solo\fR \fI(options)\fR
.
.TP
\fB\-c\fR, \fB\-\-config CONFIG\fR
The configuration file to use
.
.TP
\fB\-d\fR, \fB\-\-daemonize\fR
Daemonize the process
.
.TP
\fB\-g\fR, \fB\-\-group GROUP\fR
Group to set privilege to
.
.TP
\fB\-i\fR, \fB\-\-interval SECONDS\fR
Run chef\-client periodically, in seconds
.
.TP
\fB\-j\fR, \fB\-\-json\-attributes JSON_ATTRIBS\fR
Load attributes from a JSON file or URL
.
.TP
\fB\-l\fR, \fB\-\-log_level LEVEL\fR
Set the log level (debug, info, warn, error, fatal)
.
.TP
\fB\-L\fR, \fB\-\-logfile LOGLOCATION\fR
Set the log file location, defaults to STDOUT \- recommended for daemonizing
.
.TP
\fB\-N\fR, \fB\-\-node\-name NODE_NAME\fR
The node name for this client
.
.TP
\fB\-r\fR, \fB\-\-recipe\-url RECIPE_URL\fR
Pull down a remote gzipped tarball of recipes and untar it to the cookbook cache\.
.
.TP
\fB\-s\fR, \fB\-\-splay SECONDS\fR
The splay time for running at intervals, in seconds
.
.TP
\fB\-u\fR, \fB\-\-user USER\fR
User to set privilege to
.
.TP
\fB\-v\fR, \fB\-\-version\fR
Show chef version
.
.TP
\fB\-h\fR, \fB\-\-help\fR
Show this message
.
.SH "DESCRIPTION"
Chef Solo allows you to run Chef Cookbooks in the absence of a Chef Server\. To do this, the complete cookbook needs to be present on disk\.
.
.P
By default Chef Solo will look in /etc/chef/solo\.rb for its configuration\. This configuration file has two required variables: file_cache_path and cookbook_path\.
.
.P
For example:
.
.IP "" 4
.
.nf

file_cache_path "/var/chef\-solo"
cookbook_path "/var/chef\-solo/cookbooks"
.
.fi
.
.IP "" 0
.
.P
For your own systems, you can change this to reflect any directory you like, but you\'ll need to specify absolute paths and the cookbook_path directory should be a subdirectory of the file_cache_path\.
.
.P
You can also specify cookbook_path as an array, passing multiple locations to search for cookbooks\.
.
.P
For example:
.
.IP "" 4
.
.nf

file_cache_path "/var/chef\-solo"
cookbook_path ["/var/chef\-solo/cookbooks", "/var/chef\-solo/site\-cookbooks"]
.
.fi
.
.IP "" 0
.
.P
Note that earlier entries are now overridden by later ones\.
.
.P
Since chef\-solo doesn\'t have any interaction with a Chef Server, you\'ll need to specify node\-specifc attributes in a JSON file\. This can be located on the target system itself, or it can be stored on a remote server such as S3, or a web server on your network\.
.
.P
Within the JSON file, you\'ll also specify the recipes that Chef should run in the "run_list"\. An example JSON file, which sets a resolv\.conf:
.
.IP "" 4
.
.nf

{
  "resolver": {
    "nameservers": [ "10\.0\.0\.1" ],
    "search":"int\.example\.com"
  },
  "run_list": [ "recipe[resolver]" ]
}
.
.fi
.
.IP "" 0
.
.P
Then you can run chef\-solo with \-j to specify the JSON file\. It will look for cookbooks in the cookbook_path configured in the configuration file, and apply attributes and use the run_list from the JSON file specified\.
.
.P
You can use \-c to specify the path to the configuration file (if you don\'t want chef\-solo to use the default)\. You can also specify \-r for a cookbook tarball\.
.
.P
For example:
.
.IP "" 4
.
.nf

chef\-solo \-c ~/solo\.rb \-j ~/node\.json  \-r http://www\.example\.com/chef\-solo\.tar\.gz
.
.fi
.
.IP "" 0
.
.P
In the above case, chef\-solo would extract the tarball to your specified cookbook_path, use ~/solo\.rb as the configuration file, and apply attributes and use the run_list from ~/node\.json\.
.
.SH "SEE ALSO"
Full documentation for Chef and chef\-solo is located on the Chef wiki, http://wiki\.opscode\.com/display/chef/Home\.
.
.SH "AUTHOR"
Chef was written by Adam Jacob \fIadam@ospcode\.com\fR of Opscode (http://www\.opscode\.com), with contributions from the community\. This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR with help2man\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
.
.P
On Debian systems, the complete text of the Apache 2\.0 License can be found in /usr/share/common\-licenses/Apache\-2\.0\.