.\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . .TH "CHEF\-SOLO" "8" "October 2012" "Chef 10.16.0.rc.1" "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\.