summaryrefslogtreecommitdiff
path: root/chef/distro/common/html/chef-solo.8.html
blob: 9ba3798779034d13767db47498d3d2162bef1f5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' value='text/html;charset=utf8'>
  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
  <title>chef-solo(8) - Runs chef in solo mode against a specified cookbook location.</title>
  <style type='text/css' media='all'>
  /* style: man */
  body#manpage {margin:0}
  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
  .mp h2 {margin:10px 0 0 0}
  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
  .mp h3 {margin:0 0 0 4ex}
  .mp dt {margin:0;clear:left}
  .mp dt.flush {float:left;width:8ex}
  .mp dd {margin:0 0 0 9ex}
  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
  .mp pre {margin-bottom:20px}
  .mp pre+h2,.mp pre+h3 {margin-top:22px}
  .mp h2+pre,.mp h3+pre {margin-top:5px}
  .mp img {display:block;margin:auto}
  .mp h1.man-title {display:none}
  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
  .mp h2 {font-size:16px;line-height:1.25}
  .mp h1 {font-size:20px;line-height:2}
  .mp {text-align:justify;background:#fff}
  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
  .mp u {text-decoration:underline}
  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
  .mp b.man-ref {font-weight:normal;color:#434241}
  .mp pre {padding:0 4ex}
  .mp pre code {font-weight:normal;color:#434241}
  .mp h2+pre,h3+pre {padding-left:0}
  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
  ol.man-decor {width:100%}
  ol.man-decor li.tl {text-align:left}
  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
  ol.man-decor li.tr {text-align:right;float:right}
  </style>
  <style type='text/css' media='all'>
  /* style: toc */
  .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
  .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
  .man-navigation a:hover {color:#111;text-decoration:underline}
  </style>
</head>
<!--
  The following styles are deprecated and will be removed at some point:
  div#man, div#man ol.man, div#man ol.head, div#man ol.man.

  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
  .man-navigation should be used instead.
-->
<body id='manpage'>
  <div class='mp' id='man'>

  <div class='man-navigation' style='display:none'>
    <a href="#NAME">NAME</a>
    <a href="#SYNOPSIS">SYNOPSIS</a>
    <a href="#DESCRIPTION">DESCRIPTION</a>
    <a href="#SEE-ALSO">SEE ALSO</a>
    <a href="#AUTHOR">AUTHOR</a>
  </div>

  <ol class='man-decor man-head man head'>
    <li class='tl'>chef-solo(8)</li>
    <li class='tc'>Chef Manual</li>
    <li class='tr'>chef-solo(8)</li>
  </ol>

  <h2 id="NAME">NAME</h2>
<p class="man-name">
  <code>chef-solo</code> - <span class="man-whatis">Runs chef in solo mode against a specified cookbook location.</span>
</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<p><strong>chef-solo</strong> <em>(options)</em></p>

<dl>
<dt><code>-c</code>, <code>--config CONFIG</code></dt><dd>The configuration file to use</dd>
<dt><code>-d</code>, <code>--daemonize</code></dt><dd>Daemonize the process</dd>
<dt><code>-g</code>, <code>--group GROUP</code></dt><dd>Group to set privilege to</dd>
<dt><code>-i</code>, <code>--interval SECONDS</code></dt><dd>Run chef-client periodically, in seconds</dd>
<dt><code>-j</code>, <code>--json-attributes JSON_ATTRIBS</code></dt><dd>Load attributes from a JSON file or URL</dd>
<dt><code>-l</code>, <code>--log_level LEVEL</code></dt><dd>Set the log level (debug, info, warn, error, fatal)</dd>
<dt><code>-L</code>, <code>--logfile LOGLOCATION</code></dt><dd>Set the log file location, defaults to STDOUT - recommended for
daemonizing</dd>
<dt><code>-N</code>, <code>--node-name NODE_NAME</code></dt><dd>The node name for this client</dd>
<dt><code>-r</code>, <code>--recipe-url RECIPE_URL</code></dt><dd>Pull  down  a  remote  gzipped  tarball of recipes and untar it to the
cookbook cache.</dd>
<dt><code>-s</code>, <code>--splay SECONDS</code></dt><dd>The splay time for running at intervals, in seconds</dd>
<dt><code>-u</code>, <code>--user USER</code></dt><dd>User to set privilege to</dd>
<dt><code>-v</code>, <code>--version</code></dt><dd>Show chef version</dd>
<dt><code>-h</code>, <code>--help</code></dt><dd>Show this message</dd>
</dl>


<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>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>

<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>

<p>For example:</p>

<pre><code>file_cache_path "/var/chef-solo"
cookbook_path "/var/chef-solo/cookbooks"
</code></pre>

<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>

<p>You can also specify cookbook_path as an array, passing multiple locations
to search for cookbooks.</p>

<p>For example:</p>

<pre><code>file_cache_path "/var/chef-solo"
cookbook_path ["/var/chef-solo/cookbooks", "/var/chef-solo/site-cookbooks"]
</code></pre>

<p>Note that earlier entries are now overridden by later ones.</p>

<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>

<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:</p>

<pre><code>{
  "resolver": {
    "nameservers": [ "10.0.0.1" ],
    "search":"int.example.com"
  },
  "run_list": [ "recipe[resolver]" ]
}
</code></pre>

<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>

<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>

<p>For example:</p>

<pre><code>chef-solo -c ~/solo.rb -j ~/node.json  -r http://www.example.com/chef-solo.tar.gz
</code></pre>

<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.</p>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<p>Full documentation for Chef and  chef-solo  is  located  on  the  Chef  wiki,
http://wiki.opscode.com/display/chef/Home.</p>

<h2 id="AUTHOR">AUTHOR</h2>

<p>Chef was written by Adam Jacob <a href="&#109;&#97;&#x69;&#x6c;&#116;&#x6f;&#x3a;&#x61;&#x64;&#97;&#x6d;&#64;&#x6f;&#115;&#112;&#99;&#111;&#x64;&#101;&#46;&#x63;&#x6f;&#x6d;" data-bare-link="true">&#97;&#100;&#97;&#x6d;&#64;&#111;&#115;&#x70;&#99;&#x6f;&#100;&#x65;&#x2e;&#99;&#x6f;&#109;</a> of Opscode
(http://www.opscode.com),  with contributions from the community.  This
manual page was written by Joshua Timberman  <a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#x6f;&#58;&#x6a;&#x6f;&#x73;&#x68;&#x75;&#97;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#x64;&#x65;&#46;&#99;&#x6f;&#x6d;" data-bare-link="true">&#x6a;&#111;&#115;&#x68;&#x75;&#97;&#64;&#x6f;&#x70;&#115;&#99;&#x6f;&#100;&#x65;&#46;&#x63;&#111;&#109;</a>  with
help2man.  Permission  is  granted  to copy, distribute and / or modify
this document under the terms of the Apache 2.0 License.</p>

<p>On Debian systems, the complete text of the Apache 2.0 License  can  be
found in /usr/share/common-licenses/Apache-2.0.</p>


  <ol class='man-decor man-foot man foot'>
    <li class='tl'>Chef 0.10.0</li>
    <li class='tc'>April 2011</li>
    <li class='tr'>chef-solo(8)</li>
  </ol>

  </div>
</body>
</html>