8 惯例
这一章包含很多这些年资源代理软件仓库里显示的惯例。并非要强制作者遵循这些管理,但是遵循这些惯例,会让资源代理更容易理解和浏览(LeaseSurprise 原则)
8.1 易懂的参数名
一些参数名是被好多种资源代理支持的。对于新的资源代理,遵循这些命名是比较好的:
binary ---- 管理资源的可执行码,比如服务器后台进程;
config ---- 配置文件的完整路径;
pid ---- 保存pid的文件完整路径;
log ---- 日志文件的完整路径;
socket ---- unix socket 文件的完整路径;
ip ---- 后台服务进程绑定的ip地址;
port ---- 服务器进程绑定的TCP和UDP端口
8.2 参数缺省值
缺省的资源代理参数通常以后缀_default 的变量初始化:
1 2 3 4 | # Defaults OCF_RESKEY_superfrobnicate_default=0 : ${OCF_RESKEY_superfrobnicate=${OCF_RESKEY_superfrobnicate_default}} |
注意:资源代理应该在元数据信息里面对没有表明为required是参数设缺省值
8.3 用$PATH环境变量去找可执行文件
当一个资源代理被设计成支持可执行文件为参数时(比如daemon,或者查询状态的客户端),那这个参数应该是在$PATH的环境变量定义的路径里可以找到的。不要提供全路径名。如下面的实现:
1 2 3 | # Good example -- do it this way OCF_RESKEY_frobnicate_default="frobnicate" : ${OCF_RESKEY_frobnicate="${OCF_RESKEY_frobnicate_default}"} |
下面的实现则不好:
1 2 3 | # Bad example -- avoid if you can OCF_RESKEY_frobnicate_default="/usr/local/sbin/frobnicate" : ${OCF_RESKEY_frobnicate="${OCF_RESKEY_frobnicate_default}"} |
缺省情况下也是这个规则。