Articles of puppet

木偶apache虚拟主机自动部署

你好,木偶:), 我希望你能帮助我一个情况。 也就是说,我将使用puppet来部署很多(我的意思是很多)节点与Apache安装。 我有的问题是,现在唯一的方法来创build一个具有指定ServerName虚拟主机是发出主puppetmaster文件(site.pp)中的服务器名称。 它看起来像这样: case $::hostname { hostname1: {vhost_default { 'hostname1.domain': }} hostname2: {vhost_default { 'hostname2.domain': }} 有没有办法创build一个虚拟主机文件,而不必发出名称。 意思是说,puppetmaster读取主机名并将其自己写入模板。 模板看起来如下(只有重要部分): <VirtualHost *:80> ServerName <%= fqdn %> ServerAlias www.<%= fqdn %> 和模板部分的Apache的init.pp:define vhost_default(){ file { "/etc/apache2/sites-available/domain.conf": owner => 'root', group => 'root', mode => 644, content => template( 'apache/default_vhost.erb' ), require => [ Package[ 'apache2' […]

如何从位于vcenter中的VSphere ESXi 5.1主机虚拟机监控程序获取ssh公钥,并使用puppet-enterprise cloudprovisioner

我正在使用学习puppet 3.1 vm并尝试连接到主机pipe理程序。 我按照说明在根目录下创build了一个包含yaml散列的.fog文件,并且我读了yaml散列不会停止,直到puppet 3.3,所以我的凭据应该工作,但是当我运行puppet node_vmware时,它告诉我,我的我错过了不应该如此的必要的论据。 我可以通过winscplogin到主机pipe理程序,并使用PuTTY进入shell,所以我似乎无法理解为什么它没有返回ssh pub key,就像它在puppet云configuration指令中所说的那样。 我从故障排除中读到:“ENC无法与节点通信从Puppet Enterprise 3.0开始,节点和ENC之间的所有通信都需要SSL,而–enc-ssl选项已被删除。 这是否意味着我需要在我的服务器域名中包含ssl? 考虑到它没有在cloudprovisioning中包含的说明中具体说明,应该不是这种情况 我的.fog文件的格式非常类似于云configuration链接中的格式。 我需要在VCenter中进行任何更改或设置,以使我可以在puppet中进行云configuration吗?

使用puppet node init命令时,是在answers.install文件中指定的参数

在puppet-enterprise版本3.3.1上,我尝试在VMware VSphere客户端上使用VCenter 5.1.0托pipe的VMware puppet主节点上使用puppet node init命令。 我的木偶主节点在另一个安装了postgresql的远程虚拟机上有权限configuration。 我正在执行该命令,以便在新configuration的节点上安装puppet-enterprise。 这两个都是Ubuntu 12.04虚拟机。 我已经手动安装了一个节点,并通过我的木偶控制台接受证书,将其设置为从属节点。 我目前正试图通过命令puppet node init来设置它。 查看ENC(外部节点分类器)上的文档,我没有find指定的node.yaml文件的提及。 我已经尝试使用我的answers.install文件,我的木偶大师和我的木偶主控台来填充参数,但似乎我的特定configuration似乎没有工作? 我不记得分配任何节点组,因此我使用answers.install文件中指定的默认值作为“pe-puppet”,但是我也尝试使用组“mcollective”,因为它是控制台组中列出的组标签。 我没有做任何configuration我新安装的虚拟机,我试图安装puppet企业以login以root身份,并创build一个密码。 人工智能,我需要设置主机,主机名等,或者我应该能够通过木偶节点初始化参数? 我想应该是这样的情况,我应该能够build立一个puppet虚拟机,而不需要在一个通用的空Ubuntu虚拟机上做任何以前的修改。

需要一个PHP版本pipe理器在生产服务器上部署多个版本的PHP

我目前正在运行几个LAMP栈,我已经手动设置了PHP 5.2,5.3和5.4。 所有服务器都运行Ubuntu 12.04 LTS。 5.3目前通过apt-get安装,但所有其他PHP版本都是手工编译的。 我期望通过Puppet开始部署新的LAMP堆栈,尽pipe我可以编写一个基本的脚本来执行相同的编译步骤,但是我希望做得更好。 我已经包含了一些我之后的例子。 所有这些问题是,他们似乎是开发人员的重点,甚至在用户的homedir安装PHP。 我正在寻找可以在生产服务器上pipe理多个版本的PHP的东西。 我想我可以修改现有的解决scheme,但我希望能find一些更具特色的用户群体。 Boxen的木偶PHP模块: https : //github.com/mattheath/puppet-php (这取决于下面的phpenv): 在这里,我可以 include php::5_4 include php::5_3 include php::5_2 这最终是我想用我的Puppetconfiguration。 一些简单的线路,它会照顾安装,并检测版本是否已经存在,以免重新安装。 phpenv: https : //github.com/phpenv/phpenv 设置phpenv后: phpenv install php-5.3.20 php版本: https : //github.com/wilmoore/php-version

木偶问题:configurationWAN接口,重新加载networking,导致代理运行中断

一个小背景:我想用puppet在完成kickstart安装之后全新configurationRHEL6服务器,kickstart本身是全自动的,在启动后提供启用dhcp的服务器,自动检测它的主机名,然后启动puppet的代理 – -certname“$(hostname -s)” 用例:木偶的一个明显的步骤之一是configurationnetworking接口,其中之一是连接服务器到puppet的接口。 在启动时,服务器从172.20.0.0/24(比如说172.20.0.95)得到ip,其中172.20.0.1是一个DNS转发器和网关,并提供对FOO.intranet.com上的puppetmaster的访问。 问题:一旦傀儡重新configurationeth0接口和resolv.conf,一切都很好,木偶代理要从puppet:/// files / *下载文件,旧的DNS服务器不再是accesable了,它似乎试图查询非常适合当前puppetmaster域的服务器,导致libc的“getaddrinfo:Name or service not known”。 如果我杀了这个代理人,再次产卵,一切都按计划进行。 问题:有什么办法可以告诉傀儡代理人在经过一段时间后重新加载? 像重新加载如果/etc/puppet/puppet.conf被更改,或networking接口或任何东西? 否则,我需要确保在启动puppet代理之前configuration主网卡,这样做有点棘手。

了解ippet从puppet下载的数据包

在我的木偶客户半定期运行期间,我看到数据包被丢弃。 我不明白是什么原因造成的。 我应该提到Puppet通过puppetlabs / firewall模块来pipe理防火墙规则。 但规则似乎没有改变。 通过这种说法,傀儡debugging并不显示规则被删除,然后被添加,数据包计数从傀儡代理运行之前继续,并且在傀儡代理运行期间查看规则在运行期间没有显示任何规则改变。 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT icmp — 0.0.0.0/0 0.0.0.0/0 /* 000 accept all icmp */ ACCEPT all — 0.0.0.0/0 0.0.0.0/0 /* 001 accept all to lo interface */ ACCEPT all — 0.0.0.0/0 0.0.0.0/0 /* 002 accept related established rules */ state RELATED,ESTABLISHED ACCEPT […]

如果使用基于映像的虚拟化技术,如何通过puppetconfiguration节点?

我试图通过这个模块来集成puppet和vSphere: https://forge.puppetlabs.com/puppetlabs/vsphere 该模块允许您通过几行puppet代码创build服务器。 我有一个虚拟机模板,我从克隆。 它安装了vmware工具和puppet客户端。 节点出现了,但是木偶大师认为所有连续的克隆都是相同的节点,可能是因为它们具有相同的SSL证书。 那么这应该如何工作? 我可以在单个节点上解决SSL问题,但我希望能够以自动方式创build100个节点。 它看起来像puppet resource vsphere_vm应该显示访客IP,我会想象,然后可以被送入傀儡,并从那里提供的节点,但该命令目前不产生任何IP信息。 必须有人使用这个puppet vsphere插件来使用它来以自动方式旋转节点。 这也意味着一个更为普遍的问题:如果您正在使用基于映像的虚拟化技术(如vSphere),如何使用puppet自动创build和configuration服务器? 作为一个注意事项,我正在使用木偶企业2015.2。

木偶更改源文件的权限

我正在用傀儡build立监狱的炮弹,在监狱里保存所需的图书馆的副本。 使用下面的puppet代码,我可以成功复制文件: file { "/home/${username}/lib/x86_64-linux-gnu/libdl.so.2": ensure => present, source => "/lib/x86_64-linux-gnu/libdl.so.2", mode => '0700', links => 'manage', owner => $username, group => $username, require => File["/home/${username}/lib/x86_64-linux-gnu/"] } 它似乎虽然源文件权限正在更改为$用户名:$用户名以及目标文件权限。 文件/lib/x86_64-linux-gnu/libdl.so.2结束了以下权限: -rwx—— 1 $username $username ld-2.19.so 被监禁的用户显然能够使用这个设置login,但是对于其他所有在real / lib文件夹中使用/ bin / bash的用户而言,它正在破坏login。

如何在CentOS服务器上设置fqdn?

我将/ etc / sysconfig / network文件中的主机名设置为host.example.com HOSTNAME = host.example.com Fyi,我然后在机器上重新启动。 我有一个Puppet的问题:当我在这台机器上运行Facter时,它返回以下信息: #facter fqdn host.com 所以傀儡会产生一个错误的证书,等等… 以下是我的主机上发生的事情: # 主机名 host.example.com #主机名–fqdn example.com #主机名-y (没有) #dnsdomainname COM 我不明白为什么Facter会得到错误的信息……我做错了什么?

从包中安装的Tomcat的catalina_basepath是什么?

我有以下清单configurationTomcat使用8983端口,而不是: include java class { 'tomcat': install_from_source => false } tomcat::instance {'default': package_name => 'tomcat7'} -> tomcat::service {'default': use_jsvc => false, use_init => true, service_name => 'tomcat7' }-> tomcat::config::server { 'tomcat7': catalina_base => '/usr/share/tomcat7', port => 8983, } 但是,运行时,我有以下错误: $ sudo puppet apply -vd tomcat-test.pp debug: Augeas[server-/usr/share/tomcat7](provider=augeas): Augeas version 1.3.0 is installed debug: Augeas[server-/usr/share/tomcat7](provider=augeas): sending […]