9.10. fabric:container-create-cloud

Abstract

creates one or more new containers on the cloud

Synopsis

fabric:container-create-cloud [ --help ] [ --name contextName ] [ --provider cloudProvider ] [ --api cloudAPI ] [ --identity cloudIdentity ] [ --credential loginCredential ] [ --imageId imageID ] [ --os-family osFamily ] [ --os-version osVersion ] [ --hardwareId hardwareID ] [ --instanceType instanceType ] [ --locationId location ] [ --user userAcc ] [ --password userPass ] [ --public-key-file file ] [ --owner owner ] [ --group group ] [ --proxy-uri URI ] [ --ensemble-server ] [ --new-user jaasUser ] [ --new-user-password jaasUserPass ] [ --new-user-role jaasUserRole ] [ -b, --bind-address bindAddress ] [ --datastore-type storeType ] [ --datastore-option storeOption ] [ --zookeeper-password zooPass ] [ --resolver policy ] [ -m, --manual-ip IPAddr ] [ --env key=value ] [ --min-port minPort ] [ --max-port maxPort ] [ --profile profileID ] [ --version version ] [ --jvm-opts jvmOpts ] [ --add-option key=value ] [ --no-admin-access ] [ --path installPath ] { Name } [ Number ]

Description

To access this command, 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.
    Note
    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 compute instance that acts as the seed for a completely new fabric, separate from the current one. To create a new fabric on the compute 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).

Arguments

Table 9.10. fabric:container-create-cloud Arguments

ArgumentInterpretation
--help Displays the online help for this command
--name (Required) JClouds service context name.
--provider JClouds provider name.
--apiThe cloud API name.
--identity The identity used to access the cloud service.
--credential The credential used to access the cloud service.
--imageId 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.
--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.
--hardwareIdKind of hardware to use.
--instanceType Type of instance required.
--locationId The location used to create the new node(s).
--user Specifies the O/S 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.
--passwordSpecifies the password associated with the O/S user account defined by the --user option.
--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.
--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). Defaults to fabric.
--proxy-uri URL of the Maven proxy server used to download the container runtime.
--ensemble-serverWhether the new container should be a Fabric Server (effectively creates a new fabric).
--new-user
Used in combination with the --ensemble-server option to ensure that at least one user exists in the JAAS realm of the Zookeeper login module for the new fabric (otherwise it would be impossible to connect to the newly created Fabric Server).
When using this option, you must also specify a password using the --new-user-password option.
--new-user-password Used in combination with the --new-user option and the --ensemble-server option to specify the new user's password. No default value.
--new-user-role Used in combination with the --new-user option and the --ensemble-server to specify the new user's role. Default is admin.
-b, --bind-addressSpecifies the default bind address.
--datastore-typeSpecifies the datastore type.
--datastore-optionOptions to pass to the container's datastore. To specify multiple options, use this flag multiple times.
--zookeeper-password
Used in combination with the --ensemble-server option. Specifies the Zookeeper password, which is used to access the Zookeeper nodes under the /fabric/ path. Defaults to the password of the current session user.
If you subsequently try to join the current container to the newly-created Fabric Server (ensemble server) using the fabric:join command, you will be prompted to enter the Zookeeper password.
--resolverSpecifies how the container will report its address to other containers. Valid values are localip, localhostname, publicip, publichostname, manualip. For more information see Section 9.20, “fabric:container-resolver-set”.
-m, --manual-ipThe IP address to use, when using the manualip resolver. Used in combination with the --resolver option.
--envSets an environment variable. To specify multiple environment variables, use this flag multiple times.
--min-port Specifies the minimum port number of the allowed IP port range. Default is 0.
--max-port Specifies the maximum port number of the allowed IP port range. Default is 65535.
--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.
--add-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.
--no-admin-accessDisables admin access, as it might not be feasible on all images.
--path Path on the remote filesystem where the container is to be installed.
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.

Related topics

See the other Fabric cloud commands:
For more details about resolver policies, see: