有没有一种可靠的方法可以为 EMC Clariion 编写脚本 (Unix shell) lun 配置?Navicli 看起来不太可靠,其输出不易解析(而且很奇怪),而且它似乎不会返回有用的错误代码。
我想要一些可以使用的东西,比如 LVM(如果存在的话),例如:
if ! lvcreate -n $lunname -L $size $volumegroup
then
echo "Failed" >&2
exit 1
fi
一位顾问告诉我,EMC 故意编写糟糕的软件,以便他们可以出售非常昂贵的附加组件,但我无法相信这是真的。
答案1
在这种情况下,交互式命令自动化工具(如 expect、expect-list 或 pexpect)可能是最佳选择。它们甚至可以驯服最差的命令行工具,包括需要交互式输入的工具。
- expect - 原始的 TCL/TK 自动化工具 -http://expect.sourceforge.net/
- expect-lite(expect 的简化包装器)-http://expect-lite.sourceforge.net/
- pexpect - 一个类似 Python Expect 的库 -http://www.noah.org/wiki/pexpect
或者,您可以使用旧的运行但验证方法 - 运行命令,然后运行后续操作以验证 LUN 的创建。
答案2
我最终设法通过 naviseccli 做了我想做的事情:
/opt/Navisphere/bin/naviseccli -User "$user" -Password "$password" -Scope 0 \
-Address "yoursan.example.com" \
lun -create -capacity 50 -sq gb -poolName "$storagePoolName" -sp a \
-name "$lunname"
...创建一个 50 GB 的 lun。