Files
docker-docs/machine/drivers/exoscale.md
Misty Stanley-Jones a4f5e30249 Various copyedits to reduce future tense, wordiness, and use of 'please' (#5788)
* Reword lots of instances of 'will'

* Reword lots of instances of won't

* Reword lots of instances of we'll

* Eradicate you'll

* Eradicate 'be able to' type of phrases

* Eradicate 'unable to' type of phrases

* Eradicate 'has / have to' type of phrases

* Eradicate 'note that' type of phrases

* Eradicate 'in order to' type of phrases

* Redirect to official Chef and Puppet docs

* Eradicate gratuitous 'please'

* Reduce use of e.g.

* Reduce use of i.e.

* Reduce use of N.B.

* Get rid of 'sexagesimal' and correct some errors
2018-01-25 17:37:23 -08:00

89 lines
4.5 KiB
Markdown

---
description: Exoscale driver for machine
keywords: machine, exoscale, driver
title: Exoscale
---
Create machines on [Exoscale](https://www.exoscale.ch/).
Get your API key and API secret key from [API details](https://portal.exoscale.ch/account/api) and pass them to `machine create` with the `--exoscale-api-key` and `--exoscale-api-secret-key` options.
## Usage
$ docker-machine create --driver exoscale \
--exoscale-api-key=API \
--exoscale-api-secret-key=SECRET \
vm
## Options
- `--exoscale-affinity-group`: [Anti-affinity group][anti-affinity] the machine is started in.
- `--exoscale-api-key`: **required** Your API key;
- `--exoscale-api-secret-key`: **required** Your API secret key;
- `--exoscale-availability-zone`: Exoscale [availability zone][datacenters] (ch-dk-2, at-vie-1, de-fra-1, ...);
- `--exoscale-disk-size`: Disk size for the host in GB (10, 50, 100, 200, 400);
- `--exoscale-image`: Image template, for example `ubuntu-16.04`, also known as `Linux Ubuntu 16.04 LTS 64-bit`, [see below](#image-template-name));
- `--exoscale-instance-profile`: Instance profile (Small, Medium, Large, ...);
- `--exoscale-security-group`: Security group. _It is created if it doesn't exist_;
- `--exoscale-ssh-user`: SSH username, such as `ubuntu`, [see below](#ssh-username));
- `--exoscale-url`: Your API endpoint;
- `--exoscale-userdata`: Path to file containing user data for [cloud-init](https://cloud-init.io/);
### Environment variables and default values
| CLI option | Environment variable | Default |
| ------------------------------- | ---------------------------- | --------------------------------- |
| `--exoscale-affinity-group` | `EXOSCALE_AFFINITY_GROUP` | - |
| **`--exoscale-api-key`** | `EXOSCALE_API_KEY` | - |
| **`--exoscale-api-secret-key`** | `EXOSCALE_API_SECRET` | - |
| `--exoscale-availability-zone` | `EXOSCALE_AVAILABILITY_ZONE` | `ch-dk-2` |
| `--exoscale-disk-size` | `EXOSCALE_DISK_SIZE` | `50` |
| `--exoscale-image` | `EXOSCALE_IMAGE` | `ubuntu-16.04` |
| `--exoscale-instance-profile` | `EXOSCALE_INSTANCE_PROFILE` | `small` |
| `--exoscale-security-group` | `EXOSCALE_SECURITY_GROUP` | `docker-machine` |
| `--exoscale-ssh-user` | `EXOSCALE_SSH_USER` | - |
| `--exoscale-url` | `EXOSCALE_ENDPOINT` | `https://api.exoscale.ch/compute` |
| `--exoscale-userdata` | `EXOSCALE_USERDATA` | - |
**NB:** the _instance profile_, _image_, and _availability zone_ are case insensitive.
### Image template name
The [VM templates][templates] available at Exoscale are listed on the Portal when adding a new instance.
For any Linux template, you may use the shorter name composed only of the name
and version, as shown below.
| Full name | Short name |
| ------------------------------- | -------------------- |
| Linux Debian 8 64-bit | `debian-8` |
| Linux Ubuntu 16.04 LTS 64-bit | `ubuntu-16.04` |
| Linux CentOS 7.3 64-bit | `centos-7.3` |
| Linux CoreOS stable 1298 64-bit | `coreos-stable-1298` |
**NB:** Docker doesn't work for non-Linux machines like OpenBSD and Windows Server.
### SSH Username
The exoscale driver does a wild guess to match the default SSH user. If left empty, it picks a suitable one:
- `centos` for Centos 7.3+;
- `core` for Linux CoreOS;
- `debian` for Debian 8+;
- `ubuntu` for Ubuntu;
- otherwise, `root`.
### Custom security group
If a custom security group is provided, you need to ensure that you allow TCP ports 22 and 2376 in an ingress rule.
Moreover, if you want to use [Docker Swarm](/engine/swarm/swarm-tutorial/), also add TCP port 2377.
### More than 8 docker machines?
There is a limit to the number of machines that an anti-affinity group can have. This can be worked around by specifying an additional anti-affinity group using `--exoscale-affinity-group=docker-machineX`
[templates]: https://www.exoscale.ch/open-cloud/templates/
[datacenters]: https://www.exoscale.ch/infrastructure/datacenters/
[anti-affinity]: https://community.exoscale.ch/documentation/compute/anti-affinity-groups/