Questions tagged «puppet»

Puppet是一种配置管理工具(Unix和Windows),具有自己的域特定语言。

2
人偶测试文件是否存在
我正在寻找一种方法来测试客户端中是否存在文件(只是测试而不是创建)。我已经在厨师中找到了(File.exists)的方法,但是使用木偶并不是那么简单。 提前致谢。
8 puppet 

4
木偶:更新文件(或包)时运行shell命令
mysql_tzinfo_to_sql每当tzinfo软件包(在Ubuntu服务器上)更改时,我都希望运行。我认为木偶可以解决这个问题。 我以为Puppet会对软件包版本的更改做出反应,或者如果不对软件包中包含的文件的时间戳更改做出反应。 我能看到的唯一方法是拥有一个没有直接动作的资源,并有一个依赖于它的执行程序。 我的问题是: 是否可以定义仅用于通知另一个资源(例如exec)的文件? 是否可以定义一个包资源,以便在包更改或更新时激活另一个资源(例如exec)? 是否可以定义运行shell命令行(例如带有管道和重定向)的exec资源,而不是来自文件系统的命令? 综上所述,似乎势不可挡。 跟进:很棒的答案!为了完整性(为了记录),我应注意以下几点: 感兴趣的完整shell命令是 mysql_tzinfo_to_sql | mysql -u root -p password (它将tzinfo加载到MySQL数据库中以供MySQL使用)。 审计/etc/tzinfo将是徒劳的,因为这仅仅是本地时区配置;目的是观察tzinfo数据本身的变化(从而观察/usr/share/zoneinfo)。 同样,内容将是错误的观察-因为它们很可能不会更改。最好是观看mtime或全部,因为每次tzinfo更新后文件时间都会改变。 同样,詹姆斯·特恩布尔( James Turnbull )在引入审计时就写下了所有有关审计的内容。元参数参考包含对audit参数工作方式的简短描述。
8 puppet 

3
使用Puppet部署我们自己的软件?
(对于这个问题的愚蠢,我们事先道歉。我通常是程序员,而不是系统管理员,但我本人要自己去自动化一些事情,并清理一些自动化的事情,但不是最漂亮的方法。 。:-) 我一直在研究用于将软件自动部署到一堆服务器的各种工具,例如cfengine,Puppet和Chef。到目前为止,Puppet看起来最吸引人,但我当然还没有承诺任何事情。 这些工具看起来都可以很好地完成工作,以使一堆服务器使用预打包的软件保持最新。 我不明白的是:人们如何使用一种工具(如Puppet)来管理我们自己的内部软件的部署?我想我不知所措我,因为我已经看到了一千教程展示了如何保持阿帕奇ensure => latest(这是很酷的),但是没有一个相当相当于我用例的今天,这是更多的东西一样: 当人类按下按钮时, 从版本控制存储库B中提取分支A 运行命令C进行编译 将二进制文件D复制到服务器E1到E10 在每台服务器上,运行命令F以使所有更改生效 Puppet听起来很棒,我完全看到了声明性,幂等配置优于某些shell脚本的优势,但是我还没有看到任何有关“您要将Shell脚本更新为Puppet(或Chef,或cfengine)的教程”,应该做”。有这样的事吗?对其他人来说,显而易见的是如何采用Puppet文档中提供的内容并复制我想要的行为?我只是不明白吗? 到目前为止,对我来说听起来像是,人类(#1)会手动打包Puppet外部的软件(#2和#3),手动更新Puppet配置,这会触发Puppet更新服务器。 .. 也许?(我确定您可以告诉我,这里我有点困惑。) 谢谢!

3
全球与本地人偶管理
有没有人曾经用Puppet管理过几个地理上分散的系统? 我有几个几乎完全相似的部署(服务器IP除外),我希望将其转换为Puppet。 我有2个选择: 让每个部署托管它自己的PuppetMaster以提供本地配置,然后以某种方式同步PuppetMaster(可能再次与puppet同步) 在AWS EC2上托管PuppetMaster以实现高可用性,并从单点为所有部署提供配置 有没有人尝试过第二种选择,以及如何解决?我对这种环境下的高可用性性能特别感兴趣。 谢谢。
8 puppet 

2
SSH密钥管理系统
我希望从基于密码的系统(开始变得不知所措)切换到基于SSH密钥的系统。 我想知道是否有任何SSH密钥管理系统或服务器解决方案,可以让我在计算机上分发和撤销密钥? 还是最好的方法是使用Puppet来完成此任务?如果是,那么每台客户端计算机使用单个密钥对的方法(在此介绍:用于管理ssh密钥的最佳系统?)将是最佳方法吗?
8 ssh  puppet  keys 

4
配置管理:跨计算机依赖性
我使用过诸如puppet之类的工具来管理单个系统,通常取得了很高的成功。木偶失败的地方在于它不善于管理单个服务器外部的依赖关系。 例如,在MySQL服务器上,我将puppet配置为执行以下操作: 在计算机上配置身份验证以访问我的LDAP服务器 配置apt以使用我的本地存储库镜像 安装MySQL包 写my.cnf 启动MySQL 在数据库中创建用户 在这组步骤中,解决了许多依赖关系-例如,除非安装了软件包,否则我无法启动数据库服务;除非正确配置了apt repo,否则我将无法启动数据库服务。 该MySQL服务器是master-> master复制设置中的一个框。在理想的情况下,p(或其他类似工具)将让我代表一个事实,即服务器B需要等到服务器A可用后再尝试与之建立复制关系。 这里有很多文字-基本上我要问的是:是否有像puppet这样的工具可以管理这样的机器间依赖关系?

4
我如何让p为虚拟用户部署ssh密钥?
我试图让人偶为虚拟用户分配授权的ssh密钥,但我不断收到以下错误: err: Could not retrieve catalog: Could not parse for environment production: Syntax error at 'user'; expected '}' at /etc/puppet/modules/users/manifests/ssh_authorized_keys.pp:9 我相信我的配置是正确的(在下面列出),但是我缺少语法错误或范围界定问题吗?我只想将用户分配给节点,并让这些用户自动安装其ssh密钥。也许有更好的方法可以做到这一点,而我只是想得太多? # /etc/puppet/modules/users/virtual.pp class user::virtual { @user { "user": home => "/home/user", ensure => "present", groups => ["root","wheel"], uid => "8001", password => "SCRAMBLED", comment => "User", shell => "/bin/bash", …
8 puppet 


2
如何使用Puppet / Augeas管理exim dc_local_interfaces配置?
我需要将“ dc_local_interfaces”的值设置为“ 127.0.0.1; :: 1”,但分号可以防止这种情况。 这是我在Puppet中的定义: augeas { "/etc/exim4/update-exim4.conf.conf": lens => "Shellvars.lns", incl => "/etc/exim4/update-exim4.conf.conf", changes => "set dc_local_interfaces 127.0.0.1;::1", } 我尝试了不同的方法来设置值(不使用撇号,使用撇号,使用反斜杠转义的撇号),但是没有一种有效。使用augtool时,一切正常: set /files/etc/exim4/update-exim4.conf.conf/dc_local_interfaces "'127.0.0.1;::1'"
2 puppet  exim  augeas 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.