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 / 问题 / 463542
Accepted
tedder42
tedder42
Asked: 2013-01-07 16:14:43 +0800 CST2013-01-07 16:14:43 +0800 CST 2013-01-07 16:14:43 +0800 CST

通过 Puppet 提供文件:“无法评估”

  • 772

TLDR 版本:在正常使用 fileserver.conf 的情况下,我如何构建一个实际有效的人偶 URL?

.

我正在尝试开始使用 Puppet 和一些虚拟实例。对于第一个任务,我尝试使用文件类型分发 authorized_keys 文件。是的,可以使用ssh 授权密钥类型来完成,但这是关于文件分发的,对吧?

服务 wiki的文件暗示了我应该构建的路径。首先,这里是 puppetmasterd 知道的:

$ grep -B 1 path /etc/puppet/fileserver.conf 
[files]
  path /etc/puppet

其次,我创建了一个文件,/etc/puppet/modules/ssh/manifests/init.pp其中包含以下内容:

$ cat /etc/puppet/modules/ssh/manifests/init.pp
class ssh {
  file { "/home/ubuntu/.ssh/authorized_keys":
    source => "puppet:///modules/ssh/authorized_keys",
    mode => 400,
    owner => ubuntu,
    group => ubuntu
  }

  file { "/home/ubuntu/.ssh":
    ensure => directory,
    mode => 700,
    owner => ubuntu,
    group => ubuntu
  }

  notify {"all done.":}

}

# declare class
class {'ssh':}

当我直接运行该文件时,它以下列方式失败:

$ puppet apply --verbose /etc/puppet/modules/ssh/manifests/init.pp
info: Applying configuration version '1357516270'
notice: all done.
notice: /Stage[main]/Ssh/Notify[all done.]/message: defined 'message' as 'all done.'
err: /Stage[main]/Ssh/File[/home/ubuntu/.ssh/authorized_keys]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/ssh/authorized_keys at /etc/puppet/modules/ssh/manifests/init.pp:7
notice: Finished catalog run in 0.04 seconds

我已经尝试了几个版本的木偶源链接。例如:

puppet:///modules/ssh/authorized_keys
puppet:///authorized_keys

这是 authorized_keys 文件实际所在的位置:

$ ls -l /etc/puppet/modules/ssh/files/authorized_keys
-rw------- 1 root root 796 Jan  6 23:30 authorized_keys

这种“init.pp”和“files/*”的模式似乎与Advanced Puppet Pattern wiki entry匹配。

为了完整起见,这是我的木偶版本。

$ puppet --version
2.7.18

为了表明我不是在做“解决我的简单问题”或“做我的家庭作业”的事情,我一直在努力寻找这个基本问题的答案。我在上面包含了指向参考资源的链接,并且我也查看了其他 答案。我已经看到失败是证书问题(1、2),但这是本地的。令人讨厌的是,这看起来非常接近,但很难变成 Vagrant,尽管有一个答案谈论的是一个[modules]部分而不是一个[files]部分,这在 wiki 中不存在。这是最近的“官方邮件列表”主题,但我不知道我做错了什么。

puppet
  • 2 2 个回答
  • 7727 Views

2 个回答

  • Voted
  1. Shane Madden
    2013-01-07T17:47:29+08:002013-01-07T17:47:29+08:00

    你的主人有任何日志吗?

    该位置是正确的,但我怀疑600文件上的模式阻止了文件服务器读取它,因为 puppet master 进程通常以非 root 用户身份运行(puppet默认情况下)。

    检查日志,但文件的模式更改可能会解决问题。

    • 2
  2. Best Answer
    Mike
    2013-01-07T17:55:20+08:002013-01-07T17:55:20+08:00

    确保在你的主人的 puppet.conf 中将这样的东西设置为你的模块的路径

      modulepath = /etc/puppet/modules
    

    如果你然后做类似的事情

     source => "puppet:///modules/ssh/authorized_keys",
    

    如果将查找文件

     /etc/puppet/modules/ssh/files/authorized_keys
    

    编辑:

    顺便说一句,你把文件和模块混在一起了。它们是两个完全不同的东西。现在一般人都用模块,从来不碰[文件],因为太乱了。

    • 2

相关问题

  • 如何修复 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