This reference covers version: latest.

Configuration manager is a small application used to automatically configure Aerokube products.

1. Configuring Selenoid

This section describes supported ways of automatic Selenoid configuration.

To quickly configure and run Selenoid type:

$ ./cm selenoid start

Selenoid can be configured in two ways:

  • Using Docker containers.

  • Using standalone binaries - when Docker is not installed.

Which mode to use is detected automatically by trying to access Docker API. To view the list of available commands:

$ ./cm selenoid --help

To launch command:

$ ./cm selenoid <command> [args...]

Supported commands are:

Table 1. Commands to configure and run Selenoid
Command Meaning

cleanup

Removes Selenoid traces

configure

Creates Selenoid configuration file (implies download)

download

Downloads Selenoid binary or container image

start

Starts Selenoid process or container (implies download and configure)

status

Shows actual configuration status (whether Selenoid is downloaded, configured or running)

stop

Stops Selenoid process or container

update

Updates Selenoid and configuration to latest version

To see supported flags for each command append --help:

$ ./cm selenoid start --help

1.1. Example Commands

  • download command downloads latest or specified Selenoid release as standalone binary or container image:

    $ ./cm selenoid download [--version 1.2.1] [--force]

    Does nothing when already downloaded. Use --force flag to download again.

  • configure command in addition to downloading Selenoid also downloads container images or webdriver binaries and generates configuration file:

    $ ./cm selenoid configure [--browsers firefox,opera] [--last-versions 2] [--tmpfs 128]

    Use --browsers to limit browsers to be configured, --tmpfs - to add Tmpfs support, --last-versions - to limit how many last browser versions to download. If you wish to download all available versions - specify --last-versions 0.

  • start command configures Selenoid and starts it:

    $ ./cm selenoid start

    By default Selenoid data is stored in ~/.aerokube/selenoid but you can specify another directory using --config-dir flag. To download images with VNC server (to see live browser screen) use --vnc flag:

    $ ./cm selenoid start --vnc

    To override Selenoid listen port add --port flag:

    $ ./cm selenoid start --port 4445

    To override Selenoid startup arguments sessions add --args flag:

    $ ./cm selenoid start --args "-limit 10"

    To download images from private registry - log in with docker login command and add --registry flag:

    $ docker login my-registry.example.com # Specify user name and password
    $ ./cm selenoid start --registry https://my-registry.example.com

    An alternative to downloading cm manually is using Docker container:

    # docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v ${HOME}:/root -e OVERRIDE_HOME=${HOME} aerokube/cm:latest-release selenoid start

2. Starting Selenoid UI

This section describes supported ways of automatic Selenoid UI startup.

To quickly run Selenoid UI type:

$ ./cm selenoid-ui start

Selenoid UI configuration algorithm is similar to Selenoid one - it is started either in Docker container if you have Docker installed or as a standalone binary otherwise. Supported commands are:

Table 2. Commands to run Selenoid UI
Command Meaning

cleanup

Removes Selenoid UI traces

download

Downloads Selenoid UI binary or container image

start

Starts Selenoid UI process or container (implies download)

status

Shows actual service status (whether Selenoid is downloaded or running)

stop

Stops Selenoid UI process or container

update

Updates Selenoid to latest version

To see supported flags for each command append --help:

$ ./cm selenoid start --help

2.1. Example Commands

These commands just repeat similar commands for Selenoid so we give no comments here:

$ ./cm selenoid-ui download [--version 1.2.1] [--force]
$ ./cm selenoid-ui start
$ ./cm selenoid-ui start --port 8081
$ ./cm selenoid-ui start --args "--period 100ms"
# docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v ${HOME}:/root aerokube/cm:latest-release selenoid-ui start

3. Contributing & Development

To build cm:

  1. Install Golang

  2. Setup $GOPATH properly

  3. Get cm source:

    $ go get -d github.com/aerokube/cm
  4. Go to project directory:

    $ cd $GOPATH/src/github.com/aerokube/cm
  5. Checkout dependencies:

    $ go get -u github.com/golang/dep/cmd/dep && dep ensure
  6. Build source:

    $ go build
  7. Run cm:

    $ ./cm --help

To build Docker container type:

$ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build
$ docker build -t cm:latest .