我正在从一个模块安装一个软件包(Nginx在这种特定情况下),并希望包含一个来自模块外部的配置文件,即从顶级files目录并行到顶级manifests目录.我没有看到任何方式来源文件虽然没有包含在模块或我当前的Vagrant环境中引用绝对本地路径.
Puppet是否允许如文档中所述从模块外部获取文件?
如何配置AWS自动扩展以快速扩展?我已经设置了一个带有ELB的AWS自动缩放组.一切都运行良好,除了在添加新实例并在线之前需要几分钟.我在一篇关于Puppet和autoscaling的帖子中遇到了以下内容:
如果用于一组节点的AMI已经是最新的,则缩放时间可以从几分钟降低到几秒.
http://puppetlabs.com/blog/rapid-scaling-with-auto-generated-amis-using-puppet/
这是真的?可以缩短时间缩短到几秒钟吗?使用木偶会增加任何性能提升吗?
我还读到较小的实例比较大的实例开始更快:
小型实例1.7 GB内存,1个EC2计算单元(1个虚拟核心,1个EC2计算单元),160 GB实例存储,32位平台,基本安装CentOS 5.3 AMI
从实例发布到可用性的时间:5到6分钟us-east-1c
大型实例7.5 GB内存,4个EC2计算单元(2个虚拟内核,每个2个EC2计算单元),850 GB实例存储,64位平台,基本安装CentOS 5.3 AMI
从实例发布到可用性的时间:
11到18分钟us-east-1c两者都是使用Amazons工具通过命令行启动的.
http://www.philchen.com/2009/04/21/how-long-does-it-take-to-launch-an-amazon-ec2-instance
我注意到这篇文章很旧,我的c1.xlarge实例肯定没有花费18分钟来启动.尽管如此,配置具有50个微实例的自动缩放组(具有100%容量增加的扩展策略)是否会比具有20个大实例的自动缩放组更有效?或者可能创建两个自动缩放组,一个用于快速启动时间的微型组,另一个用于在几分钟后添加CPU grunt的大型实例?在其他条件相同的情况下,t1.micro上线的速度比c1.xlarge快多少?
我正在进入Puppet,并喜欢它,但我用一个小东西撞在墙上,我肯定必须比我做的更容易.
我希望在.bashrc用户中取消注释这一行:
#force_color_prompt=yes
Run Code Online (Sandbox Code Playgroud)
我一直在使用augeas做很多事情,但似乎这对它不起作用.
我注意到有一个file_line资源可用于确保文件中存在一行,但我需要将该行保留在同一位置.
我不希望.bashrc完全替换我自己的副本,尽管看到这种模式在Puppet中很流行,但它对我来说没有意义,因为我不想在升级之间维护我自己的版本.
在sed我用这个:
sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我在精确的32基盒上使用vagrant 1.0.1来玩木偶.供应工作正常,我的清单正在执行.默认情况下,vagrant会在guest虚拟机上的/ opt/vagrant_ruby/bin/puppet下安装puppet 2.7.14.
我如何配置流浪者(或曾经在客人身上安装木偶)使用更新版本如puppet 3.0或3.1?
我有以下木偶示例模板:
{
"servers" : [ {
"port" : 9200,
"host" : "localhost",
"queries" : [
<% @markets.each do |market| -%>
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_<%= market %>:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio" ]
},
<% end -%>
],
"numQueryThreads" : 2
} ],
}
Run Code Online (Sandbox Code Playgroud)
将它应用于市场= ['英国','FR','IT'],我得到以下结果:
{
"servers" : [ {
"port" : 9200,
"host" : "localhost",
"queries" : [
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_UK:type=queryResultCache,id=org.apache.solr.search.LRUCache", …Run Code Online (Sandbox Code Playgroud) 我有一个简单的木偶定义资源,如下所示:
define mything($number, $device, $otherthing) {
file{"/place/${number}":
ensure => directory
}
mount { "/place/${number}":
device => $device,
ensure => mounted,
require => File["/place/${number}"]
}
file {"/place/${number}/${otherthing}":
ensure => directory,
require => Mount['/place/${number}']
}
}
Run Code Online (Sandbox Code Playgroud)
我需要使用不同的参数多次调用此资源,但无法在没有显式mything()重复调用的情况下弄清楚如何执行此操作.
理想情况下,我将所有参数存储在某种数组中,然后调用mything($array),有点像这样:
$array = [
{number => 3, something => 'yes', otherthing => 'whatever'},
{number => 17, something => 'ooo', otherthing => 'text'},
{number => 4, something => 'no', otherthing => 'random'},
]
mything($array)
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我很确定如果我的资源只使用一个参数并且我只有一个平坦的数组值,这可以工作,但是我可以用多个命名参数做同样的事情吗?
我想在Windows 2012 R2基础架构上自动化应用程序/角色/功能部署(无人值守),这个项目需要很多小时的编程,这就是我在这里问的原因.
我想部署以下应用程序和角色:Active Directory,DNS,Sql Server 2012,Citrix XenApp Server,Citrix XenDesktop服务器,Citrix Datacollector,Citrix许可证服务器,Citrix Storefront服务器.
因此,基本部署将在8台服务器上(已安装在ESXi上,仅配置ip配置).
我想象这个场景:
我将填写一个包含所有信息的CSV文件,并执行Powershell脚本来部署所有内容,我们可以想象一个脚本将为每个组件(sql,ad,dns,citrix等)调用不同的脚本.
我不想依赖任何工具(sccm,puppet或其他......),这就是我想从头开始创建它的原因 - >但也许我错了.
我也看了,有一个所谓的新功能PowerShell的DSC,以简化应用程序部署http://blogs.technet.com/b/privatecloud/archive/2013/08/30/introducing-powershell-desired-state-configuration-dsc .aspx 有一个简单的例子:如果你需要4个iis webserver,那么执行以下代码:
Configuration DeployWebServers
{
Node ("test1.domain.com","test2.domain.com","test3.domain.com","test4.domain.com")
{
Windows-Feature IIS
{
Name = "Web-Server"
Ensure = "Present"
}
}
}
DeployWebServers -OutputPath "C:\scripts"
Start-DscConfiguration -path "C:\scripts" -Verbose -Wait -Force
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,每个应用程序/角色或功能只有1个服务器,如果我理解的话,只有在(x)服务器上需要部署相同的配置时,此功能才有意义
你的建议是什么?我应该选择从头开始编写powershell脚本吗?或者选择像木偶或厨师这样的解决方案(更容易),但在这种情况下,我将依赖于工具.
最好的解决方案是使用sql数据库 - >我的项目的最终目标是一个带有数据库的Web应用程序,该数据库将执行我的powershell脚本来部署我的基础结构
当然,从这个Web应用程序,我将通过表单填充我的数据库,我的powershell脚本将查询此数据库以获取信息(IP地址,客户端名称,域名,密码,用户......)**
感谢您的意见.
这是我的小傀儡片段:当我执行此片段时,我收到以下错误:
错误:无法解析环境生成:无法匹配/home/test.pp:8
$vendor = generate("/usr/bin/lsscsi")
if defined($vendor) {
if $vendor =~ /LSI/{
$d_multipath = [{
vendor => 'LSI',
product => 'INF-01-00',
path_checker => 'rdac',
path_selector => 'round-robin 0',
}]
}
}
else {
notify {'faield-lsscsi':
message => "ERROR: failed to execute lsscsi to get the scsi vendor type",
loglevel => critical,
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙指出吗?
我一直在使用PuPHPet来设置开发/暂存托管环境,它是为非常简单和高效的部署而设计的.
但是,我遇到了一种情况,我需要在各种服务器配置文件中提供更详细的指令(即Nginx和Apache配置,cron作业等),PuPHPet不允许我这样做.
我的问题是:
PuPHPet仅用于基本服务器设置吗?
如果您需要对配置进行更多操作,是否应该使用PuPHPet,然后从那里手动修改清单?或者这是不好的,因为PuPHPet的任何更新都会覆盖所述文件?
最后,如果你需要微调控制,你应该从头开始编写Puppet配置(不使用PuPHPet)吗?
编辑:不知道为什么这个被投票关闭.我只是问为什么一个人使用自定义Puppet配置而不是Puphpet,如果他们能够完成相同的配置任务
我有一个使用gini-archive的puppet模块.最近我改变我的模块依赖于biemond-wildfly,这取决于nanliu-archive.
但是,我无法安装nanliu-archive,因为这两个归档模块都安装在一个名为的目录中archive.我相信这违反了puppet模块的要求,因为它们都应该安装到名为的目录中<username>-archive.
但是,即使我把它们放在不同的目录中,我仍然有问题.两个类都被调用archive(实际上一个是一个类,一个是定义,但我认为现在不太重要),所以当我的模块说include archive,木偶不会知道我想要哪一个.
注意我有一个java背景,其中每个类都在一个包层次结构中,可以防止这类问题,但我看不到任何木偶的等价物.
我知道我可以有不同的模块目录(的整个负载/etc/puppet/modules,/etc/puppet/modules2等等),但木偶似乎仍然通过这些看才能,这意味着它将永远载入archive从列表中的第一个模块的目录类.
有没有办法解决这个问题,或者我达到了傀儡可以做的极限?我宁愿不必分叉每一个模块并更改类名,这似乎打败了伪造点.
谢谢.
puppet ×10
vagrant ×3
amazon-ec2 ×1
automation ×1
autoscaling ×1
deployment ×1
ec2-ami ×1
erb ×1
powershell ×1
puphpet ×1
ruby ×1
virtualbox ×1
windows ×1