crm_resource is a good alternative to the GUI (see GuiGuide), 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"