代码之家  ›  专栏  ›  技术社区  ›  PAC

如何在puppet清单中格式化巧克力参数

  •  0
  • PAC  · 技术社区  · 6 年前

    以下choco install命令工作正常:

    choco Install 'InstallTest' -y --source 'C:\installtest' --params="'/serverinstance:MyServer /buildtype:OTP'"
    

    我现在在木偶清单中有以下内容:

    package { 'InstallTest':
      ensure            => installed,
      install_options   => ['-params','"', /serverinstance:MyServer, /buildtype:OTP, '"'],
      source            => 'c:\installtest',
    }
    

    我认为我正确地用逗号等覆盖了空格,但puppet解析器抛出了以下错误:

    puppet : [1;31mError: Could not parse for environment production: invalid byte sequence in UTF-8[0m
    

    如果没有install\u options行,它可以很好地编译。

    正确的语法应该是什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   John Bollinger    6 年前

    问题在于:

      install_options   => ['-params','"', /serverinstance:MyServer, /buildtype:OTP, '"'],
    

    虽然傀儡可以接受 bare words as strings ,则对此类字符串的内容有限制。与此相关的一点是,他们必须

    以小写字母开头,仅包含字母、数字、连字符( - ),并加下划线( _ ).

    因此,您正在寻找:

      install_options   => ['-params', '"', '/serverinstance:MyServer', '/buildtype:OTP', '"'],
    

    总的来说,它的更好的风格是引用几乎所有的字符串,无论它们是否需要。这更清楚,它会让你远离麻烦。