forked from docker/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
25e5b5b
commit a514754
Showing
1 changed file
with
290 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,290 @@ | ||
# Aruba Cloud Driver for Docker Machine | ||
|
||
## Table of Contents | ||
* [Overview](#overview) | ||
* [Requirements](#requirements) | ||
* [Installation](#installation) | ||
* [From a Release](#from-a-release) | ||
* [From Source](#from-source) | ||
* [Usage](#usage) | ||
* [Available Options](#available-options) | ||
* [Examples](#examples) | ||
* [License](#license) | ||
|
||
## Overview | ||
|
||
The Aruba Cloud Driver is a plugin for Docker Machine which allows you to automate the provisioning of Docker hosts on Aruba Cloud Servers. The plugin is based on the [Go Aruba Cloud SDK](https://github.com/Arubacloud/goarubacloud) and [Cloud API](http://kb.cloud.it/en/api.aspx). | ||
|
||
To acquire Aruba Cloud Cloud API credentials visit https://www.cloud.it. | ||
|
||
## Requirements | ||
|
||
* [Docker Machine](https://docs.docker.com/machine/install-machine/) 0.9.0 or a newer version | ||
|
||
Windows and Mac OS X users may install [Docker Toolbox](https://www.docker.com/products/docker-toolbox) package that includes the latest version of the Docker Machine. | ||
|
||
## Installation | ||
|
||
### From a Release | ||
|
||
The latest version of the `docker-machine-driver-arubacloud` binary is available on the [GithHub Releases](https://github.com/Arubacloud/docker-machine-driver-arubacloud/releases) page. | ||
Download the `tar` archive and extract it into a directory residing in your PATH. Select the binary that corresponds to your OS and according to the file name prefix: | ||
|
||
* Linux: docker-machine-driver-arubacloud-linux | ||
* Windows: docker-machine-driver-arubacloud-windows | ||
|
||
To extract and install the binary, Linux and Mac users can use the Terminal and the following commands: | ||
|
||
```bash | ||
sudo tar -C /usr/local/bin -xvzf docker-machine-driver-arubacloud*.tar.gz | ||
``` | ||
|
||
If required, modify the permissions to make the plugin executable: | ||
|
||
```bash | ||
sudo chmod +x /usr/local/bin/docker-machine-driver-arubacloud | ||
``` | ||
|
||
Windows users may run the above commands without `sudo` in Docker Quickstart Terminal that is installed with [Docker Toolbox](https://www.docker.com/products/docker-toolbox). | ||
|
||
Otherwise Windows users can extract the zip manually and add the plugin folder to the PATH environment variable. | ||
|
||
### From Source | ||
|
||
Make sure you have installed [Go](http://www.golang.org) and configured [GOPATH](http://golang.org/doc/code.html#GOPATH) properly. | ||
|
||
To download the repository and build the driver run the following: | ||
|
||
```bash | ||
go get -d -u github.com/Arubacloud/docker-machine-driver-arubacloud | ||
cd $GOPATH/src/github.com/Arubacloud/docker-machine-driver-arubacloud | ||
make build | ||
``` | ||
|
||
To use the driver run: | ||
|
||
```bash | ||
make install | ||
``` | ||
|
||
This command will install the driver into `/usr/local/bin`. | ||
|
||
Otherwise, set your PATH environment variable correctly. For example: | ||
|
||
```bash | ||
export PATH=$GOPATH/src/github.com/Arubacloud/docker-machine-driver-arubacloud/bin:$PATH | ||
``` | ||
|
||
If you are running Windows, you may also need to install GNU Make, Bash shell and a few other Bash utilities available with [Cygwin](https://www.cygwin.com). | ||
|
||
## Usage | ||
|
||
You may want to refer to the Docker Machine [official documentation](https://docs.docker.com/machine/) before using the driver. | ||
|
||
Verify that Docker Machine can see the Aruba Cloud driver: | ||
|
||
```bash | ||
docker-machine create -d arubacloud --help | ||
``` | ||
|
||
|
||
### Available Options | ||
|
||
* `--ac_username`: Aruba Cloud username. | ||
* `--ac_password`: Aruba Cloud password. | ||
* `--ac_admin_password`: Virtual machine admin password. | ||
* `--ac_endpoint`: Aruba Cloud Data Center (dc1,dc2,dc3,etc.). | ||
* `--ac_template`: Virtual machine template. | ||
* `--ac_size`: Size of the virtual machine. | ||
* `--ac_action`: Type of action. | ||
* `--ac_ip`: Specify an IP already purchased on Aruba Cloud (Valid only if ac_action="NewPro"). | ||
|
||
|
||
| CLI Option |Default Value | Environment Variable | Required | | ||
| --------------------------------|--------------------| ------------------------------ | -------- | | ||
| `--ac_username` | | `AC_USERNAME` | yes | | ||
| `--ac_password` | | `AC_PASSWORD` | yes | | ||
| `--ac_admin_password` | | `AC_ADMIN_PASSWORD` | yes | | ||
| `--ac_endpoint` |`dc1` | `AC_ENDPOINT` | yes | | ||
| `--ac_template` |`ubuntu1604_x64_1_0` | `AC_TEMPLATE` | yes | | ||
| `--ac_size` |`Large` | `AC_SIZE` | yes | | ||
| `--ac_action` |`NewSmart` | `AC_ACTION` | yes | | ||
| `--ac_ip` | | `AC_IP` | no | | ||
|
||
Valid values for `--ac_size` are `Small`, `Medium`, `Large`, `Extra Large`. | ||
|
||
Valid values for `--ac_action` are `NewSmart`, `NewPro`, `Attach`. | ||
|
||
Available parameters for `--ac_endpoint` are shown in the next table. | ||
|
||
| Parameter | Data Center Location | | ||
|-----------|------------------------------------------------------| | ||
| `dc1` | Italy 1 | | ||
| `dc2` | Italy 2 | | ||
| `dc3` | Czech republic | | ||
| `dc4` | France | | ||
| `dc5` | Deutschland | | ||
| `dc6` | United Kingdom | | ||
|
||
Supported values for `--ac_template` are listed below. | ||
|
||
| Parameter | OS | | ||
|---------------------------------------|-------------------------------------------| | ||
| `centos7_x64_1_0` | `CentOS 7.x 64bit` | | ||
| `debian8_x64_1_0` | `Debian 8 64bit` | | ||
| `ubuntu1604_x64_1_0` | `Ubuntu Server 16.04 LTS 64bit` | | ||
| `BSD-001-freebsd_x64_1_0` | `FreeBSD 10.x 64bit` | | ||
| `LO12-002_OpenSuse_12_x64_1_0` | `openSuse 12.1 64bit` | | ||
|
||
|
||
### Examples | ||
|
||
#### Create using defaults: | ||
|
||
``` | ||
docker-machine create --driver arubacloud \ | ||
--ac_username "ARU-XXXX" \ | ||
--ac_password "xxxxxxx" \ | ||
--ac_admin_password "yyyyyyyy" \ | ||
MyDockerHostName | ||
``` | ||
|
||
#### Create a Smart machine specifying template, endpoint and size: | ||
|
||
``` | ||
docker-machine create --driver arubacloud \ | ||
--ac_username "ARU-XXXX" \ | ||
--ac_password "xxxxxxx" \ | ||
--ac_endpoint "dc1" \ | ||
--ac_template "ubuntu1404_x64_1_0" \ | ||
--ac_size "Large" \ | ||
--ac_admin_password "yyyyyyyy" \ | ||
--ac_action "NewSmart" \ | ||
MyDockerHostName | ||
``` | ||
#### Create a Pro machine specifying template, endpoint and size: | ||
|
||
If you don't specify an IP Address a new one will be automatically purchased. | ||
|
||
``` | ||
docker-machine create --driver arubacloud \ | ||
--ac_username "ARU-XXXX" \ | ||
--ac_password "xxxxxxx" \ | ||
--ac_endpoint "dc1" \ | ||
--ac_template "ubuntu1404_x64_1_0" \ | ||
--ac_size "Large" \ | ||
--ac_admin_password "yyyyyyyy" \ | ||
--ac_action "NewPro" \ | ||
MyDockerHostName | ||
``` | ||
|
||
#### Create a Pro machine specifying template, endpoint, size and IPAddress: | ||
|
||
|
||
``` | ||
docker-machine create --driver arubacloud \ | ||
--ac_username "ARU-XXXX" \ | ||
--ac_password "xxxxxxx" \ | ||
--ac_endpoint "dc1" \ | ||
--ac_template "ubuntu1404_x64_1_0" \ | ||
--ac_size "Large" \ | ||
--ac_admin_password "yyyyyyyy" \ | ||
--ac_action "NewPro" \ | ||
--ac_ip "xx.xx.xx.xx" \ | ||
MyDockerHostName | ||
``` | ||
#### Attach to an existing machine: | ||
|
||
Note: | ||
- In order to attach to an existing machine, this machine must have been created with an SSH key. | ||
- You must put private and public key in the same folder on the machine where docker-machine commands will be launched, and pass this folder as an argument (Eg. --ac_ssh_key="private_key_path"). | ||
- The name of the machine must be the same that is visible on [Aruba Cloud Dashboard](#view-instances) | ||
|
||
|
||
``` | ||
docker-machine create --driver arubacloud \ | ||
--ac_username "ARU-XXXX" \ | ||
--ac_password "xxxxxxx" \ | ||
--ac_endpoint "dc1" \ | ||
--ac_admin_password "yyyyyyyy" \ | ||
--ac_action "Attach" \ | ||
--ac_ip "xx.xx.xx.xx" \ | ||
--ac_ssh_key "private_key_path" \ | ||
MyDockerExistingHostName | ||
``` | ||
|
||
|
||
####View instances | ||
|
||
Go to Aruba Cloud dashboard to view machine instances. | ||
Dashboard url is different depending on the selected endpoint: | ||
|
||
|[DC1](https://admin.dc1.computing.cloud.it/Login.aspx) |[DC2](https://admin.dc2.computing.cloud.it/Login.aspx) |[DC3](https://admin.dc3.computing.cloud.it/Login.aspx) |[DC4](https://admin.dc4.computing.cloud.it/Login.aspx) |[DC5](https://admin.dc5.computing.cloud.it/Login.aspx) |[DC6](https://admin.dc6.computing.cloud.it/Login.aspx) | | ||
|-----------------------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------------| | ||
|
||
|
||
|
||
 | ||
|
||
####View instance list | ||
|
||
``` | ||
docker-machine ls | ||
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS | ||
MyDockerHostName * arubacloud Running tcp://10.254.4.232 v1.10.0 | ||
default - arubacloud Running tcp://10.254.4.231 v1.10.0 | ||
``` | ||
|
||
#### Get the IP address | ||
|
||
``` | ||
docker-machine ip MyDockerHostName | ||
10.254.4.232 | ||
``` | ||
|
||
#### Verify Docker Engine | ||
|
||
Verify Docker Engine is installed correctly by running docker commands. | ||
|
||
Start with something basic like docker run hello-world, or for a more interesting test, run a Dockerized webserver on your new remote machine. | ||
|
||
In this example, the -p option is used to expose port 80 from the nginx container and make it accessible on port 8000 of the host. | ||
|
||
``` | ||
$ docker run -d -p 8000:80 --name webserver kitematic/hello-world-nginx | ||
Unable to find image 'kitematic/hello-world-nginx:latest' locally | ||
latest: Pulling from kitematic/hello-world-nginx | ||
a285d7f063ea: Pull complete | ||
2d7baf27389b: Pull complete | ||
... | ||
Digest: sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066 | ||
Status: Downloaded newer image for kitematic/hello-world-nginx:latest | ||
942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65 | ||
``` | ||
|
||
In a web browser, go to http://<host_ip>:8000 to bring up the webserver home page. You got the <host_ip> from the output of the docker-machine ip <machine> command you ran in a previous step. Use the port you exposed in the docker run command. | ||
|
||
|
||
 | ||
|
||
|
||
#### Stop and remove an instance | ||
|
||
``` | ||
docker-machine stop MyDockerHostName | ||
docker-machine rm MyDockerHostName | ||
About to remove MyDockerHostName | ||
WARNING: This action will delete both local reference and remote instance. | ||
Are you sure? (y/n): y | ||
Successfully removed MyDockerHostName | ||
``` | ||
|
||
## License | ||
|
||
This code is released under the Apache 2.0 License. | ||
|
||
Copyright (c) 2017 Aruba Cloud |