
crm_resource is a good alternative to the GUI (see GuiGuide[1]), and is definitely your friend for scripting jobs and the like, except it has no man page so far (as of 2.0.7), so here are some tips.
crm_resource
usage: crm_resource [-?VS] -(L|Q|W|D|C|P|p) [options]
--help (-?) : this help message
--verbose (-V) : turn on debug info. additional instances increase verbosity
--quiet (-Q) : Print only the value on stdout (for use with -W)
Commands
--list (-L) : List all resources
--query-xml (-x) : Query a resource
Requires: -r
--locate (-W) : Locate a resource
Requires: -r
--migrate (-M) : Migrate a resource from it current location. Use -H to specify a destination
If -H is not specified, we will force the resource to move by creating a rule for the current location and a score of -INFINITY
NOTE: This will prevent the resource from running on this node until the constraint is removed with -U
Requires: -r, Optional: -H, -f
--un-migrate (-U) : Remove all constraints created by -M
Requires: -r
--delete (-D) : Delete a resource from the CIB
Requires: -r, -t
--cleanup (-C) : Delete a resource from the LRM
Requires: -r. Optional: -H
--reprobe (-P) : Recheck for resources started outside of the CRM
Optional: -H
--refresh (-R) : Refresh the CIB from the LRM
Optional: -H
--set-parameter (-p) <string> : Set the named parameter for a resource
Requires: -r, -v. Optional: -i, -s
--get-parameter (-g) <string> : Get the named parameter for a resource
Requires: -r. Optional: -i, -s
--delete-parameter (-d) <string>: Delete the named parameter for a resource
Requires: -r. Optional: -i
--get-property (-G) <string> : Get the named property (eg. class, type, is_managed) a resource
Requires: -r
--set-property (-S) <string> : Set the named property (not parameter) for a resource
Requires: -r, -t, -v
Options
--resource (-r) <string> : Resource ID
--resource-type (-t) <string> : Resource type (primitive, clone, group, ...)
--property-value (-v) <string> : Property value
--host-uname (-H) <string> : Host name
--force-relocation (-f) : Force the resource to move by creating a rule for the current location and a score of -INFINITY
This should be used if the resource's stickiness and constraint scores total more than INFINITY (Currently 10,000)
NOTE: This will prevent the resource from running on this node until the constraint is removed with -U
-s <string> : (Advanced Use Only) ID of the instance_attributes object to change
-i <string> : (Advanced Use Only) ID of the nvpair object to change/delete
Examples
Listing all resources
crm_resource -L
Checking where a resource is running (and if it does)
crm_resource -W -r my_first_ip resource my_first_ip is running on: server1 crm_resource -W -r my_first_ip resource my_first_ip is NOT running
Start/stop a resource
crm_resource -r my_first_ip -p target_role -v started crm_resource -r my_first_ip -p target_role -v stopped
Query the definition of a resource
crm_resource -x -r my_first_ip
Migrating a resource away from its current location
crm_resource -M -r my_first_ip
Migrating a resource to a specific location
crm_resource -M -r my_first_ip -H c001n02
Allow a resource to return to its normal location
crm_resource -U -r my_first_ip
Deleting a resource from the CRM
crm_resource -D -r my_first_ip -t primitive
Deleting a resource group from the CRM
crm_resource -D -r my_first_group -t group
Disabling a resource management for a resource in the CRM
crm_resource -p is_managed -r my_first_ip -t primitive -v off
Enabling a resource management for a resource in the CRM
crm_resource -p is_managed -r my_first_ip -t primitive -v on
Resetting a failed resource after having been manually cleaned up
crm_resource -C -H c001n02 -r my_first_ip
Rechecking all nodes for resources started outside of the CRM
crm_resource -P
Rechecking one node for resources started outside of the CRM
crm_resource -P -H c001n02
<primitive id="example_mail" class="ocf" type="MailTo" provider="heartbeat">
<instance_attributes id="example_mail_inst">
<attributes>
<nvpair id="example_mail_inst_attr0" name="email" value="root"/>
<nvpair id="example_mail_inst_attr1" name="subject" value="Example Failover"/>
</attributes>
</instance_attributes>
</primitive>You could query the email address using the following: crm_resource -r example_mail -g email
crm_resource -r example_mail -p email -v "myemailaddress@somedomain.com"
| [1] | http://www.linux-ha.org/GuiGuide |
This information provided courtesy of the Linux-HA project at http://linux-ha.org/