ttGridRollout

The ttGridRollout utility, run from the installation_dir/tt22.1.1.18.0/bin directory of your TimesTen installation, creates a new grid with one database definition. The database is created and loaded, its distribution is configured, then it is opened.

The utility reads a configuration file that contains user-defined parameters and attributes for the grid you want to create. TimesTen provides a configuration template that you can copy and modify.

You can specify the shape of the grid, the hosts to use, the number of management instances (one or two), and the number of data instances, among other settings. By default, if you do not specify hosts, management instances, and data instances, then a single management instance and a number of data instances suitable for the specified shape are created on your local host.

The installation from which you run ttGridRollout is copied to the other hosts you specify so that additional data instances and a standby management instance can be created as desired. If you specify two management instances, the first must be on your local host.

The ttGridRollout utility is a wrapper for the ttGridAdmin utility (also using ttInstanceCreate for the first management instance), and actions performed by ttGridRollout can optionally be performed directly using ttGridAdmin. Once you have created a grid with ttGridRollout, use ttGridAdmin to maintain it and to make any changes.

The ttGridRollout utility is typically used for creating sample grids or grids that will be used during product design and evaluation.

Note:

Run this utility exactly as "ttGridRollout" (for example, not as "ttgridrollout").

Required Privilege

The user who runs this utility becomes the instance administrator of all instances created, and the user's primary user group becomes the TimesTen user group.

File system write permission is required wherever installations and instances will be created.

Usage in TimesTen Scaleout and TimesTen Classic

This utility is specifically for use with TimesTen Scaleout.

Syntax

ttGridRollout [-h | -help | -?]
ttGridRollout [-n | -dry-run] [-wait n] [-timeout n] conf_file

Options

ttGridRollout has the options:

Option Description

-h

-help

-?

Displays help information.

conf_file

Specifies the configuration file that contains the parameters for creating the grid and database.

A read-only template, ttgrid.conf.example, is located in the installation_dir/tt22.1.1.18.0/grid/conf directory. You can copy and modify this file to set up your configuration.

-n | -dry-run

Displays the commands to be run but does not run them. Other options you specify will be reflected in the display of commands to be run.

Note: It is advisable to do this before executing the command.

-wait n

Specifies how long ttGridRollout will wait for database state changes to complete before returning. By default, there is no limit to the wait.

(Database operations in TimesTen Scaleout, such as creating, loading, and opening, initiate a state change that is recorded in the active management instance of the grid. The state change is complete once the database operation has completed on each instance of the grid.)

-timeout n

Maximum number of seconds to wait for a long-running operation to complete. The default is 600.

Note:

the -wait option applies only to database operations. The -timeout option applies to any operation. These options are passed to ttGridAdmin.

Also see Command Timeouts and Waits.

Configuration File Parameters

The table that follows describes configuration parameters supported by the ttGridRollout configuration file (named ttgrid.conf by convention).

Note:

These parameters are required in your configuration file:

  • grid_name

  • dbdef_file

  • shape (optionally with data_hosts) or data_instances

  • instance_location

  • zoo_conf, unless all TimesTen instances and the membership server are on the local host

Parameter Description

cs_connect_files

Connectable files (.connect) for client/server connectables, as desired. You can specify multiple, comma-separated .connect files. For example:

cs_connect_files = client1.connect, client2.connect

For information about connectable files, see Create a Connectable (connectableCreate).

data_hosts

List of entries for hosts to be used for data instances, in JSON format.

Optionally use this with shape (and it cannot be used without shape).

Do not use both data_hosts and data_instances.

If you do not specify enough hosts for an NxK grid (see the description for shape), ttGridRollout loops back to the start of the specified host list and will place additional instances on as many hosts as necessary. If you specify too many hosts, only the first NxK hosts are used.

This parameter supports the attributes address, externalAddress, internalAddress, installation_location, and instance_location. See Configuration File Parameter Attributes, including information about default values.

Specifying address(es) is required—either address OR externalAddress and internalAddress.

Example:

data_hosts = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com", 
"installation_location":"/u01/tthost1/TimesTen" }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com", 
"installation_location":"/u01/tthost2/TimesTen" }, 
{ "internalAddress":"tthost3-priv", 
"externalAddress":"tthost3.example.com", 
"installation_location":"/u01/tthost3/TimesTen" }, 
{ "internalAddress":"tthost4-priv", 
"externalAddress":"tthost4.example.com", 
"installation_location":"/u01/tthost4/TimesTen" } 
]

Notes: See notes for shape.

data_instances

List of entries for data instances, in JSON format. This parameter allows you to specify data space groups, host and instance names, and daemon and client/server port numbers.

You cannot use data_instances together with shape or data_hosts. (Specify shape, with or without data_hosts, or specify data_instances.)

This parameter supports the attributes address, externalAddress, internalAddress, host, instance, dataSpaceGroup, daemonport, csport, installation_location, and instance_location. See Configuration File Parameter Attributes, including information about default values.

The shape of the grid is determined by your dataSpaceGroup settings. If you do not specify data space groups, the grid will be Nx1, with one data space group.

Specifying address(es) is required—either address OR externalAddress and internalAddress.

Example:

data_instances = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com", 
"dataspacegroup":1, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com", 
"dataspacegroup":1, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost3-priv", 
"externalAddress":"tthost3.example.com", 
"dataspacegroup":2, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost4-priv", 
"externalAddress":"tthost4.example.com", 
"dataspacegroup":2, "daemonport":50001, "csport":50002 } 
]

Notes:

  • A host object is created for each instance, except where two data instances are specified to be on the same system and in the same dataspace group, in which case they will share the same host object.

  • An installation object is created for each host object. Multiple installation objects can point to the same physical installation.

dbdef_file

Database definition file (.dbdef). This is required.

Directories are created on each host as necessary for the DataStore and LogDir locations.

For information about database definition files, see Create a Database Definition (dbdefCreate).

direct_connect_files

Connectable files (.connect) for additional direct connectables, as desired, beyond the connectable that is automatically created when the database is created. You can specify multiple, comma-separated .connect files. For example:

direct_connect_files = mydbcfg1.connect, mydbcfg2.connect

For information about connectable files, see Create a Connectable (connectableCreate).

grid_name

The desired name of the grid. This is required.

init_script

A SQL script (ttIsql script) for ttGridRollout to run on the database after rolling out the grid (using the first data instance that was created). For example, the script may include SQL statements to create database users and schemas.

installation_location

Path to the parent directory where you want to put the TimesTen installation on systems where the standby management instance (if applicable) and data instances are located. The tt22.1.1.18.0 directory is directly under this location. The directory is created on each host as necessary. If you specify an existing location, the directory must be empty.

The default is to use the same location as for the installation on the local host, from which ttGridRollout is run.

This location is used throughout the grid, except where you override it for a particular host or instance by setting the installation_location attribute of the data_hosts, data_instances, or mgmt_instances parameter.

instance_config

A file for custom configuration of data instances, consisting of name=value pairs for any settings you want to add to the instance configurations.

This is accomplished using the ttGridAdmin instanceConfigImport command. Also see Import Instance Configuration Attributes (instanceConfigImport).

instance_location

Path to the parent directory for TimesTen instances (data and management). This is required. For each instance, the timesten_home directory will be named instancename under this location. The directory is created on each host as necessary.

This location is used throughout the grid, except where you override it for a particular host or instance by setting the instance_location attribute of the data_hosts, data_instances, or mgmt_instances parameter.

mgmt_instances

List of entries for management instances, in JSON format. The first entry must be on the local host and will be the active management instance. The second entry (if applicable) must be on a different system and will be the standby management instance.

If you do not set mgmt_instances, ttGridRollout creates one management instance on the local host.

This parameter supports the attributes address, externalAddress, internalAddress, host, instance, daemonport, csport, mgmtport, installation_location, and instance_location. See Configuration File Parameter Attributes, including information about default values.

Specifying address(es) is required—either address OR externalAddress and internalAddress.

Example:

mgmt_instances = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com" }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com" } 
]

Notes:

  • A host object and an installation object are created for each instance.

shape

The desired shape of the grid, NxK, where:

  • N is the number of instances in each data space group.

  • K is the K-factor (replication factor) of the grid, which is by definition the number of data space groups (1, 2, 3, 4, or 5).

Either specify shape, with or without data_hosts, or specify data_instances. If you use shape without data_hosts, all TimesTen instances are placed on the local host.

When you specify shape for an NxK grid, NxK instances will be created (such as eight instances for a 4x2 grid). The first N instances will be in data space group 1, and for k=2 the next N data instances will be in data space group 2.

Notes:

  • A host object is created for each instance, except where two data instances will be on the same system and in the same dataspace group, in which case they will share the same host object.

  • If you specify host addresses as DNS names, default host object names are according to the addresses (such as mysys1 for an address mysys1.example.com, with _2 appended if there is a second host object on the same system, or mysys1_mgmt for the host of a management instance). If you specify addresses as IP addresses, default host object names are host_n sequentially.

  • An installation object is created for each host object. Multiple installation objects can point to the same physical installation.

  • As ttGridRollout creates instances, it names them instance1, instance2, instance3, and so on.

sqlnet_config

SQL*Net configuration file (used in communicating with an Oracle database through ttLoadFromOracle, OCI, Pro*C/C++, or ODP.NET).

Through the ttGridAdmin SQLNetImport command, ttGridRollout applies the specified SQL*Net configuration on all data instances. Also see Export a sqlnet file (SQLNetExport).

tnsnames_config

TNS names configuration file (used in communicating with an Oracle database through ttLoadFromOracle, OCI, Pro*C/C++, or ODP.NET).

Through the ttGridAdmin TNSNamesImport command, ttGridRollout applies the specified TNS names configuration on all data instances. Also see Import TNS Names (TNSNamesImport).

zoo_conf

Apache ZooKeeper membership service client configuration file. This parameter is required unless all management instances, data instances, and the ZooKeeper membership server will be on your local host.

For examples of ZooKeeper client configuration files, see Membership Operations. For details on how to configure ZooKeeper as a membership service, see Using Apache ZooKeeper as the Membership Service in the Oracle TimesTen In-Memory Database Scaleout User's Guide.

If you do not specify this parameter, ttGridRollout assumes that a ZooKeeper server already runs on the local host using the default client port setting, 2181.

Configuration File Parameter Attributes

The ttGridRollout configuration parameters support these attributes. Refer to the preceding table of parameters to see which attributes are supported by each parameter.

Attribute Description

address

DNS name or IP address of the system for both external and internal communications, if a single address is used. Either use address or use internalAddress and externalAddress. Setting -address xxx is exactly equivalent to setting -internalAddress xxx and -externalAddress xxx.

This option takes one name or address only, and a specified name must resolve to one IP address or to multiple IP addresses on the same network segment.

If host names from /etc/hosts are being used, the /etc/hosts files on all instances in the grid must contain identical entries for all hosts in the grid.

Note: Using a single address is not recommended for production environments.

Also see Address Formats.

csport

Port for client/server connections.

If this is not specified for a data instance, ttGridRollout uses an available port between 46337 and 46997.

If this is not specified for a management instance, ttGridRollout attempts to use the TimesTen default client/server port, 6625.

daemonport

Port for TimesTen daemon communications.

If this is not specified for a data instance, ttGridRollout uses an available port between 46337 and 46997.

If this is not specified for a management instance, ttGridRollout attempts to use the TimesTen default daemon port, 6624.

dataSpaceGroup

Desired data space group (1, 2, 3, 4, or 5). The default is data space group 1.

If you use the data_instances parameter, you can use this attribute to specify the data space group for the instance.

externalAddress

DNS name or IP address of the system for external communications (outside the grid) for client/server connections. Either use address or use internalAddress and externalAddress. Setting -internalAddress xxx and -externalAddress xxx is exactly equivalent to setting -address xxx.

This option takes one name or address only, but a name may resolve to one or more IP addresses.

If host names from /etc/hosts are being used, the /etc/hosts files on all instances in the grid must contain identical entries for all hosts in the grid.

Also see Address Formats.

host

Desired name of the host object in the grid model.

Note: If you specify host addresses as DNS names, default host object names are according to the addresses (such as mysys1 for an address mysys1.example.com, with _2 appended if there is a second host object on the same system, or mysys1_mgmt for the host of a management instance). If you specify addresses as IP addresses, default host object names are host_n sequentially.

installation_location

Overrides the grid-wide installation_location setting for a host or instance. See installation_location under Configuration File Parameters for additional information.

instance

If you use the data_instances or mgmt_instances parameter (as appropriate), you can use this attribute to specify the instance name.

Alternatively, for data instances, ttGridRollout names the instances instance1, instance2, instance3, and so on.

Alternatively, for management instances, ttGridRollout names the instances gridname_mgmt and gridname_mgmt2 (if there is a second management instance).

instance_location

Overrides the grid-wide instance_location setting for a host or instance. See instance_location under Configuration File Parameters for additional information.

internalAddress

DNS name or IP address for internal communications (within the grid). Either use address or use internalAddress and externalAddress. Setting -internalAddress xxx and -externalAddress xxx is exactly equivalent to setting -address xxx.

This option takes one name or address only, and a specified name must resolve to one IP address or to multiple IP addresses on the same network segment.

If host names from /etc/hosts are being used, the /etc/hosts files on all instances in the grid must contain identical entries for all hosts in the grid.

Also see Address Formats.

mgmtport

Port for management instance communications.

If this is not specified, ttGridRollout attempts to use the TimesTen default management port, 3754.

server_encryption

Determines if databases require encryption for client/server connections. Specify one of these settings:

  • accepted: Enable an encrypted session if required or requested by the client; use an unencrypted session otherwise. This is the default.

  • rejected: Demand an unencrypted session. (If the server does not support encryption, TimesTen behaves as if this is the setting on the server.) The connection is rejected if the client requires encryption.

  • requested: Request an encrypted session if the client allows it (if the client has any setting other than rejected); use an unencrypted session otherwise.

  • required: Demand an encrypted session. Reject the connection if the client rejects encryption.

server_cipher_suites

Lists the cipher suite or suites that databases can use for TLS, depending also on the client setting. Specify one or both (separated by comma and in order of preference) of these suites:

  • SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

There is no default setting. For TLS to be used, the server and client settings must include at least one common suite.

Examples

This sections provides three ttGridRollout examples with various types of configuration:

  • shape parameter without data_hosts to configure a 2x2 grid with one management instance, all on the local host

  • shape parameter with data_hosts to configure a 2x2 grid with one management instance on four systems, with the management instance and a data instance on the local host

  • data_instances parameter to configure a 3x2 grid with two management instances on eight systems, with the first management instance on the local host

Each example includes the configuration, the dry run output showing the ttGridAdmin commands to be run, and portions of the execution output. In each example, mysys1 is the local host. Dry run output is edited for readability. (The ttInstanceCreate utility, to create the first management instance, is run through the full path to the installation bin directory; ttGridAdmin is run through the full path to the TimesTen ttenv environment setup script in the first management instance bin directory.)

Additional examples are in Deploy a Grid and Database in Oracle TimesTen In-Memory Database Scaleout User's Guide.

shape without data_hosts: This scenario is convenient for standalone development.

Configuration:

dbdef_file = /sw/tten/dbdef/database1.dbdef
shape = 2x2
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances

Dry run:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1_mgmt -address mysys1
 -membershipConfig /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys1 -address mysys1 -dataspacegroup 1
ttGridAdmin installationCreate mysys1 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys1_2 -address mysys1 -dataspacegroup 2
ttGridAdmin installationCreate mysys1_2 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys1.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 46337 -csport 46338
ttGridAdmin instanceCreate mysys1.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 46339 -csport 46340
ttGridAdmin instanceCreate mysys1_2.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 46341 -csport 46342
ttGridAdmin instanceCreate mysys1_2.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 46343 -csport 46344
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

Execution:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Generating data_instances for 2x2 Grid
data_instances = [
 { "address":"mysys1", "dataspacegroup":1 },
 { "address":"mysys1", "dataspacegroup":1 },
 { "address":"mysys1", "dataspacegroup":2 },
 { "address":"mysys1", "dataspacegroup":2 }
]
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1 -- OK
 
================================================================================
 
...
 
================================================================================
4-instance (2x2) grid successfully created.
 
Management Instance Location
----------------------------
- mysys1:/sw/tten/grid1/ttinstances/grid1_mgmt
 
...
 
Data Instance Locations
-----------------------
- mysys1.instance1 ==> mysys1:/sw/tten/grid1/ttinstances/instance1
- mysys1.instance2 ==> mysys1:/sw/tten/grid1/ttinstances/instance2
- mysys1_2.instance3 ==> mysys1:/sw/tten/grid1/ttinstances/instance3
- mysys1_2.instance4 ==> mysys1:/sw/tten/grid1/ttinstances/instance4
 
...

shape with data_hosts: This scenario is useful for initial testing on multiple systems.

Configuration:

dbdef_file = /sw/tten/dbdef/database1.dbdef
shape = 2x2
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances
data_hosts = [
  { "internalAddress":"mysys1-i", "externalAddress":"mysys1.example.com" },
  { "internalAddress":"mysys2-i", "externalAddress":"mysys2.example.com" },
  { "internalAddress":"mysys3-i", "externalAddress":"mysys3.example.com" },
  { "internalAddress":"mysys4-i", "externalAddress":"mysys4.example.com" }
]

Dry run:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1_mgmt -address mysys1
 -membershipConfig /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys1 -externaladdress mysys1.example.com
 -internaladdress mysys1-i -dataspacegroup 1
ttGridAdmin installationCreate mysys1 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys2 -externaladdress mysys2.example.com
 -internaladdress mysys2-i -dataspacegroup 1
ttGridAdmin installationCreate mysys2 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys3 -externaladdress mysys3.example.com
 -internaladdress mysys3-i -dataspacegroup 2
ttGridAdmin installationCreate mysys3 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys4 -externaladdress mysys4.example.com
 -internaladdress mysys4-i -dataspacegroup 2
ttGridAdmin installationCreate mysys4 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys1.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 46337 -csport 46338
ttGridAdmin instanceCreate mysys2.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 46339 -csport 46340
ttGridAdmin instanceCreate mysys3.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 46341 -csport 46342
ttGridAdmin instanceCreate mysys4.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 46343 -csport 46344
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

Execution:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Generating data_instances for 2x2 Grid
data_instances = [
 { "externaladdress":"mysys1.example.com", "internaladdress":"mysys1-i",
 "dataspacegroup":1 },
 { "externaladdress":"mysys2.example.com", "internaladdress":"mysys2-i",
 "dataspacegroup":1 },
 { "externaladdress":"mysys3.example.com", "internaladdress":"mysys3-i",
 "dataspacegroup":2 },
 { "externaladdress":"mysys4.example.com", "internaladdress":"mysys4-i",
 "dataspacegroup":2 }

]
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1 -- OK
INFO: Checking connectivity to mysys1-i -- OK
INFO: Checking connectivity to mysys2-i -- OK
INFO: Checking connectivity to mysys3-i -- OK
INFO: Checking connectivity to mysys4-i -- OK
 
================================================================================
 
...
 
================================================================================
4-instance (2x2) grid successfully created.
 
Management Instance Location
----------------------------
- mysys1:/sw/tten/grid1/ttinstances/grid1_mgmt
 
...
 
Data Instance Locations
-----------------------
- mysys1.instance1 ==> mysys1-i:/sw/tten/grid1/ttinstances/instance1
- mysys2.instance2 ==> mysys2-i:/sw/tten/grid1/ttinstances/instance2
- mysys3.instance3 ==> mysys3-i:/sw/tten/grid1/ttinstances/instance3
- mysys4.instance4 ==> mysys4-i:/sw/tten/grid1/ttinstances/instance4
 
...

data_instances: This scenario is useful for more realistic proof-of-concept testing.

Configuration:

dbdef_file = /sw/tten/dbdef/database1.dbdef
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances
data_instances = [
  { "internalAddress":"mysys3-i", "externalAddress":"mysys3.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys4-i", "externalAddress":"mysys4.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys5-i", "externalAddress":"mysys5.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys6-i", "externalAddress":"mysys6.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys7-i", "externalAddress":"mysys7.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys8-i", "externalAddress":"mysys8.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 }
]
mgmt_instances = [
  { "internalAddress":"mysys1-i", "externalAddress":"mysys1.example.com" },
  { "internalAddress":"mysys2-i", "externalAddress":"mysys2.example.com" }
]

Dry run:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1-i_mgmt -internalAddress mysys1-i
 -externalAddress mysys1.example.com -membershipConfig
 /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys2-i_mgmt -internalAddress mysys2-i -externalAddress
 mysys2.example.com
ttGridAdmin installationCreate mysys2-i_mgmt -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys2-i_mgmt.grid1_mgmt2 -location
 /sw/tten/grid1/ttinstances -type management
ttGridAdmin hostCreate mysys3 -externaladdress mysys3.example.com
 -internaladdress mysys3-i -dataspacegroup 1
ttGridAdmin installationCreate mysys3 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys4 -externaladdress mysys4.example.com
 -internaladdress mysys4-i -dataspacegroup 1
ttGridAdmin installationCreate mysys4 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys5 -externaladdress mysys5.example.com
 -internaladdress mysys5-i -dataspacegroup 1
ttGridAdmin installationCreate mysys5 -location /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys6 -externaladdress mysys6.example.com -internaladdress
 mysys6-i -dataspacegroup 2
ttGridAdmin installationCreate mysys6 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys7 -externaladdress mysys7.example.com
 -internaladdress mysys7-i -dataspacegroup 2
ttGridAdmin installationCreate mysys7 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys8 -externaladdress mysys8.example.com
 -internaladdress mysys8-i -dataspacegroup 2
ttGridAdmin installationCreate mysys8 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys3.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys4.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys5.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys6.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys7.instance5 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys8.instance6 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

Execution:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1-i -- OK
INFO: Checking connectivity to mysys2-i -- OK
INFO: Checking connectivity to mysys3-i -- OK
INFO: Checking connectivity to mysys4-i -- OK
INFO: Checking connectivity to mysys5-i -- OK
INFO: Checking connectivity to mysys6-i -- OK
INFO: Checking connectivity to mysys7-i -- OK
INFO: Checking connectivity to mysys8-i -- OK
 
================================================================================
 
...
 
================================================================================
6-instance (3x2) grid successfully created.
 
Management Instance Locations
-----------------------------
- mysys1-i:/sw/tten/grid1/ttinstances/grid1_mgmt
- mysys2-i:/sw/tten/grid1/ttinstances/grid1_mgmt2
 
...
 
Data Instance Locations
-----------------------
- mysys3.instance1 ==> mysys3-i:/sw/tten/grid1/ttinstances/instance1
- mysys4.instance2 ==> mysys4-i:/sw/tten/grid1/ttinstances/instance2
- mysys5.instance3 ==> mysys5-i:/sw/tten/grid1/ttinstances/instance3
- mysys6.instance4 ==> mysys6-i:/sw/tten/grid1/ttinstances/instance4
- mysys7.instance5 ==> mysys7-i:/sw/tten/grid1/ttinstances/instance5
- mysys8.instance6 ==> mysys8-i:/sw/tten/grid1/ttinstances/instance6
 
...