Merge lp:~axwalk/juju-core/manual-provisioning-docs into lp:juju-core/docs
- manual-provisioning-docs
- Merge into docs
Proposed by
Andrew Wilkins
Status: | Merged |
---|---|
Merged at revision: | 144 |
Proposed branch: | lp:~axwalk/juju-core/manual-provisioning-docs |
Merge into: | lp:juju-core/docs |
Diff against target: |
258 lines (+232/-0) 3 files modified
htmldocs/config-manual.html (+230/-0) htmldocs/navigation.html (+1/-0) htmldocs/navigation.json (+1/-0) |
To merge this branch: | bzr merge lp:~axwalk/juju-core/manual-provisioning-docs |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
charmers | Pending | ||
Review via email: mp+188501@code.launchpad.net |
Commit message
Description of the change
Document null provider and manual provisioning
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'htmldocs/config-manual.html' | |||
2 | --- htmldocs/config-manual.html 1970-01-01 00:00:00 +0000 | |||
3 | +++ htmldocs/config-manual.html 2013-10-01 03:07:18 +0000 | |||
4 | @@ -0,0 +1,230 @@ | |||
5 | 1 | <!DOCTYPE html> | ||
6 | 2 | <html> | ||
7 | 3 | <!--Head--> | ||
8 | 4 | <head> | ||
9 | 5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
10 | 6 | <title>Juju Documentation</title> | ||
11 | 7 | <script src="/wp-content/themes/ubuntu/library/js/all-yui.js"></script> | ||
12 | 8 | <link href="https://fonts.googleapis.com/css?family=Ubuntu:400,300,300italic,400italic,700,700italic|Ubuntu+Mono" rel="stylesheet" type="text/css"> | ||
13 | 9 | <link rel="stylesheet" type="text/css" media="screen" href="https://juju.ubuntu.com/wp-content/themes/juju-website/css/reset.css"> | ||
14 | 10 | <link rel="shortcut icon" href="//assets.ubuntu.com/sites/ubuntu/latest/u/img/favicon.ico" /> | ||
15 | 11 | <link rel="stylesheet" type="text/css" media="screen" href="//assets.ubuntu.com/sites/guidelines/css/latest/ubuntu-styles.css" /> | ||
16 | 12 | <link rel="stylesheet" type="text/css" media="screen" href="//assets.ubuntu.com/sites/ubuntu/latest/u/css/global.css" /> | ||
17 | 13 | <link rel="stylesheet" type="text/css" media="screen" href="https://juju.ubuntu.com/wp-content/themes/juju-website/css/960.css"> | ||
18 | 14 | <link rel="stylesheet" type="text/css" media="screen" href="https://juju.ubuntu.com/wp-content/themes/juju-website/css/home-new.css"> | ||
19 | 15 | <link rel="stylesheet" id="stacktack-css" href="https://juju.ubuntu.com/wp-content/plugins/stacktack/css/stacktack.min.css?ver=3.4.2" type="text/css" media="all"> | ||
20 | 16 | <link href="./css/main.css" rel="stylesheet" type="text/css"> | ||
21 | 17 | |||
22 | 18 | <!--[if lt IE 9]> | ||
23 | 19 | <script type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script> | ||
24 | 20 | <![endif]--> | ||
25 | 21 | </head> | ||
26 | 22 | <!--End-Head--> | ||
27 | 23 | |||
28 | 24 | |||
29 | 25 | |||
30 | 26 | <body class="resources"> | ||
31 | 27 | |||
32 | 28 | <!--Header--> | ||
33 | 29 | |||
34 | 30 | <header class="banner global" role="banner"> | ||
35 | 31 | <nav role="navigation" class="nav-primary nav-right"> | ||
36 | 32 | <div class="logo"> | ||
37 | 33 | <a class="logo-ubuntu" href="https://juju.ubuntu.com/"> | ||
38 | 34 | <img width="118" height="27" src="//assets.ubuntu.com/sites/ubuntu/latest/u/img/logo.png" alt="Juju logo" /> | ||
39 | 35 | <span>Juju</span> | ||
40 | 36 | </a> | ||
41 | 37 | </div> | ||
42 | 38 | <ul> | ||
43 | 39 | <li class="accessibility-aid"><a accesskey="s" href="#main-content">Jump to content</a></li> | ||
44 | 40 | <li class="page_item page-item-8"><a href="https://juju.ubuntu.com/charms/">Charms</a></li> | ||
45 | 41 | <li class="page_item page-item-10"><a href="https://juju.ubuntu.com/features/">Features</a></li> | ||
46 | 42 | <li class="page_item page-item-12"><a href="https://juju.ubuntu.com/deployment/">Deploy</a></li> | ||
47 | 43 | <li class="page_item page-item-14"><a href="https://juju.ubuntu.com/resources/">Resources</a></li> | ||
48 | 44 | <li class="page_item page-item-16"><a href="https://juju.ubuntu.com/community/">Community</a></li> | ||
49 | 45 | <li class="page_item page-item-18"><a href="https://juju.ubuntu.com/download/">Install Juju</a></li> | ||
50 | 46 | </ul> | ||
51 | 47 | <div id="box-search"> | ||
52 | 48 | <form class="search-form" method="get" id="searchform" action="https://juju.ubuntu.com/"> | ||
53 | 49 | <label class="off-left" for="s">Search:</label> | ||
54 | 50 | <input class="form-text" type="text" value="" name="s" id="s" /> | ||
55 | 51 | <button class="off-left form-submit" type="submit" id="searchsubmit">Search</button> | ||
56 | 52 | </form> | ||
57 | 53 | </div> | ||
58 | 54 | </nav> | ||
59 | 55 | </header> | ||
60 | 56 | <!--End-Header--> | ||
61 | 57 | <!--Preamble--> | ||
62 | 58 | <div class="wrapper"> | ||
63 | 59 | <div id="main-content" class="inner-wrapper" role="main"> | ||
64 | 60 | <div class="row no-border"> | ||
65 | 61 | <div class="header-navigation-secondary"></div> | ||
66 | 62 | <h2 class="pagetitle">Juju documentation</h2> | ||
67 | 63 | </div> | ||
68 | 64 | <section id="content" class="container-12"> | ||
69 | 65 | <div class="grid-12 doc-container"> | ||
70 | 66 | <div id="navlinks" class="grid-3 doc-navigation">LINKS</div> | ||
71 | 67 | <div class="grid-9 doc-content"> | ||
72 | 68 | <!--End-Preamble--> | ||
73 | 69 | <article> | ||
74 | 70 | <section id="config_manual"> | ||
75 | 71 | <h1>Manual Provisioning</h1> | ||
76 | 72 | |||
77 | 73 | <h2>Introduction</h2> | ||
78 | 74 | <p> | ||
79 | 75 | Juju provides a feature called "manual provisioning" that enables you to deploy Juju, and charms, to existing systems. We will describe in this section how to configure an environment using this feature. | ||
80 | 76 | </p> | ||
81 | 77 | <p class="note"><strong>Note:</strong> Manual provisioning is still in development, and should be considered experimental.</p> | ||
82 | 78 | |||
83 | 79 | <h2>Prerequisites</h2> | ||
84 | 80 | <p>Manual provisioning enables you to run Juju on systems that have a supported operating system installed. You will need to ensure that you have both SSH access and sudo rights. It is not necessary to have a password-less login, however it will improve the experience by reducing the need for repeated logins.</p> | ||
85 | 81 | |||
86 | 82 | <h2>Configuration</h2> | ||
87 | 83 | <p>You should start by generating a generic configuration file for Juju and then switching to the "null" provider by using the command: | ||
88 | 84 | <pre class="prettyprint lang-bash"> | ||
89 | 85 | juju init | ||
90 | 86 | juju switch null | ||
91 | 87 | </pre> | ||
92 | 88 | <p>This will generate a file, <strong>environments.yaml</strong> (if it doesn't already exist), which will live in your <strong>~/.juju/</strong> directory (and will create the directory if it doesn't already exist). | ||
93 | 89 | <p class="note"><strong>Note:</strong> If you have an existing configuration, you can use <code>juju generate-config --show</code> to output the new config file, then copy and paste relevant areas in a text editor etc.</p> | ||
94 | 90 | <p>The generic configuration sections generated for the null provider will look something like this, though Juju will generate this automatically you usually don't need to edit it:</p> | ||
95 | 91 | <pre class="prettyprint lang-yaml"> | ||
96 | 92 | ## https://juju.ubuntu.com/docs/config-manual.html | ||
97 | 93 | "null": | ||
98 | 94 | type: "null" | ||
99 | 95 | admin-secret: 772b9471131c6b5883475e3908156d32 | ||
100 | 96 | ## set bootstrap-host to the host where the bootstrap machine agent | ||
101 | 97 | ## should be provisioned. | ||
102 | 98 | bootstrap-host: | ||
103 | 99 | ## set the login user to bootstrap the machine as. If left blank, | ||
104 | 100 | ## juju will connect to the bootstrap machine as the current user. | ||
105 | 101 | # bootstrap-user: | ||
106 | 102 | ## set the IP address for the bootstrap machine to listen on for | ||
107 | 103 | ## storage requests. If left blank, storage will be served on all | ||
108 | 104 | ## network interfaces. | ||
109 | 105 | # storage-listen-ip: | ||
110 | 106 | # storage-port: 8040 | ||
111 | 107 | </pre> | ||
112 | 108 | <p class="note"><strong>Note:</strong> The quotes around "null" are required, as <code>null</code> is a reserved identifier in YAML.</p> | ||
113 | 109 | |||
114 | 110 | <p>When bootstrapped, tools storage will be served from the <code>bootstrap-host</code> on the specified <code>storage-listen-ip</code> and <code>storage-port</code>.</p> | ||
115 | 111 | |||
116 | 112 | <p>The null provider does not perform automatic machine provisioning like other providers; instead, you must manually provision machines into the environment. Provisioning machines is described in the following sections.</p> | ||
117 | 113 | |||
118 | 114 | <h2>Bootstrapping</h2> | ||
119 | 115 | <p>To bootstrap a null environment, you must specify the <code>bootstrap-host</code> configuration, and optionally the <code>bootstrap-user</code> configuration. If <code>bootstrap-user</code> is not specified, then Juju will ssh to the bootstrap host as the current user. Once the configuration is specified, you bootstrap as usual:</p> | ||
120 | 116 | <pre class="prettyprint lang-bash"> | ||
121 | 117 | juju bootstrap | ||
122 | 118 | </pre> | ||
123 | 119 | <p>The <code>juju bootstrap</code> command will connect to <code>bootstrap-host</code> via SSH, and copy across and install the Juju agent.</p> | ||
124 | 120 | |||
125 | 121 | <p class="note"><strong>Note:</strong> Automated destruction of null environments is currently unimplemented. To remove Juju from the <code>bootstrap-host</code>, you will need to manually stop and remove the upstart jobs (<code>/etc/init/juju*</code>).</p> | ||
126 | 122 | |||
127 | 123 | <h2>Adding machines</h2> | ||
128 | 124 | <p>To add another machine into a null environment, you must use a variant of the <code>juju add-machine</code> command, such as follows:</p> | ||
129 | 125 | <pre class="prettyprint lang-bash"> | ||
130 | 126 | juju add-machine ssh:juju.ubuntu.com | ||
131 | 127 | juju add-machine ssh:10.1.1.2 | ||
132 | 128 | juju add-machine ssh:otheruser@10.1.1.3 | ||
133 | 129 | </pre> | ||
134 | 130 | <p>As with bootstrapping, <code>juju add-machine ssh:...</code> will connect to the machine via SSH to install the Juju agent. Machines added in this way may be removed in the usual manner, with <code>juju destroy-machine</code>.</p> | ||
135 | 131 | |||
136 | 132 | <h2>Considerations and caveats</h2> | ||
137 | 133 | <p>As is implied by its name, the null provider does not attempt to control all aspects of the environment, and leaves much to the user. There are several additional things to consider:</p> | ||
138 | 134 | <ul> | ||
139 | 135 | <li>All machines added with <code>juju add-machine ssh:...</code> must be able to address and communicate directly with the <code>bootstrap-host</code>, and vice-versa.</li> | ||
140 | 136 | <li>Sudo access is required on all manually provisioned machines, to install the Juju upstart services.</li> | ||
141 | 137 | <li>Manually provisioned machines must be running a supported version of Ubuntu (12.04+).</li> | ||
142 | 138 | <li>It is not currently possible to manually provision machines into non-null provider environments.</li> | ||
143 | 139 | </ul> | ||
144 | 140 | |||
145 | 141 | </section> | ||
146 | 142 | </article> | ||
147 | 143 | <!--Postamble--> | ||
148 | 144 | </div> | ||
149 | 145 | </div> | ||
150 | 146 | </section> | ||
151 | 147 | </div> | ||
152 | 148 | </div> | ||
153 | 149 | <!--End-Postamble--> | ||
154 | 150 | <!--Footer--> | ||
155 | 151 | <footer class="global clearfix" role="contentinfo"> | ||
156 | 152 | <nav role="navigation"> | ||
157 | 153 | <div class="footer-a"> | ||
158 | 154 | <div class="clearfix"> | ||
159 | 155 | <ul> | ||
160 | 156 | <li> | ||
161 | 157 | <h2><a href="/">Juju</a></h2> | ||
162 | 158 | <ul> | ||
163 | 159 | <li><a href="/charms">Charms</a></li> | ||
164 | 160 | <li><a href="/features">Features</a></li> | ||
165 | 161 | <li><a href="/deployment">Deployment</a></li> | ||
166 | 162 | </ul> | ||
167 | 163 | </li> | ||
168 | 164 | <li> | ||
169 | 165 | <h2><a href="/resources">Resources</a></h2> | ||
170 | 166 | <ul> | ||
171 | 167 | <li><a href="/resources/juju-overview/">Overview</a></li> | ||
172 | 168 | <li><a href="/docs/">Documentation</a></li> | ||
173 | 169 | <li><a href="/resources/the-juju-gui/">The Juju web UI</a></li> | ||
174 | 170 | <li><a href="/docs/authors-charm-store.html">The charm store</a></li> | ||
175 | 171 | <li><a href="/docs/getting-started.html#test">Tutorial</a></li> | ||
176 | 172 | <li><a href="/resources/videos/">Videos</a></li> | ||
177 | 173 | <li><a href="/resources/easy-tasks-for-new-developers/">Easy tasks for new developers</a></li> | ||
178 | 174 | </ul> | ||
179 | 175 | </li> | ||
180 | 176 | <li> | ||
181 | 177 | <h2><a href="/community">Community</a></h2> | ||
182 | 178 | <ul> | ||
183 | 179 | <li><a href="/community/blog/">Juju Blog</a></li> | ||
184 | 180 | <li><a href="/events/">Events</a></li> | ||
185 | 181 | <li><a href="/community/weekly-charm-meeting/">Weekly charm meeting</a></li> | ||
186 | 182 | <li><a href="/community/charmers/">Charmers</a></li> | ||
187 | 183 | <li><a href="/docs/authors-charm-writing.html">Write a charm</a></li> | ||
188 | 184 | <li><a href="/docs/contributing.html">Help with documentation</a></li> | ||
189 | 185 | <li><a href="https://bugs.launchpad.net/juju-website/+filebug">File a bug</a></li> <li><a href="/labs/">Juju Labs</a></li> | ||
190 | 186 | </ul> | ||
191 | 187 | </li> | ||
192 | 188 | <li> | ||
193 | 189 | <h2><a href="https://jujucharms.com/sidebar/">Try Juju</a></h2> | ||
194 | 190 | <ul> | ||
195 | 191 | <li><a href="https://jujucharms.com/">Charm store</a></li> | ||
196 | 192 | <li><a href="/download/">Download Juju</a></li> | ||
197 | 193 | </ul> | ||
198 | 194 | </li> | ||
199 | 195 | </ul> | ||
200 | 196 | </div> | ||
201 | 197 | </div> | ||
202 | 198 | </nav> | ||
203 | 199 | <div class="legal clearfix"> | ||
204 | 200 | <p>© 2013 Canonical Ltd. Ubuntu and Canonical are registered trademarks of <a href="http://canonical.com">Canonical Ltd</a>.</p> | ||
205 | 201 | </div> | ||
206 | 202 | </footer> | ||
207 | 203 | |||
208 | 204 | <!--End-Footer--> | ||
209 | 205 | |||
210 | 206 | <!--Scripts--> | ||
211 | 207 | <script src="//google-code-prettify.googlecode.com/svn/loader/run_prettify.js?skin=sunburst"></script> | ||
212 | 208 | <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> | ||
213 | 209 | <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script> | ||
214 | 210 | <script src="//d38yea5fb4e2oh.cloudfront.net/jquery.stacktack.min.js"></script> | ||
215 | 211 | <script type="text/javascript" src="https://juju.ubuntu.com/docs/js/main.js"></script> | ||
216 | 212 | <script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script> | ||
217 | 213 | <script src="//assets.ubuntu.com/sites/ubuntu/latest/u/js/core.js"></script> | ||
218 | 214 | <script src="//assets.ubuntu.com/sites/ubuntu/latest/u/js/global.js"></script> | ||
219 | 215 | <!-- google analytics --> | ||
220 | 216 | <script> | ||
221 | 217 | var _gaq = _gaq || []; | ||
222 | 218 | _gaq.push(['_setAccount', 'UA-1018242-41']); | ||
223 | 219 | _gaq.push(['_trackPageview']); | ||
224 | 220 | |||
225 | 221 | (function() { | ||
226 | 222 | var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | ||
227 | 223 | ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
228 | 224 | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | ||
229 | 225 | })(); | ||
230 | 226 | </script> | ||
231 | 227 | <!--End-Scripts--> | ||
232 | 228 | |||
233 | 229 | |||
234 | 230 | </body></html> | ||
235 | 0 | 231 | ||
236 | === modified file 'htmldocs/navigation.html' | |||
237 | --- htmldocs/navigation.html 2013-09-19 20:00:11 +0000 | |||
238 | +++ htmldocs/navigation.html 2013-10-01 03:07:18 +0000 | |||
239 | @@ -7,6 +7,7 @@ | |||
240 | 7 | <li class=" sub"><a href="config-openstack.html">OpenStack Configuration</a></li> | 7 | <li class=" sub"><a href="config-openstack.html">OpenStack Configuration</a></li> |
241 | 8 | <li class=" sub"><a href="config-maas.html">MAAS Configuration</a></li> | 8 | <li class=" sub"><a href="config-maas.html">MAAS Configuration</a></li> |
242 | 9 | <li class=" sub"><a href="config-local.html">Local Configuration</a></li> | 9 | <li class=" sub"><a href="config-local.html">Local Configuration</a></li> |
243 | 10 | <li class=" sub"><a href="config-manual.html">Manual Provisioning</a></li> | ||
244 | 10 | <li class=" sub"><a href="getting-started.html#test">Testing your setup</a></li> | 11 | <li class=" sub"><a href="getting-started.html#test">Testing your setup</a></li> |
245 | 11 | <li class=""><a href="charms.html">Using Charms</a></li> | 12 | <li class=""><a href="charms.html">Using Charms</a></li> |
246 | 12 | <li class=" sub"><a href="charms-deploying.html">Deploying Services</a></li> | 13 | <li class=" sub"><a href="charms-deploying.html">Deploying Services</a></li> |
247 | 13 | 14 | ||
248 | === modified file 'htmldocs/navigation.json' | |||
249 | --- htmldocs/navigation.json 2013-09-19 20:00:11 +0000 | |||
250 | +++ htmldocs/navigation.json 2013-10-01 03:07:18 +0000 | |||
251 | @@ -9,6 +9,7 @@ | |||
252 | 9 | "OpenStack Configuration": "config-openstack.html", | 9 | "OpenStack Configuration": "config-openstack.html", |
253 | 10 | "MAAS Configuration": "config-maas.html", | 10 | "MAAS Configuration": "config-maas.html", |
254 | 11 | "Local Configuration": "config-local.html", | 11 | "Local Configuration": "config-local.html", |
255 | 12 | "Manual Provisioning": "config-manual.html", | ||
256 | 12 | "Testing your setup": "getting-started.html#test" | 13 | "Testing your setup": "getting-started.html#test" |
257 | 13 | } | 14 | } |
258 | 14 | }, | 15 | }, |