1.7. Provision Containers
Provisioning containers
All of the prerequisites are now in place for provisioning Red Hat JBoss Fuse containers in the cloud. After joining your local container to the fabric (which enables you to administer the fabric remotely), you can provision a new container in the cloud by entering a single console command.
Join the local container to the fabric
To enable administration of the new fabric, first join your local container to the fabric. This makes it possible to administer the fabric by entering console commands in your local container. Invoke the
join
command as follows:
JBossFuse:karaf@root> fabric:join -n --zookeeper-password admin 50.19.18.91
Where
50.19.18.91
is the public IP address of the registry container in the cloud (alternatively, you could use the public hostname here). The remote Fabric Server's Zookeeper password must be provided, in order to join the current container to the fabric.
Important
Don't forget to include the
-n
option, which ensures that the local container remains a non-managed container (if you forget the -n
option, the local container will be re-provisioned automatically and you will lose access to the JClouds and Fabric console commands).
To check that the join has been successful, try listing the containers in the fabric, as follows:
JBossFuse:karaf@root> fabric:container-list [id] [version] [alive] [profiles] [provision status] registry 1.0 true fabric, fabric-ensemble-0000-1 success root* 1.0 true fabric
Create container and deploy profile in one step
If you already know what profiles you want to deploy in the new containers, the most efficient approach is to create the compute instances and specify the profiles all in the same command.
For example, to create two new compute instances as part of the current fabric and to deploy the profiles
mq
and fabric
into each new container, enter the following console command:
JBossFuse:karaf@root> fabric:container-create-cloud --name aws-ec2 --hardwareId t1.micro --os-family rhel --os-version 6.0 --profile mq --profile fabric mqserver 2
Note how you can deploy multiple profiles, by specifying the
--provider
option multiple times. This command produces output like the following:
Looking up for compute service. Creating 2 nodes in the cloud. Using operating system: rhel. It may take a while ... Node fabric-3ea09446 has been created. Node fabric-3ca09444 has been created. Configuring firewall. Configuring firewall. Installing fabric agent on container mqserver1. It may take a while... Installing fabric agent on container mqserver2. It may take a while... Overriding resolver to publichostname. Overriding resolver to publichostname. [id] [container] [public addresses] [status] us-east-1/i-3ca09444 mqserver2 [50.19.15.210] success us-east-1/i-3ea09446 mqserver1 [184.72.214.117] success
Create container and deploy profile in two steps
You can create containers and deploy profiles in separate steps, as follows:
- Create two new Fabric Containers,
mqserver1
andmqserver2
, as follows:JBossFuse:karaf@root> fabric:container-create-cloud --name aws-ec2 --hardwareId t1.micro --os-family rhel --os-version 6.0 mqserver 2
- Deploy the profiles
mq
andfabric
into each of the new Fabric Containers, as follows:JBossFuse:karaf@root> fabric:container-change-profile mqserver1 mq fabric JBossFuse:karaf@root> fabric:container-change-profile mqserver2 mq fabric
Check the provision status
After creating and deploying, you can test the provision status of the new containers using the
fabric:container-list
command, as follows:
JBossFuse:karaf@root> fabric:container-list [id] [version] [alive] [profiles] [provision status] mqserver1 1.0 true fabric, mq success mqserver2 1.0 true fabric, mq success registry 1.0 true fabric, fabric-ensemble-0000-1 success root* 1.0 true fabric