oneandone

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2016 License: Apache-2.0 Imports: 12 Imported by: 0

README

1&1 Cloud Driver for Docker Machine

Table of Contents

Overview

The 1&1 Cloud Driver is a plugin for Docker Machine which allows you to automate the provisioning of Docker hosts on 1&1 Cloud Servers. The plugin is based on the 1&1 CloudServer Go SDK and Cloud API.

To acquire 1&1 Cloud API credentials visit https://www.1and1.com.

Requirements

Windows and Mac OS X users may install Docker Toolbox package that includes the latest version of the Docker Machine.

Installation

From a Release

The latest version of the docker-machine-driver-oneandone binary is available on the GithHub 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-oneandone-linux
  • Mac OS X: docker-machine-driver-oneandone-darwin
  • Windows: docker-machine-driver-oneandone-windows

To extract and install the binary, Linux and Mac users can use the Terminal and the following commands:

sudo tar -C /usr/local/bin -xvzf docker-machine-driver-oneandone*.tar.gz

If required, modify the permissions to make the plugin executable:

sudo chmod +x /usr/local/bin/docker-machine-driver-oneandone

Windows users may run the above commands without sudo in Docker Quickstart Terminal that is installed with Docker Toolbox.

From Source

Make sure you have installed Go and configured GOPATH properly.

To download the repository and build the driver run the following:

go get -d -u github.com/1and1/docker-machine-driver-oneandone
cd $GOPATH/src/github.com/1and1/docker-machine-driver-oneandone
make build

To use the driver run:

make install

This command will install the driver into /usr/local/bin.

Otherwise, set your PATH environment variable correctly. For example:

export PATH=$GOPATH/src/github.com/1and1/docker-machine-driver-oneandone/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.

Usage

You may want to refer to the Docker Machine official documentation before using the driver.

Verify that Docker Machine can see the 1&1 driver:

docker-machine create -d oneandone --help

To create a Docker host, provide your API access token and a firewall policy ID. Make sure that the policy has opened the ports required by Docker.

If you do not supply a firewall policy ID, the driver will create a new firewall policy with a prefix of Docker-Driver-Required-Policy_. The policy will open the following TCP ports:

  • 22
  • 80
  • 2375-2376
  • 3375-3376

You may further customize the policy according to your needs and Docker's requirements. Before creating a new policy, the plugin will search for an existing policy with the Docker-Driver-Required-Policy_ prefix and the required ports.

docker-machine create -d oneandone \
--oneandone-api-key [API-TOKEN-KEY] \
--oneandone-firewall-id [FIREWALL-POLICY-ID] \
MyHostName
Available Options
  • --oneandone-api-key: 1&1 Cloud API key.
  • --oneandone-datacenter: 1&1 data center location.
  • --oneandone-firewall-id: 1&1 firewall policy ID.
  • --oneandone-size: 1&1 Cloud Server size.
  • --oneandone-ip-address: Unassigned 1&1 public IP address.
  • --oneandone-loadbalancer-id: 1&1 load balancer ID.
  • --oneandone-monitor-policy-id: 1&1 monitoring policy ID.
  • --oneandone-os: 1&1 server appliance OS.
  • --oneandone-server-description: 1&1 Cloud Server description.
  • --oneandone-ssh-pass: SSH password.
CLI Option Default Value Environment Variable Required
--oneandone-api-key ONEANDONE_API_KEY yes
--oneandone-datacenter US ONEANDONE_DATACENTER yes
--oneandone-firewall-id ONEANDONE_FIREWALL no
--oneandone-size M ONEANDONE_SIZE yes
--oneandone-ip-address ONEANDONE_IP_ADDRESS no
--oneandone-loadbalancer-id ONEANDONE_LOADBALANCER no
--oneandone-monitor-policy-id ONEANDONE_MONITOR_POLICY no
--oneandone-os ubuntu1404-64std ONEANDONE_OS yes
--oneandone-server-description ONEANDONE_SERVER_DESCRIPTION no
--oneandone-ssh-pass ONEANDONE_SSH_PASSWORD no

Valid values for --oneandone-size are M, L, XL, XXL, 3XL, 4XL and 5XL.

Available parameters for --oneandone-datacenter are shown in the next table.

Parameter Data Center Location
DE Germany
ES Spain
GB United Kingdom of Great Britain and Northern Ireland
US United States of America

Supported values for --oneandone-os are listed below.

Parameter
centos7-64min
centos7-64std
centos7-64std+cpanel
centos7-64std+plesk12unlimited
centos7-64std+plesk12.5unlimited
debian8-64min
debian8-64std
debian8-64std+plesk12.5unlimited
ubuntu1204-64min
ubuntu1204-64std
ubuntu1204-64std+plesk12unlimited
ubuntu1204-64std+plesk12.5unlimited
ubuntu1404-64min
ubuntu1404-64std
ubuntu1404-64std+plesk12unlimited
ubuntu1604-64min
ubuntu1604-64std
Example
docker-machine --debug create --driver oneandone \
 --oneandone-api-key              b92bd5bb3dc909cfd48b6370d3bf560c \
 --oneandone-datacenter           GB \
 --oneandone-firewall-id          D8D6964A24D9A709941064AFD5FA83BC \
 --oneandone-size                 XXL \
 --oneandone-ip-address           109.228.51.239 \
 --oneandone-loadbalancer-id      F78677C1364BE21973E530FB7E7D805E \
 --oneandone-monitor-policy-id    6027B730256C9585B269DAA8B1788DEC \
 --oneandone-os                   centos7-64std \
 --oneandone-server-description   My-Docker-host-description \
 --oneandone-ssh-pass             MyPassSecret.170 \   
MyDockerHostName

Note: When creating a new machine, if you provide an IP address and a load balancer ID make sure that they belong to the same data center as the machine being created. Also, all OS appliances may not be available in all data centers.

License

This code is released under the Apache 2.0 License.

Copyright (c) 2016 1&1 Internet SE

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Driver

type Driver struct {
	drivers.BaseDriver
	APIKey           string
	MachineID        string
	Description      string
	Appliance        string
	Datacenter       string
	Size             string
	SSHKey           string
	FirewallPolicy   string
	LoadBalancer     string
	MonitoringPolicy string
	// contains filtered or unexported fields
}

func (*Driver) Create

func (d *Driver) Create() error

func (*Driver) DriverName

func (d *Driver) DriverName() string

DriverName returns the name of the driver

func (*Driver) GetCreateFlags

func (d *Driver) GetCreateFlags() []mcnflag.Flag

GetCreateFlags registers the flags this driver adds to "docker hosts create"

func (*Driver) GetSSHHostname

func (d *Driver) GetSSHHostname() (string, error)

func (*Driver) GetState

func (d *Driver) GetState() (state.State, error)

func (*Driver) GetURL

func (d *Driver) GetURL() (string, error)

func (*Driver) Kill

func (d *Driver) Kill() error

func (*Driver) PreCreateCheck

func (d *Driver) PreCreateCheck() error

func (*Driver) Remove

func (d *Driver) Remove() error

func (*Driver) Restart

func (d *Driver) Restart() error

func (*Driver) SetConfigFromFlags

func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error

func (*Driver) Start

func (d *Driver) Start() error

func (*Driver) Stop

func (d *Driver) Stop() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL