标签: puppet

部署自动化

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

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

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

deployment scala jetty lift puppet

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

为什么Puppet和Chef使用Ruby?

我们都知道Puppet和Chef是IT自动化领域的超级明星,它们是用Ruby开发的(尽管Chef 11服务器是在Erlang中重写的).

在我的工作环境中,一大群运营团队使用Python作为主要语言来开发操作工具或基本系统应用程序.

我想找到为什么Puppet和Chef都是用Ruby编写的?有什么好处?Ruby很好地支持DSL.Python可以做这样的事吗?

ruby dsl puppet chef-infra

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

如何使用puppet为不同的用户设置自定义bash环境?

我刚刚开始使用puppet(和vagrant)为我们的团队设置开发环境,该团队由8个以上的开发人员组成,每个开发人员都有他们特定的bash配置等等.我已经安装了所有的软件.用于快速部署新开发虚拟机的系统,但我不确定以自动方式为每个特定用户设置开发环境的最佳方式(我们最终会有几个开发环境,编写一次会很方便)并完成).

例如,我想设置一个用户joe,从github克隆Joe的配置repo,然后在该github存储库中运行一个脚本来为Joe设置环境.关于Joe以及Jimmy,James,Julie,Jane,Jim,Jake和Jimbo如何做到这一点的任何建议?

如果有任何帮助,开发机器几乎肯定是ubuntu系统.

puppet vagrant

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

使用boxen提示用户输入

我对boxen(和puppet)完全不熟悉,我想在设置过程中提示用户输入密码.我需要加密输入并将其添加到配置文件中.

我将使用模板生成文件,但获取密码有点棘手,因为木偶在模板内执行代码时不会写入控制台.

我已经考虑过使用ruby或shell脚本来提示用户,然后将密码存储在环境变量中以便稍后在模板中使用,但我不知道这是否是最好或最安全的方法来执行此操作.

有什么建议?用boxen/puppet做这种事情是否有"最佳实践"?

puppet boxen

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

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
查看次数

使用augeas with puppet将属性添加到根节点

所以我正在尝试做一些看起来与" 通过augeas向XML根节点添加属性的问题"相同的问题,但是提供的答案对我不起作用.没有insert命令,我收到此错误消息(在puppet agent -t --debug --verbose模式下):

Debug: Augeas[context.xml](provider=augeas): /augeas/files/usr/share/tomcat/conf/context.xml/error/message = Failed to match 
    { /#attribute/ }?({ /#text/ = /(\\]\\]\\]*[^]\001-\004<>][^]\001-\004<]*\\]|(\\][^]\001-\004<]|[^]\001-\004<][^]\001-\004<])[^]\001-\004<]*\\]|[^]\001-\004<]\\])(\\]\\]*[^]\001-\004<>][^]\001-\004<]*\\]|[^]\001-\004<][^]\001-\004<]*\\])*(\\]\\]*([^]\001-\004<>][^]\001-\004<]*|)|[^]\001-\004<][^]\001-\004<]*|)|\\]\\]\\]*([^]\001-\004<>][^]\001-\004<]*|)|(\\][^]\001-\004<]|[^]\001-\004<][^]\001-\004<])[^]\001-\004<]*|\\]|[^]\001-\004<]/ } | { /#comment/ = /([^\001-\004-]|-[^\001-\004-])*/ } | <<rec>> | { /[:A-Z_a-z][.0-:A-Z_a-z-]*/ = /#empty/ } | { /#pi/ })*
  with tree
    { "#text" = "

    " } { "#comment" = " Default set of monitored resources " } { "#text" = "
    " } { "WatchedResource" } { "#text" = "
    " } { "#comment" = " Uncomment …
Run Code Online (Sandbox Code Playgroud)

xml puppet augeas

6
推荐指数
0
解决办法
1013
查看次数

如何按角色拆分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
查看次数

在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
查看次数

人偶申请与人偶代理-t

我是puppet的新手,在学习puppet课程时,我发现一个人使用'puppet agent -t'命令配置代理节点,而在另一门课程中,讲师使用'puppet apply'命令。

这两个命令有什么区别?

puppet

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

标签 统计

puppet ×10

hiera ×2

ansible ×1

ansible-playbook ×1

augeas ×1

boxen ×1

chef-infra ×1

deployment ×1

dsl ×1

jetty ×1

lift ×1

php ×1

ruby ×1

scala ×1

vagrant ×1

xml ×1