LibraryToggle FramesPrintFeedback


fabric:container-create-cloud — creates one or more new containers on the cloud


fabric:container-create-cloud [--help] [--provider cloudProvider] [--identity cloudIdentity] [--credential loginCredential] [--hardware hardwareID] [--instanceType instanceType] [--image imageID] [--location location] [--user userAcc] [--owner owner] [--group group] [--proxy-uri URI] [--ensemble-server] [--profile profileID] [--version version] [--jvm-opts jvmOpts] [--resolver policy] [--option key=value] [--public-key-file file] [--os-family osFamily] [--os-version osVersion] {Name} [Number]


To access this command, the current container must belong to a Fabric and you must have installed the fabric-jclouds feature. To install the fabric-jclouds feature, enter the following console command:

features:install fabric-jclouds

The fabric:container-create-cloud command provisions the container as follows:

  1. Creates a new node on the cloud provider. The node is created using a JClouds compute service: either by lookup in the service registry (using the provider ID as a property) or by instantiating a new node, by specifying the identity and credential of the provider.

  2. Connects to the created node, using the authentication metadata returned upon the node creation (this is usually a username and private key, where the username can be overridden by the --user option). After it connects to the node, it executes a script, which downloads the fabric distribution from the Maven proxy and untars the distribution.

    By default, the script uses the oldest Maven proxy server in the current ensemble (every ensemble server has a Maven proxy server deployed in it). You can optionally override the default Maven proxy by specifying the --proxy-uri option. The script would then use the specified Maven proxy server to download the container runtime.


    The ability to override the Maven proxy is important in certain cases (for example, in a cloud deployment) where the remote host might not be able to access the default Maven proxy server.

  3. Starts up the newly installed container (or containers) and installs the specified fabric profile (or profiles).

  4. When creating multiple containers using this command (by adding the Number argument), multiple nodes will be created and a root container will be installed on each node.

By default, the newly created cloud containers belong to the current fabric (that is, the same fabric as the container from which you invoked the command). It is possible, however, to create a container on the cloud instance that acts as the seed for a completely new fabric, separate from the current one. To create a new fabric on the cloud instance, invoke the fabric:container-create-cloud command with the --ensemble-server flag, which makes the newly created container (or containers) an ensemble server, with its own fabric registry agent. The newly created ensemble server on the cloud does not join the current ensemble: it belongs to an independent ensemble (a new fabric).


Table 88 describes the command's arguments.

Table 88. fabric:container-create-cloud Arguments

--help Displays the online help for this command
--provider (Required) JClouds provider name.
--identity (Required) The cloud identity to use.
--credential (Required) Credential to log on to the cloud.
--hardware(Required) Kind of hardware to use.
--instanceType (Required) Type of instance required.
--location (Required) The location used to create the new node(s).
--image The image ID to use for the new node(s). Alternatively, the image can be specified indirectly using the --os-family and --os-version options. Defaults to an instance of the latest version of Ubuntu.
--user Specifies the user account to run on the new nodes. If the user account does not already exist on the new nodes, it will automatically be created. Defaults to the username that matches the current user.
--owner Optional owner of images; only really used for EC2, and will be deprecated in future.
--group Group tag to use on the new node(s).
--proxy-uri URL of the Maven proxy server used to download the container runtime.
--ensemble-serverWhether the new container should be a Fabric Server.
--profileA list of profile IDs to associate with the new container.
--versionSpecifies the version of the new container (the version must be created in advance using fabric:version-create). Defaults to the current default version (use version-list to find the current default).
--jvm-optsSpecify options to pass to the container's JVM.
--resolverSpecifies how the container will report its address to other containers. Valid values are localip, localhostname, publicip, publichostname, manualip. For more information see fabric:container-resolver-set.
--optionSpecifies generic JCloud properties or provider-specify properties. For example, when using Amazon with Amazon VPC to create a container inside a VPN, you can specify --option subnetId=yoursubnetId to define the VPC subnet where you want the node to be created. If you want to specify more than one option, specify this option multiple times.
--public-key-fileAn option to specify a public key file to copy to the created node. Copying a public key file to a node can be used for SSH access using public key authentication. If no key file is specified, Fabric attempts to auto-detect the user's public key and, if found, this key will be used by default.
--os-familySpecify the image by requesting a particular kind of operating system—for example, ubuntu or redhat. To see which O/S families are available, type Tab while entering this option. Defaults to ubuntu.
--os-versionSpecifies the version of the O/S family. The version number need not be exact (it will be rounded up to the latest available patch version). Defaults to the latest version available.
Name(Required) The name of the container to create. When creating multiple containers, it serves as a prefix.
NumberThe number of containers that should be created.

Comments powered by Disqus