Quick Comparison of pcs and crm shell ------------------------------------- ``pcs`` and ``crm shell`` are two popular higher-level command-line interfaces to Pacemaker. Each has its own syntax; this chapter gives a quick comparion of how to accomplish the same tasks using either one. Some examples also show the equivalent command using low-level Pacmaker command-line tools. These examples show the simplest syntax; see the respective man pages for all possible options. Show Cluster Configuration and Status ##################################### .. topic:: Show Configuration (Raw XML) .. code-block:: none crmsh # crm configure show xml pcs # pcs cluster cib pacemaker # cibadmin -Q .. topic:: Show Configuration (Human-friendly) .. code-block:: none crmsh # crm configure show pcs # pcs config .. topic:: Show Cluster Status .. code-block:: none crmsh # crm status pcs # pcs status pacemaker # crm_mon -1 Manage Nodes ############ .. topic:: Put node "pcmk-1" in standby mode .. code-block:: none crmsh # crm node standby pcmk-1 pcs-0.9 # pcs cluster standby pcmk-1 pcs-0.10 # pcs node standby pcmk-1 pacemaker # crm_standby -N pcmk-1 -v on .. topic:: Remove node "pcmk-1" from standby mode .. code-block:: none crmsh # crm node online pcmk-1 pcs-0.9 # pcs cluster unstandby pcmk-1 pcs-0.10 # pcs node unstandby pcmk-1 pacemaker # crm_standby -N pcmk-1 -v off Manage Cluster Properties ######################### .. topic:: Set the "stonith-enabled" cluster property to "false" .. code-block:: none crmsh # crm configure property stonith-enabled=false pcs # pcs property set stonith-enabled=false pacemaker # crm_attribute -n stonith-enabled -v false Show Resource Agent Information ############################### .. topic:: List Resource Agent (RA) Classes .. code-block:: none crmsh # crm ra classes pcs # pcs resource standards pacmaker # crm_resource --list-standards .. topic:: List Available Resource Agents (RAs) by Standard .. code-block:: none crmsh # crm ra list ocf pcs # pcs resource agents ocf pacemaker # crm_resource --list-agents ocf .. topic:: List Available Resource Agents (RAs) by OCF Provider .. code-block:: none crmsh # crm ra list ocf pacemaker pcs # pcs resource agents ocf:pacemaker pacemaker # crm_resource --list-agents ocf:pacemaker .. topic:: List Available Resource Agent Parameters .. code-block:: none crmsh # crm ra info IPaddr2 pcs # pcs resource describe IPaddr2 pacemaker # crm_resource --show-metadata ocf:heartbeat:IPaddr2 You can also use the full ``class:provider:type`` format with crmsh and pcs if multiple RAs with the same name are available. .. topic:: Show Available Fence Agent Parameters .. code-block:: none crmsh # crm ra info stonith:fence_ipmilan pcs # pcs stonith describe fence_ipmilan Manage Resources ################ .. topic:: Create a Resource .. code-block:: none crmsh # crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 \ params ip=192.168.122.120 cidr_netmask=24 \ op monitor interval=30s pcs # pcs resource create ClusterIP IPaddr2 ip=192.168.122.120 cidr_netmask=24 pcs determines the standard and provider (``ocf:heartbeat``) automatically since ``IPaddr2`` is unique, and automatically creates operations (including monitor) based on the agent's meta-data. .. topic:: Show Configuration of All Resources .. code-block:: none crmsh # crm configure show pcs-0.9 # pcs resource show --full pcs-0.10 # pcs resource config .. topic:: Show Configuration of One Resource .. code-block:: none crmsh # crm configure show ClusterIP pcs-0.9 # pcs resource show ClusterIP pcs-0.10 # pcs resource config ClusterIP .. topic:: Show Configuration of Fencing Resources .. code-block:: none crmsh # crm resource status pcs-0.9 # pcs stonith show --full pcs-0.10 # pcs stonith config .. topic:: Start a Resource .. code-block:: none crmsh # crm resource start ClusterIP pcs # pcs resource enable ClusterIP pacemaker # crm_resource -r ClusterIP --set-parameter target-role --meta -v Started .. topic:: Stop a Resource .. code-block:: none crmsh # crm resource stop ClusterIP pcs # pcs resource disable ClusterIP pacemaker # crm_resource -r ClusterIP --set-parameter target-role --meta -v Stopped .. topic:: Remove a Resource .. code-block:: none crmsh # crm configure delete ClusterIP pcs # pcs resource delete ClusterIP .. topic:: Modify a Resource's Instance Parameters .. code-block:: none crmsh # crm resource param ClusterIP set clusterip_hash=sourceip pcs # pcs resource update ClusterIP clusterip_hash=sourceip pacemaker # crm_resource -r ClusterIP --set-parameter clusterip_hash -v sourceip crmsh also has an `edit` command which edits the simplified CIB syntax (same commands as the command line) via a configurable text editor. .. topic:: Modify a Resource's Instance Parameters Interactively .. code-block:: none crmsh # crm configure edit ClusterIP Using the interactive shell mode of crmsh, multiple changes can be edited and verified before committing to the live configuration: .. topic:: Make Multiple Configuration Changes Interactively .. code-block:: none crmsh # crm configure crmsh # edit crmsh # verify crmsh # commit .. topic:: Delete a Resource's Instance Parameters .. code-block:: none crmsh # crm resource param ClusterIP delete nic pcs # pcs resource update ClusterIP nic= pacemaker # crm_resource -r ClusterIP --delete-parameter nic .. topic:: List Current Resource Defaults .. code-block:: none crmsh # crm configure show type:rsc_defaults pcs # pcs resource defaults pacemaker # cibadmin -Q --scope rsc_defaults .. topic:: Set Resource Defaults .. code-block:: none crmsh # crm configure rsc_defaults resource-stickiness=100 pcs # pcs resource defaults resource-stickiness=100 .. topic:: List Current Operation Defaults .. code-block:: none crmsh # crm configure show type:op_defaults pcs # pcs resource op defaults pacemaker # cibadmin -Q --scope op_defaults .. topic:: Set Operation Defaults .. code-block:: none crmsh # crm configure op_defaults timeout=240s pcs # pcs resource op defaults timeout=240s .. topic:: Enable Resource Agent Tracing for a Resource .. code-block:: none crmsh # crm resource trace Website .. topic:: Clear Fail Counts for a Resource .. code-block:: none crmsh # crm resource cleanup Website pcs # pcs resource cleanup Website pacemaker # crm_resource --cleanup -r Website .. topic:: Create a Clone Resource .. code-block:: none crmsh # crm configure clone WebIP ClusterIP meta globally-unique=true clone-max=2 clone-node-max=2 pcs # pcs resource clone ClusterIP globally-unique=true clone-max=2 clone-node-max=2 .. topic:: Create a Promotable Clone Resource .. code-block:: none crmsh # crm configure ms WebDataClone WebData \ meta master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true pcs-0.9 # pcs resource master WebDataClone WebData \ master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true pcs-0.10 # pcs resource promotable WebData WebDataClone \ promoted-max=1 promoted-node-max=1 \ clone-max=2 clone-node-max=1 notify=true pcs will generate the clone name automatically if it is omitted from the command line. Manage Constraints ################## .. topic:: Create a Colocation Constraint .. code-block:: none crmsh # crm configure colocation website-with-ip INFINITY: WebSite ClusterIP pcs # pcs constraint colocation add ClusterIP with WebSite INFINITY .. topic:: Create a Colocation Constraint Based on Role .. code-block:: none crmsh # crm configure colocation another-ip-with-website inf: AnotherIP WebSite:Master pcs # pcs constraint colocation add Started AnotherIP with Promoted WebSite INFINITY .. topic:: Create an Ordering Constraint .. code-block:: none crmsh # crm configure order apache-after-ip mandatory: ClusterIP WebSite pcs # pcs constraint order ClusterIP then WebSite .. topic:: Create an Ordering Constraint Based on Role .. code-block:: none crmsh # crm configure order ip-after-website Mandatory: WebSite:Master AnotherIP pcs # pcs constraint order promote WebSite then start AnotherIP .. topic:: Create a Location Constraint .. code-block:: none crmsh # crm configure location prefer-pcmk-1 WebSite 50: pcmk-1 pcs # pcs constraint location WebSite prefers pcmk-1=50 .. topic:: Create a Location Constraint Based on Role .. code-block:: none crmsh # crm configure location prefer-pcmk-1 WebSite rule role=Master 50: \#uname eq pcmk-1 pcs # pcs constraint location WebSite rule role=Promoted 50 \#uname eq pcmk-1 .. topic:: Move a Resource to a Specific Node (by Creating a Location Constraint) .. code-block:: none crmsh # crm resource move WebSite pcmk-1 pcs # pcs resource move WebSite pcmk-1 pacemaker # crm_resource -r WebSite --move -N pcmk-1 .. topic:: Move a Resource Away from Its Current Node (by Creating a Location Constraint) .. code-block:: none crmsh # crm resource ban Website pcmk-2 pcs # pcs resource ban Website pcmk-2 pacemaker # crm_resource -r WebSite --move .. topic:: Remove any Constraints Created by Moving a Resource .. code-block:: none crmsh # crm resource unmove WebSite pcs # pcs resource clear WebSite pacemaker # crm_resource -r WebSite --clear Advanced Configuration ###################### Manipulate Configuration Elements by Type _________________________________________ .. topic:: List Constraints with IDs .. code-block:: none pcs # pcs constraint list --full .. topic:: Remove Constraint by ID .. code-block:: none pcs # pcs constraint remove cli-ban-Website-on-pcmk-1 crmsh # crm configure remove cli-ban-Website-on-pcmk-1 crmsh's `show` and `edit` commands can be used to manage resources and constraints by type: .. topic:: Show Configuration Elements .. code-block:: none crmsh # crm configure show type:primitive crmsh # crm configure edit type:colocation Batch Changes _____________ .. topic:: Make Multiple Changes and Apply Together .. code-block:: none crmsh # crm crmsh # cib new drbd_cfg crmsh # configure primitive WebData ocf:linbit:drbd params drbd_resource=wwwdata \ op monitor interval=60s crmsh # configure ms WebDataClone WebData meta master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true crmsh # cib commit drbd_cfg crmsh # quit pcs # pcs cluster cib drbd_cfg pcs # pcs -f drbd_cfg resource create WebData ocf:linbit:drbd drbd_resource=wwwdata \ op monitor interval=60s pcs-0.9 # pcs -f drbd_cfg resource master WebDataClone WebData \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true pcs-0.10 # pcs -f drbd_cfg resource promotable WebData WebDataClone \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true pcs # pcs cluster cib-push drbd_cfg Template Creation _________________ .. topic:: Create Resource Template Based on Existing Primitives of Same Type .. code-block:: none crmsh # crm configure assist template ClusterIP AdminIP Log Analysis ____________ .. topic:: Show Information About Recent Cluster Events .. code-block:: none crmsh # crm history crmsh # peinputs crmsh # transition pe-input-10 crmsh # transition log pe-input-10 Configuration Scripts _____________________ .. topic:: Script Multiple-step Cluster Configurations .. code-block:: none crmsh # crm script show apache crmsh # crm script run apache \ id=WebSite \ install=true \ virtual-ip:ip=192.168.0.15 \ database:id=WebData \ database:install=true