salt.modules.pcs module

Configure a Pacemaker/Corosync cluster with PCS

Configure Pacemaker/Cororsync clusters with the Pacemaker/Cororsync conifguration system (PCS)

depends:pcs

New in version 2016.3.0.

salt.modules.pcs.auth(nodes, pcsuser=u'hacluster', pcspasswd=u'hacluster', extra_args=None)

Authorize nodes to the cluster

nodes
a list of nodes which should be authorized to the cluster
pcsuser
user for communitcation with PCS (default: hacluster)
pcspasswd
password for pcsuser (default: hacluster)
extra_args
list of extra option for the 'pcs cluster auth' command

CLI Example:

salt '*' pcs.auth nodes='[ node1.example.org node2.example.org ]' \
                  pcsuser='hacluster' \
                  pcspasswd='hoonetorg' \
                  extra_args=[ '--force' ]
salt.modules.pcs.cib_create(cibfile, scope=u'configuration', extra_args=None)

Create a CIB-file from the current CIB of the cluster

cibfile
name/path of the file containing the CIB
scope
specific section of the CIB (default: configuration)
extra_args
additional options for creating the CIB-file

CLI Example:

salt '*' pcs.cib_create cibfile='/tmp/VIP_apache_1.cib' \
                        'scope=False'
salt.modules.pcs.cib_push(cibfile, scope=u'configuration', extra_args=None)

Push a CIB-file as the new CIB to the cluster

cibfile
name/path of the file containing the CIB
scope
specific section of the CIB (default: configuration)
extra_args
additional options for creating the CIB-file

CLI Example:

salt '*' pcs.cib_push cibfile='/tmp/VIP_apache_1.cib' \
                      'scope=False'
salt.modules.pcs.cluster_node_add(node, extra_args=None)

Add a node to the pacemaker cluster via pcs command

node
node that should be added
extra_args
list of extra option for the 'pcs cluster node add' command

CLI Example:

salt '*' pcs.cluster_node_add node=node2.example.org'
salt.modules.pcs.cluster_setup(nodes, pcsclustername=u'pcscluster', extra_args=None)

Setup pacemaker cluster via pcs command

nodes
a list of nodes which should be set up
pcsclustername
Name of the Pacemaker cluster (default: pcscluster)
extra_args
list of extra option for the 'pcs cluster setup' command

CLI Example:

salt '*' pcs.cluster_setup nodes='[ node1.example.org node2.example.org ]' \
                           pcsclustername='pcscluster'
salt.modules.pcs.config_show(cibfile=None)

Show config of cluster

cibfile
name/path of the file containing the CIB

CLI Example:

salt '*' pcs.config_show cibfile='/tmp/cib_for_galera'
salt.modules.pcs.is_auth(nodes)

Check if nodes are already authorized

nodes
a list of nodes to be checked for authorization to the cluster

CLI Example:

salt '*' pcs.is_auth nodes='[node1.example.org node2.example.org]'
salt.modules.pcs.item_create(item, item_id, item_type, create=u'create', extra_args=None, cibfile=None)

Create an item via pcs command (mainly for use with the pcs state module)

item
config, property, resource, constraint etc.
item_id
id of the item
item_type
item type
create
create command (create or set f.e., default: create)
extra_args
additional options for the pcs command
cibfile
use cibfile instead of the live CIB
salt.modules.pcs.item_show(item, item_id=None, item_type=None, show=u'show', extra_args=None, cibfile=None)

Show an item via pcs command (mainly for use with the pcs state module)

item
config, property, resource, constraint etc.
item_id
id of the item
item_type
item type
show
show command (probably None, default: show)
extra_args
additional options for the pcs command
cibfile
use cibfile instead of the live CIB
salt.modules.pcs.prop_set(prop, value, extra_args=None, cibfile=None)

Set the value of a cluster property

prop
name of the property
value
value of the property prop
extra_args
additional options for the pcs property command
cibfile
use cibfile instead of the live CIB

CLI Example:

salt '*' pcs.prop_set prop='no-quorum-policy' \
                      value='ignore' \
                      cibfile='/tmp/2_node_cluster.cib'
salt.modules.pcs.prop_show(prop, extra_args=None, cibfile=None)

Show the value of a cluster property

prop
name of the property
extra_args
additional options for the pcs property command
cibfile
use cibfile instead of the live CIB

CLI Example:

salt '*' pcs.prop_show cibfile='/tmp/2_node_cluster.cib' \
                       prop='no-quorum-policy' \
                       cibfile='/tmp/2_node_cluster.cib'
salt.modules.pcs.resource_create(resource_id, resource_type, resource_options=None, cibfile=None)

Create a resource via pcs command

resource_id
name for the resource
resource_type
resource type (f.e. ocf:heartbeat:IPaddr2 or VirtualIP)
resource_options
additional options for creating the resource
cibfile
use cibfile instead of the live CIB for manipulation

CLI Example:

salt '*' pcs.resource_create resource_id='galera' \
                 resource_type='ocf:heartbeat:galera' \
                 resource_options="[ \
                     'wsrep_cluster_address=gcomm://node1.example.org,node2.example.org,node3.example.org' \
                     '--master' \
                 ]" \
                 cibfile='/tmp/cib_for_galera.cib'
salt.modules.pcs.resource_show(resource_id, extra_args=None, cibfile=None)

Show a resource via pcs command

resource_id
name of the resource
extra_args
additional options for the pcs command
cibfile
use cibfile instead of the live CIB

CLI Example:

salt '*' pcs.resource_show resource_id='galera' \
                           cibfile='/tmp/cib_for_galera.cib'
salt.modules.pcs.stonith_create(stonith_id, stonith_device_type, stonith_device_options=None, cibfile=None)

Create a stonith resource via pcs command

stonith_id
name for the stonith resource
stonith_device_type
name of the stonith agent fence_eps, fence_xvm f.e.
stonith_device_options
additional options for creating the stonith resource
cibfile
use cibfile instead of the live CIB for manipulation

CLI Example:

salt '*' pcs.stonith_create stonith_id='eps_fence' \
                            stonith_device_type='fence_eps' \
                            stonith_device_options="[ \
                              'pcmk_host_map=node1.example.org:01;node2.example.org:02', \
                              'ipaddr=myepsdevice.example.org', \
                              'action=reboot', \
                              'power_wait=5', \
                              'verbose=1', \
                              'debug=/var/log/pcsd/eps_fence.log', \
                              'login=hidden', \
                              'passwd=hoonetorg' \
                            ]" \
                            cibfile='/tmp/cib_for_stonith.cib'
salt.modules.pcs.stonith_show(stonith_id, extra_args=None, cibfile=None)

Show the value of a cluster stonith

stonith_id
name for the stonith resource
extra_args
additional options for the pcs stonith command
cibfile
use cibfile instead of the live CIB

CLI Example:

salt '*' pcs.stonith_show stonith_id='eps_fence' \
                          cibfile='/tmp/2_node_cluster.cib'