【发布时间】:2016-12-12 06:36:19
【问题描述】:
这是我要运行的 LDAP 命令,它运行良好:
/opt/openldap/setup —cli —no-prompt —rootUserDN "cn=Directory Manager" — rootUserPasswpord secretpass —hostname localhost —ldapPort 389 —adminConnectorPort 4444 —baseDN "dc=example,dc=com" —addBaseEntry —doNotStart —acceptLicense'
这是我的厨师属性文件的内容(server.rb)
default["openldap"]["server"]["ROOTDN"] = "cn=Directory Manager"
default["openldap"]["server"]["ROOTPASS"] = "secret pass"
default["openldap"]["server"]["LDAPPORT"] = "389"
default["openldap"]["server"]["ADMINPORT"] = "4444"
default["openldap"]["server"]["BASEDN"] = "dc=example,dc=com"
default["openldap"]["server"]["DJDEST"] = "/opt/openldap"
这是我的厨师食谱文件(default.rb)的内容
execute 'Ldap: Installing Openldap Instance' do
command node["openldap"]["server"]["DJDEST"]'/setup --cli --no-prompt--rootUserDN "["openldap"]["server"]["ROOTDN"] " --rootUserPassword ["openldap"] ["server"]["ROOTPASS"]--hostname ["openldap"]["server"]["ODJFQDN"] --ldapPort ["openldap"]["server"]["LDAPPORT"] --adminConnectorPort ["openldap"]["server"]["ADMINPORT"] --baseDN "["openldap"]["server"]["BASEDN"]" --addBaseEntry --doNotStart --acceptLicense'
action :run
end
我想使用变量来运行执行资源,而不是在代码块中手动硬编码 ldap 脚本。谁能告诉我我做错了什么?
【问题讨论】:
-
嘿。欢迎来到 StackOverflow。我尝试了一些改进语法,但你似乎有几个问题。你用什么引号?能否请您仔细检查您粘贴的所有内容并尝试修复,以便我们解决您真正的问题?
-
您的问题实际上是ruby中的字符串插值,因此您想将属性和字符串组合在一起吗?喜欢
node[...] + '/setup ..'?
标签: ruby chef-infra