AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 448748
Accepted
Andy Shinn
Andy Shinn
Asked: 2012-11-15 11:10:40 +0800 CST2012-11-15 11:10:40 +0800 CST 2012-11-15 11:10:40 +0800 CST

Puppet apache 模块导致“服务器上出现错误 400:参数标识符无效”

  • 772

我在尝试使用来自 github ( https://github.com/puppetlabs/puppetlabs-apache ) 的最新 puppetlabs-apache 模块时收到以下错误:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter identifier at /etc/puppet/environments/development/modules/apache/manifests/mod.pp:40 on node cacti.mydomain.com Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping runn

我的节点配置如下所示:

节点 'cacti.eye.fi' 继承 'base' {
  包括阿帕奇
  包括 mysql::server
  包括 yumrepos::epel

  包{'仙人掌':
    确保 => '最新',
  }
}

mod.pp 内容:

定义 apache::mod (
  $包=未定义
) {
  $mod = $名称
  包括阿帕奇::参数
  #include apache #This 在 rspec-puppet 中创建重复资源
  $mod_packages = $apache::params::mod_packages
  $mod_package = $mod_packages[$mod] # 2.6 兼容性破解
  如果 $ 包 {
    $package_REAL = $包
  } elsif "$mod_package" {
    $package_REAL = $mod_package
  }
  $mod_libs = $apache::params::mod_libs
  $mod_lib = $mod_libs[$mod] # 2.6 兼容性破解
  如果“${mod_lib}”{
    $lib = $mod_lib
  }

  $mod_identifiers = $apache::params::mod_identifiers
  $mod_identifier = $mod_identifiers[$mod]
  如果“${mod_identifier}”{
    $identifier = $mod_identifier
  }

  如果 $package_REAL {
    包 { $package_REAL:
      确保 => 现在,
      要求 => 包 ['httpd'],
      之前 => A2mod[$mod],
    }
  }

  a2mod { $mod:
    确保 => 现在,
    库 => $库,
    标识符 => $标识符,
    要求 => 包 ['httpd'],
    通知 => 服务 ['httpd'],
  }
}

我已验证该/var/lib/puppet/lib/puppet/type/a2mod.rb类型具有标识符参数并且它与服务器的 MD5 相同:

Puppet::Type.newtype(:a2mod) 做
    @doc = "管理 Apache 2 模块"

ensurable

newparam :name do
   desc "The name of the module to be managed"

   isnamevar

end

newparam :lib do
  desc "The name of the .so library to be loaded"

  defaultto { "mod_#{@resource[:name]}.so" }
end

newparam :identifier do
  desc "Module identifier string used by LoadModule. Default: module-name_module"

  # http://httpd.apache.org/docs/2.2/mod/module-dict.html#ModuleIdentifier

  defaultto { "#{@resource[:name]}_module" }
end

autorequire(:package) { catalog.resource(:package, 'httpd')}

结尾

我在代理和主机上都使用 Puppet 3.0.2。知道是什么原因造成的吗?

puppet
  • 2 2 个回答
  • 3465 Views

2 个回答

  • Voted
  1. Best Answer
    Andy Shinn
    2013-02-05T11:33:43+08:002013-02-05T11:33:43+08:00

    我想我终于找到了几个 Puppet 错误,这似乎是造成这种情况的原因。这与我使用多个环境进行测试和更新有关(我没有在原始问题中提及,因为我认为它不相关)。

    从我的搜索词中删除“标识符”后出现在谷歌搜索中的第一个错误:

    http://projects.puppetlabs.com/issues/17814

    然后,这个错误链接到另一个听起来直接相关的错误:

    http://projects.puppetlabs.com/issues/12173

    我也在关注http://projects.puppetlabs.com/issues/17210,它可能是相关的。我正在关注这些错误。我可以确认,在我将代码实际合并到主环境后,它确实开始工作了(因为 Puppet master 现在看到了代码更改)。

    • 2
  2. Chris Montanaro
    2013-02-06T11:48:16+08:002013-02-06T11:48:16+08:00

    似乎问题出在您的标识符声明中,您可以尝试添加 else fail 以查看是否是问题所在:

    if "${mod_identifier}" {
      $identifier = $mod_identifier
    }
    else {
      fail('No identifier found'),
    }
    
    • 0

相关问题

  • 如何修复 Puppet 完全限定的参数路径错误?

  • puppet:修改配置文件后强制重启服务

  • 木偶模块资源

  • 傀儡主机名问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve