USAGE for mkrep.sh v2.4.9:
mkrep.sh -i <SDP_Instance> -t <Type> -s <Site_Tag> -r <Replica_Host> [-f <From_ServerID>] [-p] [-ssh_opts="opts"] [-skip_ssh] [-L <log>] [-si] [-v<n>] [-n] [-D]
This script creates makes a replica, and provides enough information to
make it ready in all respects.
Specify the SDP Instance.
Specify the replica type tag. The type corresponds to the 'Type:' and
'Services:' field of the server spec, which describes the type of services
offered by a given replica.
Valid values are:
* ha: High Availability mandatory standby replica, for 'p4 failover' (P4D 2018.2+)
* ham: High Availability metadata-only mandatory standby replica, for 'p4 failover' (P4D 2018.2+)
* ro: Read-Only standby replica.
* rom: Read-Only standby replica, Metadata only.
* fr: Forwarding Replica (Unfiltered).
* fs: Forwarding Standby (Unfiltered).
* frm: Forwarding Replica (Unfiltered, Metadata only).
* fsm: Forwarding Standby (Unfiltered, Metadata only).
* ffr: Filtered Forwarding Replica. Not a valid failover target.
* edge: Edge Server. Filtered by definition.
Replicas with 'standby' are always unfiltered, and use the 'journalcopy'
method of replication, which copies a byte-for-byte verbatim journal file
rather than one that is merely logically equivalent.
The tag has several purposes:
1. Short Hand. Each tag represents a combination of 'Type:' and fully
qualified 'Services:' values used in server specs.
2. Distillation. Only the most useful Type/Services combinations have a
3. For forwarding replicas, the name includes the critical distinction of
whether any replication filtering is used; as filtering of any kind disqualifies
a replica from being a potential failover target. (No such distinction is
needed for edge servers, which are filtered by definition).
Specify a geographic site tag indicating the location and/or data center where
the replica will physically be located. Valid site tags are defined in the site
Current valid site tags defined in this file are:
tgrep: /p4/common/config/SiteTags.cfg: No such file or directory
Specify the target replica host.
Specify ServerID of the P4TARGET server from which we are replicating.
This is used to populate the 'ReplicatingFrom' field of the server
spec. The value must be a valid ServerID.
By default, this is determined dynamically checking the ServerID of the
master server. This option should be used if the target is something
other than the master. For example, to create an HA replica of an edge
server, you might specify something like '-f p4d_edge_syd'.
-p This script performs a check to ensure that the Protections table grants
super access to the group .
By default, an error is displayed if the check fails, i.e. if super user
access for the group cannot be verified. This is
because, by default, we want to avoid making changes to the Protections
table. Some sites have local policies or custom automation that requires
site-specific procedures to update the Protections table.
If '-p' is specified, an attempt is made to append the Protections table
an entry like:
super group * //...
Specify '-ssh_opts' to pass paraemters on to the ssh command. For
example, to specify ssh operation on non-standard port 2222, specify
Specify '-skip_ssh' to skip the SSH access preflight check.
This is useful if you only intend to do the metadata preparation phase
of creating a new replica, prior to SSH being setup or perhaps even
prior to the hardware being available.
-v<n> Set verbosity 1-5 (-v1 = quiet, -v5 = highest).
Specify the path to a log file, or the special value 'off' to disable
logging. By default, all output (stdout and stderr) goes in the logs
directory referenced by $LOGS.
NOTE: This script is self-logging. That is, output displayed on the screen
is simultaneously captured in the log file. Do not run this script with
redirection operators like '> log' or '2>&1', and do not use 'tee.'
-si Operate silently. All output (stdout and stderr) is redirected to the log
only; no output appears on the terminal. This cannot be used with
-n No-Op. Prints commands instead of running them.
-D Set extreme debugging verbosity.
-f Full Mode Setup: The completes an edge servers setup so no additional steps
are required. This setup requires an ssh connection from the master to the
edge to be in place first. It also requires the depot log journal and /p4
mounts to be in place and setup as expected. This setup assumes a standard
-h Display short help message
-man Display man-style help message
-V Dispay version info for this script and its libraries.
This script depends on ssh keys being defined to allow the Perforce
operating system user () to ssh to any necessary machines
without a password.
This script assumes the replica host already has the SDP fully
This Site Tags file defines the list of valid geographic site tags:
Prepare an edge server to run on host syc-helix-04:
mkrep.sh -i acme -t edge -s syd -r syc-helix-04