mkdef - Use this command to create xCAT data object definitions.


mkdef [-h|–help] [-t object-types]

mkdef [-V|–verbose] [-t object-types] [-o object-names] [-z|–stanza] [-d|–dynamic] [-f|–force] [[-w attr==val] [-w attr=~val] ...] [noderange] [attr=val [attr=val...]]

[-u provmethod=<install|netboot|statelite> profile=<xxx> [osvers=value] [osarch=value]]


This command is used to create xCAT object definitions which are stored in the xCAT database. If the definition already exists it will return an error message. The force option may be used to re-create a definition. In this case the old definition will be remove and the new definition will be created.


attr=val [attr=val ...]

Specifies one or more “attribute equals value” pairs, separated by spaces. Attr=val pairs must be specified last on the command line. Use the help option to get a list of valid attributes for each object type.

Note: when creating node object definitions, the ‘groups’ attribute is required.


Use the dynamic option to create dynamic node groups. This option must be used with -w option.


Use the force option to re-create object definitions. This option removes the old definition before creating the new one.


Display usage message.


A set of comma delimited node names and/or group names. (must be the first parameter) See the “noderange” man page for details on supported formats.

-o object-names

A set of comma delimited object names.

-t object-types

A set of comma delimited object types. Use the help option to get a list of valid object types.


Verbose mode.

-w attr==val -w attr=~val ...

Use one or multiple -w flags to specify the selection string that can be used to select objects. The operators ==, !=, =~ and !~ are available. For mkdef commmand, the -w flag only makes sense for creating dynamic node group. Use the help option to get a list of valid attributes for each object type.

Operator descriptions:
== Select nodes where the attribute value is exactly this value. != Select nodes where the attribute value is not this specific value. =~ Select nodes where the attribute value matches this regular expression. !~ Select nodes where the attribute value does not match this regular expression.

Note: if the “val” fields includes spaces or any other characters that will be parsed by shell, the “attr<operator>val” needs to be quoted. If the operator is ”!~”, the “attr<operator>val” needs to be quoted using single quote.


Indicates that the file being piped to the command is in stanza format. See the xcatstanzafile man page for details on using xCAT stanza files.


Fill in the attributes such as template file, pkglist file and otherpkglist file of osimage object based on the specified parameters. It will search “/install/custom/” directory first, and then “/opt/xcat/share/”. The provmethod and profile must be specified. If osvers or osarch is not specified, the corresponding value of the management node will be used.

Note: this option only works for objtype osimage.


0 The command completed successfully.

1 An error has occurred.


  1. To create a site definition.

    mkdef -t site -o clustersite  installdir=/xcatinstall
  2. To create a basic node definition.

    mkdef -t node -o node01 groups="all,aix"
  3. To re-create the current definition of “node01”.

    mkdef -f -t node -o node01  nodetype=osi groups="linux"

    (The group definitions are also created if they don’t already exist.)

  4. To create a set of different types of definitions based on information contained in a stanza file.

    cat defstanzafile | mkdef -z
  5. To create a group definition called LinuxNodes containing the nodes clstrn01 and clstrn02.

    mkdef -t group -o LinuxNodes members="clstrn01,clstrn02"
  6. To create a node definition for an FSP node using the attributes provided by the group fspnodes.

    mkdef -t node fspn1 groups=fspnodes nodetype=fsp
  7. To create node definitions for a set of node host names contained in the node range “node1,node2,node3”

    mkdef -t node node1,node2,node3 power=hmc groups="all,aix"
  8. To create a dynamic node group definition called HMCMgtNodes containing all the HMC managed nodes”

    mkdef -t group -o HMCMgtNodes -d -w mgt==hmc -w cons==hmc
  9. To create a dynamic node group definition called SLESNodes containing all the SLES nodes

    mkdef -t group -o SLESNodes -d -w "os=~^sles[0-9]+$"
  10. To create a entry (7.0) in the policy table for user admin1

    mkdef -t policy -o 7.0 name=admin1 rule=allow
  11. To create a node definition with nic attributes

    mkdef -t node cn1 groups=all nicips.eth0="|" nicnetworks.eth0="net1|net2" nictypes.eth0="Ethernet"
  12. To create an osimage definition and fill in attributes automatically.

    mkdef redhat6img -u profile=compute provmethod=statelite



(The XCATROOT environment variable is set when xCAT is installed. The default value is “/opt/xcat”.)


This command is part of the xCAT software product.


chdef(1)|chdef.1, lsdef(1)|lsdef.1, rmdef(1)|rmdef.1, xcatstanzafile(5)|xcatstanzafile.5