标签: puppet

为什么要使用 puppet 参数化类?

通常在处理复杂的 puppet 模块时,我会在节点级别或类内部设置变量。例如,

node 'foo.com' {
  $file_owner = "larry" 
  include bar 
}

class bar { 
  $file_name = "larry.txt"
  include do_stuff
}

class do_stuff {
  file { $file_name:
    ensure => file,
    owner  => $file_owner,
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,参数化类如何/何时/为什么会有所帮助?您如何使用参数化类来构建您的 puppet 模块?

linux puppet

12
推荐指数
2
解决办法
1万
查看次数

适用于 Linux 和 Windows 的服务器凭据管理

我们是一个相对较小的商店(就系统管理员的数量而言),混合了 RHEL、Solaris、Windows 2003 和 Windows 2008 服务器;总共约200台服务器。

对于我们的管理员帐户(root在 Linux 和admnistratorWindows 中),我们有一个密码方案,该方案取决于数据中心位置和服务器的其他几个记录属性。

在Linux上,我们目前的做法是创建一个共享的非特权帐户在那里我们可以suroot。在基于 Windows 的系统上,我们创建了一个具有管理员权限的附加帐户。这两个帐户共享相同的密码。

这已被证明是非常低效的。当有人离开我们的商店时,我们必须:

  1. 更改管理员帐户的密码方案
  2. 为每台服务器生成一个新的管理员密码
  3. 想出一个新的非管理员帐户密码
  4. 触摸每个服务器并更改密码

我想知道在类似环境中是否有人可以建议一种更明智的方式来管理这些凭据。一些相关资料:

  • 尽管我们的大多数服务器都是我们 AD 域的一部分,但并非全部都是。
  • 我们使用 Puppet 管理我们所有的 Linux 服务器(密钥身份验证是我想到的一个选项,但它只能解决上面的 #3 问题)。
  • 我们使用 Cobbler 配置 Linux 服务器。
  • 我们大约 10% 的硬件专用于 VMWare。在这些情况下,我们使用 VMWare 模板来构建服务器。

任何想法或建议将不胜感激。这是一个困扰了一段时间的问题,我终于想解决它。

security linux windows-server-2008 active-directory puppet

12
推荐指数
1
解决办法
3763
查看次数

使用 Puppet 删除未明确允许的 SSH 密钥

我正在使用 puppet 分发 SSH 密钥,如下所示:

ssh_authorized_key { "alice@foo.com":
   ensure => present,
   key => 'xxxx',
   type => 'ssh-rsa',
   user => 'deploy',
}
Run Code Online (Sandbox Code Playgroud)

~/.ssh/authorized_keys 文件最终包含来自多个类的密钥的混合,这是所需的结果。但是,如果手动将密钥添加到 $HOME/.ssh/authorized_keys,Puppet 会将其保留在原位。有没有办法始终删除清单中未明确定义的任何键?

我有木偶版本 2.7.1。

ssh puppet

12
推荐指数
2
解决办法
6590
查看次数

应用单个木偶模块时如何设置路径?

我正在尝试运行这样的单个模块:

puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'
Run Code Online (Sandbox Code Playgroud)

但是,我收到此类错误,表明未设置路径

Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.
Run Code Online (Sandbox Code Playgroud)

我不想在每个这样的位置明确指定路径,并且在作为完整木偶运行的一部分运行时它工作正常。运行单个模块时如何指定路径?

puppet

12
推荐指数
2
解决办法
2万
查看次数

Puppet 中的文件桶配置

你如何配置和使用你的 Puppet 文件桶?

我想:

  1. 将文件桶数据存储在单个服务器上
  2. 必要时能够审计/解析/修剪文件桶
  3. 确保 filebucket 数据在 client->master 之间安全传输

linux unix puppet

11
推荐指数
1
解决办法
2万
查看次数

如何使用 Puppet 部署应用程序(在 .tar.gz 中)?

我是 Puppet 的初学者,我想知道我是否正在使用 Puppet 部署应用程序的正确方法。

应用程序位于 tar.gz 文件中,该文件包含带有版本号的文件。所以,我这样做是为了部署(我在服务器上并重新启动客户端以获取新的 tarball):

nodes.pp

node 'server1.domain.com' inherits basenode {
    apps { apps:
            version => 56,
            apps_name => "apps_tarball.tgz",
    }


init.pp (modules)

exec {"apps_wget":
            command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}",
            unless  => "test -f /tmp/${version}-${apps_name}",
            require => [ Package["wget"] ],
    }

exec {"apps_unzip":
            cwd     => "/usr/local/apps/path",
            command => "/usr/bin/unzip /tmp/${version}-${apps_name}",
            unless  => "test -f /usr/local/apps/path/apps-version-${version}",
            require => [ Package["unzip"], Exec["container_wget"] ],
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我要升级时,我不知道说Puppet删除旧目录?例如,如果我想将版本 56 升级到 57:我必须删除 56 的版本目录。

我听说过 Capristrano,使用 Puppet 来管理包、配置文件和使用 Capristrano 部署应用程序似乎更好,不是吗?

谢谢。

deployment puppet

11
推荐指数
3
解决办法
3万
查看次数

Puppet - 获取软件包和版本列表

是否可以告诉 puppet 为一个(或所有)节点编译目录并将该特定数据保存在某处?

我对获取所有需要的包及其每个节点的版本特别感兴趣,但获取任何数据的通用方法也适用。

package-management asset-management puppet

11
推荐指数
1
解决办法
1万
查看次数

自动化 Linux 更新的最佳实践

我们正在研究一种为基于 RHEL/RHEL 的服务器执行自动更新的方法。

最初的想法:使用 Puppet,我们禁用默认存储库并指向我们自己的存储库。然后,我们使用ensure => latest我们想要自动更新的包。

问题:我们看到某些服务在更新后重新启动(废话)。

问题:有人对如何更好地自动化 Linux 更新和减轻服务自动重启的策略有任何建议吗?我们更喜欢包含 Puppet 的解决方案,但是,如果我们需要使用其他服务,那不是交易破坏者。

编辑

可能的解决方案:我提交了一个解决方案,该解决方案实现了@voretaq7 和@ewwhite 建议的许多内容。好像这就是我暂时要走的路线。如果您有其他建议,请发表评论或提交答案。

linux yum puppet best-practices

11
推荐指数
2
解决办法
4013
查看次数

许多服务器的系统更新

我们有很多服务器,但仍想全部更新。实际的方法是任何系统管理员从一个服务器到另一个服务器并制作一个aptitude update && aptitude upgrade- 这仍然不是很酷。

我现在正在寻找一个更好、更智能的解决方案。人偶可以做这个工作吗?你怎么做呢?

remote-access debian update puppet

11
推荐指数
3
解决办法
3792
查看次数

Puppet 使用什么目录和文件结构?

到目前为止我读过的 Puppet 教程还没有提到如何构建 puppet .pp

任何人都可以分享一些有效和扩展的经验吗?

linux ubuntu centos puppet

11
推荐指数
1
解决办法
1977
查看次数