标签: puppet

如何更改vagrant安装的puppet版本

我在精确的32基盒上使用vagrant 1.0.1来玩木偶.供应工作正常,我的清单正在执行.默认情况下,vagrant会在guest虚拟机上的/ opt/vagrant_ruby/bin/puppet下安装puppet 2.7.14.

我如何配置流浪者(或曾经在客人身上安装木偶)使用更新版本如puppet 3.0或3.1?

puppet vagrant

7
推荐指数
2
解决办法
4113
查看次数

MongoDB命令行显示用户是否存在(对于puppet'incept'子句)

我们正在使用基于MongoDB用户的身份验证,我想快速运行一个命令来检查用户是否已在数据库中创建,以便puppet不会重复尝试创建用户.

以下是我们检查副本集是否已初始化的方法:

/usr/bin/mongo --host ${members[0]} --quiet --eval 'rs.status().ok' | grep -q 1
Run Code Online (Sandbox Code Playgroud)

验证可能有类似的技巧吗?我在这里检查了文档http://www.mongodb.org/display/DOCS/dbshel​​l+%28mongo%29+Reference,我看不到这样做的方法吗?

puppet mongodb

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

部署自动化

我有一个Lift应用程序打包为WAR存档,必须在Jetty下部署.但是,我希望能够自动执行一些任务:

  • 指定目标服务器(或服务器集合).我有多个服务器,从开发到测试和生产服务器,我希望能够轻松地控制部署的目的地.
  • 目的地(例如,开发)可以表示服务器的集合,用于负载平衡目的.
  • 测试阶段.基本上,在每个部署中,如果应用程序无法编译或者一个或多个测试失败,我希望运行整个测试集并阻止部署.
  • WAR存档必须在Jetty上部署,再次在一台或多台运行Linux的Amazon EC2机器上部署.(Ubuntu 12.10)

我正在使用SBT,我不知道这将与Puppet或类似的东西有多好.你会怎么做?

deployment scala jetty lift puppet

6
推荐指数
1
解决办法
1998
查看次数

puppet apply error:在节点uys0115上找不到默认节点或名称为'uys0115'

我在两个节点上安装了puppet,服务器节点主机名为"uys0115",客户端节点主机名为"uys0119",服务器节点已经设置了客户机节点.当我执行commad:时puppet cert list --all,我们可以看到:

+ "uys0115" (24:55:95:77:8E:60:33:77:C8:D4:74:EA:01:21:BD:5A)
+ "uys0119" (86:53:1B:81:E5:4F:88:23:E8:34:E1:AB:03:D4:AE:7C)
Run Code Online (Sandbox Code Playgroud)

puppet主目录是/ etc/puppet /,我写了一个例子和文件组织如下:

/etc/puppet/--
             |-/manifests/site.pp
             |-/modules/test/--  
                              |-/files/text.txt
                              |-/manifests/init.pp
                              |-/manifests/test.pp
Run Code Online (Sandbox Code Playgroud)

代码/etc/puppet/modules/test/manifests/test.pp是:

class test1 {
package { "bison":
        ensure=>"installed",
}
exec { "puppet test":
        command=>"/bin/touch /tmp/puppet-test",
}
file { "/tmp/test.txt":
        ensure => "present",
        source => "puppet:///modules/test/test.txt"
}
}
Run Code Online (Sandbox Code Playgroud)

而代码/etc/puppet/modules/test/manifests/init.pp就是import "*"; 和代码/etc/puppet/manifests/site.pp如下:

import "test"
node default {
        include "test1"
}
Run Code Online (Sandbox Code Playgroud)

当我在客户端节点uys0119和exec命令puppet agent --test --server uys0115.它成功执行并在目录/ tmp /中创建了两个文件puppet-test和test.txt.在我执行命令的服务器节点中puppet apply site.pp,它也成功执行并创建了两个文件.但是,终端输出两条警告信息: …

puppet

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

如何使用Puppet Apache2模块启用PHP5模块

我正在使用这个Apache2处理Puppet模块

https://forge.puppetlabs.com/puppetlabs/apache

当我执行以下代码时,它成功安装了虚拟主机,但它永远不会为Apache2启用PHP5模块.我该如何启用它?

class { 'apache': 
    mpm_module => 'prefork',
}

apache::vhost { 'mysite':
    ...
    xyz
    ...
}

apache::mod { 'php5': }
Run Code Online (Sandbox Code Playgroud)

我还尝试用以下代码替换该行:

apache::mod { 'php': }
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.php5模块没有启用.我必须通过运行手动启用它a2enmod php5.文档没有说明这一点.谢谢!

php puppet

6
推荐指数
1
解决办法
6541
查看次数

模板内的算术运算

我正在尝试在木偶模板中的参数中添加一个数字,如下所示

"https://localhost:<%= 9443 + @offset %>/service/" 
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误.

细节:字符串无法强制进入Fixnum

'offset'是一个数值.是否有可能在木偶中进行这种算术运算?

erb puppet

6
推荐指数
1
解决办法
3529
查看次数

如何按角色拆分hiera配置?

我正在使用hiera 为我的节点分配类webserver或类dbserver.该webserver班仅包括了Apache和设置它的一些配置(如端口).显然我不想为每个节点复制这个配置,所以我把它放在common.yaml中.但是,我的common.yaml变大了,所以我想把它分开.我想有一个文件包含webserver角色的配置,另一个文件包含dbserver角色等.我想我的hiera.yaml看起来像这样:

:hierarchy:
  - "fqdn/%{::fqdn}"
  - "role/%{ROLE}"
  - common
Run Code Online (Sandbox Code Playgroud)

role文件夹将包含类似的文件webserver.yaml,appserver.yaml,dbserver.yaml.我已经看到各种博客帖子说解决方案是创建一个自定义的"角色"事实,但大多数人通过从代理节点上的文件(例如从/etc/role)加载该事实来实现这一点,这对我来说似乎打败了木偶点(我特意使用木偶,所以每次我希望它有一些新角色时我都不必登录每个节点并更改一些配置).

为了清楚起见,我不想编辑代理上的文件以使其工作,我希望使用主服务器上的配置完成所有操作.

我想我可能会有类似下面的内容并详尽地列出每个角色作为层次结构中的元素,但这似乎不可管理.

:hierarchy:
  - "fqdn/%{::fqdn}"
  - "webserver"
  - "appserver"
  - "dbserver"
  - common
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?

puppet hiera

6
推荐指数
1
解决办法
1651
查看次数

Puppet Master-Client证书是否会过期?

在Puppet代理的初始配置期间,代理获得由主服务器识别的权限(通常是主服务器本身)签署的安全证书,随后它将向主服务器标识自己.此证书是否过期或需要更新?

unix puppet puppetlabs-apache puppet-enterprise

6
推荐指数
1
解决办法
890
查看次数

如何使用 puppet 添加 apt-keys?

使用这个puppet-module 来 apt,我如何导入这个密钥:

https://www.dotdeb.org/dotdeb.gpg 
Run Code Online (Sandbox Code Playgroud)

我想要实现的是两个 shell 命令的与木偶相关的解决方案:

wget https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg 
Run Code Online (Sandbox Code Playgroud)

这个木偶模块的文档对此并不清楚。这个怎么做?

apt puppet

6
推荐指数
1
解决办法
8212
查看次数

在Ansible中的Puppet hiera相当于

hiera.yaml

---
:hierarchy:
- node/%{host_fqdn}
  - site_config/%{host_site_name}
  - site_config/perf_%{host_performance_class}
  - site_config/%{host_type}_v%{host_type_version}
  - site/%{host_site_name}
  - environments/%{site_environment}
  - types/%{host_type}_v%{host_type_version}
  - hosts
  - sites
  - users
  - common
# options are native, deep, deeper
:merge_behavior: deeper
Run Code Online (Sandbox Code Playgroud)

我们目前有这个hiera配置.因此,配置按以下顺序合并:common.yaml> users.yaml> sites.yaml> hosts.yaml> types/xxx_vxxx.yaml>等.对于变量顶层次结构,仅当该文件存在时才会被覆盖.

例如:common.yaml

server:
  instance_type: m3.medium
Run Code Online (Sandbox Code Playgroud)

site_config/mysite.yaml

server:
  instance_type: m4.large
Run Code Online (Sandbox Code Playgroud)

因此对于所有其他站点,实例类型将是m3.medium,但仅对于mysite,它将是m4.large.

我怎样才能在Ansible中实现同样的目标?

puppet ansible hiera ansible-playbook

6
推荐指数
1
解决办法
3600
查看次数