pacemaker的lsb资源脚本读取xml
时间: 2024-03-13 12:45:02 浏览: 76
在 Pacemaker 中,可以使用 lsb 资源代理来管理系统服务。在 lsb 资源脚本中,可以使用 xml 配置文件来定义资源的属性和操作。
以下是一个示例 xml 配置文件:
```
<resource-agent name="my-resource" version="1.0">
<longdesc lang="en">
This is a custom resource agent for managing my resource.
</longdesc>
<shortdesc lang="en">
My Resource Agent
</shortdesc>
<parameters>
<parameter name="my_param" unique="1" required="1">
<longdesc lang="en">
This is my parameter.
</longdesc>
<shortdesc lang="en">
My Parameter
</shortdesc>
<content type="string"/>
</parameter>
</parameters>
<actions>
<action name="start" timeout="20" interval="0">
<longdesc lang="en">
This action starts my resource.
</longdesc>
<shortdesc lang="en">
Start
</shortdesc>
<script><![CDATA[
#!/bin/bash
echo "Starting my resource with parameter $OCF_RESKEY_my_param"
# Add your start command here
]]></script>
</action>
<action name="stop" timeout="20" interval="0">
<longdesc lang="en">
This action stops my resource.
</longdesc>
<shortdesc lang="en">
Stop
</shortdesc>
<script><![CDATA[
#!/bin/bash
echo "Stopping my resource"
# Add your stop command here
]]></script>
</action>
</actions>
</resource-agent>
```
在这个示例中,xml 配置文件定义了一个名为 "my-resource" 的资源代理,它包含一个名为 "my_param" 的参数和两个操作:"start" 和 "stop"。
在 lsb 资源脚本中,可以使用以下命令来读取 xml 配置文件:
```
OCF_RESKEY_my_param=`xmlstarlet sel -t -v \
"//parameter[@name='my_param']/content" \
/etc/ha.d/resource.d/my-resource.xml`
```
这个命令使用 xmlstarlet 工具来选择 xml 文件中名为 "my_param" 的参数,并将其值赋给环境变量 "OCF_RESKEY_my_param"。
类似地,可以使用 xmlstarlet 来选择操作的脚本,并在 lsb 脚本中执行它们。
注意:在 lsb 脚本中使用 xmlstarlet 可能需要先安装 xmlstarlet 工具。
阅读全文