Skip to content

Commit cf552b4

Browse files
committed
Merge pull request juju#918 from pmatulis/issue_781-config-rackspace.md
Issue 781 config rackspace.md
2 parents d893568 + 62b1247 commit cf552b4

File tree

8 files changed

+255
-0
lines changed

8 files changed

+255
-0
lines changed
30 KB
Loading

src/en/config-rackspace.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
Title: Configuring for Rackspace
2+
TODO: Review again soon (created: March 2016)
3+
'juju add-credential rackspace' should exist
4+
Need exhaustive list of conf/cred parameters to use
5+
Does 'juju show-cloud rackspace' replace 'juju help rackspace-provider'? Confirm these commands
6+
Confirm navigation.tpl contains controllers & models (see links in first paragraph)
7+
Explain the configuration parameters (like credentials parameters)
8+
Explain how to use auth-type 'access-key'
9+
10+
11+
# Configuring for Rackspace
12+
13+
Here we gather the ingredients necessary for the creation of a *controller* for
14+
the Rackspace cloud provider (see [Controllers](./controllers.html)). If your
15+
objective is instead to create a Rackspace *model* please see [Defining a
16+
model](./models-defining.html).
17+
18+
19+
## Prerequisites
20+
21+
- A Rackspace cloud account is required. See https://cart.rackspace.com/cloud .
22+
23+
- The Juju client (the host running the below commands) will need the ability
24+
to contact the Rackspace infrastructure on TCP ports 22 and 17070.
25+
26+
- An understanding of the [Getting started](./getting-started.html) page.
27+
28+
29+
## Credentials
30+
31+
Values will need to be found for certain parameters:
32+
33+
**`default-region`**<br/>
34+
Decide on the default Rackspace *region*. See
35+
[Rackspace regions](https://support.rackspace.com/how-to/about-regions/).
36+
or the output to `juju list-clouds`.
37+
38+
**`auth-type`**<br/>
39+
This can be either 'access-key' or 'userpass'. Here, we'll use 'userpass'.
40+
41+
**`username`**<br/>
42+
For the 'userpass' auth-type, this is the name used to log in to the
43+
[Rackspace cloud control panel](https://mycloud.rackspace.com).
44+
45+
**`password`**<br/>
46+
For the 'userpass' auth-type, this is the password associated with the value of
47+
'username'.
48+
49+
**`tenant-name`**<br/>
50+
This is the Rackspace account number. You can view it in the cloud control
51+
panel in the top-right corner (under your username).
52+
53+
See `juju show-cloud rackspace`.
54+
55+
### Add credentials
56+
57+
Create a YAML file called, say, `credentials-rackspace.yaml` and provide the
58+
credential-related material. In this example, it would look like this:
59+
60+
```yaml
61+
rackspace:
62+
default-credential: some_label
63+
default-region: DFW
64+
some_label:
65+
auth-type: userpass
66+
username: your_username
67+
password: your_password
68+
tenant-name: "123456"
69+
```
70+
71+
Now add this to the system. At time of this writing, you must manually add the
72+
above block to the user-wide credentials file
73+
`~/.local/share/juju/credentials`. Put it under the 'credentials:' section.
74+
Therefore, if this is the sole block in that file, the entire file would appear
75+
as:
76+
77+
```yaml
78+
credentials:
79+
rackspace:
80+
default-credential: some_label
81+
default-region: DFW
82+
some_label:
83+
auth-type: userpass
84+
username: your_username
85+
password: your_password
86+
tenant-name: "123456"
87+
```
88+
89+
90+
## Configuration
91+
92+
Create a YAML file called, say, `~/config-rackspace.yaml` and provide the
93+
configuration-related material. In this example, it would look like this:
94+
95+
```yaml
96+
logging-config: "<root>=DEBUG"
97+
agent-metadata-url: https://streams.canonical.com/juju/tools
98+
image-metadata-url: http://0315ec36e423bb7dba4b-3eabf88619cf7b7e6fc262bcf48df10b.r19.cf1.rackcdn.com/images
99+
image-stream: "released"
100+
default-series: "trusty"
101+
```
102+
103+
!!! Note: A temporary URL provided by Rackspace has been used for
104+
'image-metadata-url' in the example configuration. This should not be needed in
105+
the long term.
106+
107+
108+
## Create controller
109+
110+
Once the configuration and credentials information have been entered it is time
111+
to create the controller for Rackspace. See
112+
[Creating a controller](./controllers-creating.html).
113+
114+
This will result in the controller being visible in the
115+
[Rackspace cloud control panel](https://mycloud.rackspace.com):
116+
117+
![bootstrap machine 0 in Rackspace portal](./media/config-rackspace_portal-machine_0.png)
118+
119+
120+
## Additional notes
121+
122+
See [General configuration options](https://jujucharms.com/docs/stable/config-general)
123+
for additional and advanced customization of your environment.

src/en/controllers-creating.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Title: Creating a Juju Controller
2+
TODO: Review again soon (created: March 2016)
3+
4+
5+
# Creating a controller
6+
7+
Use the `juju bootstrap` command to create a controller (and model) for a given
8+
cloud provider:
9+
10+
`juju bootstrap <controller name> <provider name> [--options]`
11+
12+
See `juju help bootstrap` for details on this command or see the
13+
[command reference page](./commands.html#juju-bootstrap).
14+
15+
16+
## Examples
17+
18+
**1.** The controller is for Rackspace. We call the controller 'controller-rackspace'
19+
and use `--upload-tools` to make the agent software available to our default
20+
series (specified in the provider's configuration):
21+
22+
```bash
23+
juju bootstrap \
24+
controller-rackspace rackspace \
25+
--debug --upload-tools --config=~/config-rackspace.yaml
26+
```

src/en/controllers.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Title: Juju Controllers
2+
TODO: Review again soon (created: March 2016)
3+
4+
5+
# Controllers
6+
7+
A Juju *controller* is a machine that gets provisioned when the initial cloud
8+
provider *model* is created. The controller is therefore also called the
9+
*controller model* due to it being associated with that initial model. It
10+
describes this model whose primary purpose is to run and manage the Juju API
11+
servers and underlying database.
12+
13+
Once a controller model has been created you can define multiple models within
14+
that environment. See [Models](./models.html).
15+
16+
When a controller is intended to be used by multiple people, it is recommended
17+
that Juju's [multi-user functionality](./juju-multiuser-environments.html) be
18+
leveraged.
19+
20+
It is not possible to create a second controller model for the same cloud
21+
provider type (an error will be returned).
22+
23+
Since a controller can now *host* multiple models, the destruction of a
24+
controller must be done with extreme caution as all models will be destroyed
25+
along with it.
26+
27+
See [Creating a controller](./controllers-creating.html).
28+
29+
30+
## Related commands
31+
32+
`juju bootstrap`<br/ >
33+
`juju list-controllers`<br/ >
34+
`juju show-controller`<br/ >
35+
`juju destroy-controller`<br/ >
36+
`juju kill-controller`<br/ >
37+
`juju switch`<br/ >
38+
`juju switch <controller>`
39+
40+
See the [command reference page](./commands.html) for all Juju commands.

src/en/juju-multiuser-environments.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Title: Juju and multi-user environments
2+
TODO: Convert to 2.0 ASAP
23

34

45
# Managing multi-user environments

src/en/models-defining.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Title: Defining a Juju Model
2+
TODO: Review again soon (created: March 2016)
3+
Remove bug citation (1552469) when fixed and remove --config option from example command
4+
5+
6+
# Defining a model
7+
8+
Use the `juju create-model` command to create a *hosted model* for a given
9+
cloud provider:
10+
11+
`juju create-model [--options] <name> [key=[value] ...]`
12+
13+
See `juju help create-model` for details on this command or see the
14+
[command reference page](./commands.html#juju-create-model).
15+
16+
17+
## Examples
18+
19+
**1.** Create a model for the current controller. We call the model
20+
'rackspace-prod':
21+
22+
!!! Note: Due to
23+
[LP #1552469](https://bugs.launchpad.net/juju-core/+bug/1552469) credentials
24+
already set during the creation of the controller model are not utilised
25+
automatically. You will need to create a 3-line file for these parameters:
26+
`username`, `password`, and `tenant-name` and then refer to it.
27+
28+
```bash
29+
juju create-model --config=~/config-rackspace_creds.yaml rackspace-prod
30+
```

src/en/models.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Title: Juju Models
2+
TODO: Review again soon (created: March 2016)
3+
4+
5+
# Models
6+
7+
A Juju *model* is an environment associated with a cloud provider type. When
8+
the **initial** model is created a *controller* (see
9+
[Controllers](./controllers.html)) is provisioned along with it. It is not
10+
possible to create a second controller for the same cloud provider type (an
11+
error will be returned).
12+
13+
Once the initial model has been created, multiple subsequent models can be
14+
created. Indeed, it is considered best practice to create additional models for
15+
deploying workloads, leaving the controller model for Juju's own
16+
infrastructure. Services can still be deployed to the controller model, but it
17+
is generally expected that these be solely for management and monitoring
18+
purposes (e.g. Nagios, Landscape).
19+
20+
See [Defining a model](./models-defining.html).
21+
22+
23+
## Related commands
24+
25+
`juju list-models`<br/ >
26+
`juju create-model`<br/ >
27+
`juju use-model`<br/ >
28+
`juju share-model`<br/ >
29+
`juju list-shares`<br/ >
30+
`juju destroy-model`<br/ >
31+
`juju switch`<br/ >
32+
`juju switch <model>`<br/ >
33+
34+
See the [command reference page](./commands.html) for all Juju commands.

src/navigation.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<li><a href="config-local.html">Local</a></li>
1414
<li><a href="config-maas.html">MAAS (bare metal)</a></li>
1515
<li><a href="config-openstack.html">OpenStack</a></li>
16+
<li><a href="config-rackspace.html">Rackspace</a></li>
1617
<li><a href="config-scaleway.html">Scaleway</a></li>
1718
<li><a href="config-vagrant.html">Vagrant</a></li>
1819
<li><a href="config-vmware.html">VMWare vSphere</a></li>

0 commit comments

Comments
 (0)