Configure Asset Logistics for Remote Servers

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

Configure Asset Logistics for Remote Servers

For the purposes of database replication (CouchDB only) and file distribution (FTP), Asset Logistics must know with which other nodes it can share database documents, and from where it can acquire missing asset files.

Configuration settings for servers for file distribution (FTP)

The --machine-address parameter (or machineAddress in ML-settings.xml) must be specified for each machine in the system. This is a mandatory setting, and if database replication is correctly set up (see below) this is sufficient for any machine to determine which assets are available across the system and how to download their files.

Note: ‘Machine’ refers to a device running the Logistics app. This may be an Actor, Conjurer or Juggler, or a standalone app running on a NAS, for example.

Adding tags to the asset vault to specify its role

The –assetVaultTags switch specifies a semi-colon separated list of tags to apply to the asset vault for file distribution roles, e.g.:

MediaLogisticsApp.exe -i c:\assetWatch -d c:\assetVault --assetVaultTags "local;section_1" --machine-name "actor-01" --machine-address "10.100.101.10" -s lastSettings.xml

or in ML-settings.xml:

<MediaLogisticsSettings

    watchFolder="c:\assetWatch"

    assetVault="c:\assetVault"

    assetVaultTags="local;section_1"

    machineName="actor-01"

    machineAddress="10.100.101.101"/>

The tags above specify that the vault will have local and section_1 tags. This indicates that the vault is local storage and should be used for assets which either have the tag local, or if the section is specified, local and section_1.

A NAS public vault would have the tag nas.

Configuration settings for servers for file streaming (SMB mapped-drive)

If a machine shares its files via SMB (e.g. a NAS), and there is sufficient bandwidth for Windows clients (Actors) to stream media directly from it for playback, this can be configured by adding the endpoints setting (JSON format) in ML-settings.xml. For instance:

<MediaLogisticsSettings

    watchFolder="/data/assetWatch"

    assetVault="/data/assetVault"

    machineName="netstore-01"

    machineAddress="nas"

    assetVaultTags="nas"

    endpoints='[ { "path": "N:/assetVault", "protocol": "mapped-drive" } ]'/>

For now, Actors only support the mapped-drive protocol, but it is envisaged that this could expand to http, smb, ftp (all using the machine address to access the host machine, and now listing ftp explicitly rather than implicitly).

Configuration settings for servers for database replication

Pushing changes to other nodes

The --db-nodes switch specifies a semi-colon separated list of remote hostnames or IP addresses for database replication for pushing changes to, e.g.:

MediaLogisticsApp.exe -i c:\assetWatch -d c:\assetVault --machine-name "controlPC-01" --machine-address "10.100.101.10" --db-nodes "192.168.0.217;ubuntu-desktop;192.168.0.249;laptop1" -s lastSettings.xml

or in ML-settings.xml:

<MediaLogisticsSettings

    watchFolder="c:\assetWatch"

    assetVault="c:\assetVault"

    machineName="controlPC-01"

    machineAddress="10.100.101.10"

    databaseNodeAddresses="192.168.0.217;ubuntu-desktop;192.168.0.249; laptop1"/>

Pulling changes from other nodes

The --db-nodes-from switch specifies a semi-colon separated list of remote hostnames or IP addresses for database replication from which to pull changes, e.g.:

MediaLogisticsApp.exe -i c:\assetWatch -d c:\assetVault --machine-name "controlPC-01" --machine-address "10.100.101.10" --db-nodes-from "192.168.0.217;ubuntu-desktop;192.168.0.249;laptop1" -s lastSettings.xml

or in ML-settings.xml:

<MediaLogisticsSettings

    watchFolder="c:\assetWatch"

    assetVault="c:\assetVault"

    machineName="controlPC-01"

    machineAddress="10.100.101.10"

    databaseNodeAddressesFrom="192.168.0.217;ubuntu-desktop;192.168.0.249; laptop1"/>

Explanation

As mentioned above, when Compere starts MediaLogistics, it only sets the ‘watch folder’ and ‘asset vault’. For MediaLogisticsApp instances that are started by Compere, ensure that:

machineName="name"

machineAddress="address"

databaseNodeAddresses="semi;colon;separated;hostnames;or;ip;addresses"

and/or

databaseNodeAddressesFrom="semi;colon;separated;hostnames;or;ip;addresses"

are present in the ML-settings.xml file.

Note that a "machine ID" is required for MediaLogisticsApp to use – Compere will automatically generate a machine-id.txt containing a UUID on first startup; MediaLogistics will read the same file to get the machineID – if this file is not present, MediaLogisticsApp will create it.

The remote nodes specified by those parameters must have:

CouchDB running on them for the purposes of database replication (changes occurring on this node are either pushed to the remote nodes, or remote nodes pull from this node, depending on configuration) and

FileZilla FTP server setup and correctly configured for the purposes of asset file distribution (any files missing on this node are pulled from the remote nodes).

Example

Typically, all nodes will replicate to all other nodes in a fully-connected topology, but other topologies are possible (e.g. star topology) if required, allowing the use of thin clients which do not have their own CouchDB instance or FTP server running on them.

For instance, to fully connect four nodes (IP address 192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4) for the purposes of database and file replication, and also connect a control PC (hostname laptop1) for the purposes of database replication, but not file replication could have the following MediaLogistics settings:

Control PC (laptop1)

<MediaLogisticsSettings

    watchFolder="<watch>"

    assetVault="<vault>"

    assetVaultTags=""

    machineName="Control PC laptop1"

    machineAddress="laptop1"

    databaseNodeAddresses="192.168.0.1"

    databaseNodeAddressesFrom="192.168.0.1"/>

Node 1 (192.168.0.1)

<MediaLogisticsSettings

    watchFolder="<watch>"

    assetVault="<vault>"

    assetVaultTags="local;section_1"

    machineName="actor-01"

    machineAddress="192.168.0.1"

    databaseNodeAddresses="192.168.0.2;192.168.0.3;192.168.0.4;nas"

    databaseNodeAddressesFrom="192.168.0.2;192.168.0.3;192.168.0.4;nas"/>

Node 2 (192.168.0.2)

<MediaLogisticsSettings

    watchFolder="<watch>"

    assetVault="<vault>"

    assetVaultTags="local;section_2"

    machineName="actor-02"

    machineAddress="192.168.0.2"

    databaseNodeAddresses="192.168.0.1;192.168.0.3;192.168.0.4;nas"

    databaseNodeAddressesFrom="192.168.0.1;192.168.0.3;192.168.0.4;nas"/>

Node 3 (192.168.0.3)

<MediaLogisticsSettings

    watchFolder="<watch>"

    assetVault="<vault>"

    assetVaultTags="local;section_3"

    machineName="actor-03"

    machineAddress="192.168.0.3"

    databaseNodeAddresses="192.168.0.1;192.168.0.2;192.168.0.4;nas"

    databaseNodeAddressesFrom="192.168.0.1;192.168.0.2;192.168.0.4;nas"/>

Node 4 (192.168.0.4)

<MediaLogisticsSettings

    watchFolder="<watch>"

    assetVault="<vault>"

    assetVaultTags="local;section_4"

    machineName="actor-04"

    machineAddress="192.168.0.4"

    databaseNodeAddresses="192.168.0.1;192.168.0.2;192.168.0.3;nas"

    databaseNodeAddressesFrom="192.168.0.1;192.168.0.2;192.168.0.3;nas"/>

NAS

<MediaLogisticsSettings

    watchFolder="/data/Watch"

    assetVault="/data/Vault"

    machineName="netstore-01"

    machineAddress="nas"

    assetVaultTags="nas"

    endpoints='[ { "path": "N:/Vault", "protocol": "mapped-drive" } ]'

    databaseNodeAddresses="192.168.0.1;192.168.0.2;192.168.0.3;192.168.0.4"

    databaseNodeAddressesFrom="192.168.0.1;192.168.0.2;192.168.0.3; 192.168.0.4"/>

Note that laptop1 in this example, is the only node with responsibility for pulling/pushing database changes to 192.168.0.1 (Node1); this is purely to simplify the configuration, it would be equally valid for laptop1 to be included in all of the databaseNodeAddresses for the other nodes.

Page edited [d/m/y]: 19/01/2024