如果给定的类存在,是否有办法检入清单文件?
我想做这样的事情:
class foo {
if exists( Class["foo::${lsbdistcodename}"] ) {
include foo::${lsbdistcodename}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我可以轻松添加distrubution/version特定类,然后自动包含这些类.
/etc/file.txt如果文件存在,这个木偶清单将删除该文件:
file { "/etc/file.txt":
ensure => absent,
}
Run Code Online (Sandbox Code Playgroud)
如何告诉木偶删除所有文件/etc/*.txt?
根据参考资料,似乎puppet file不允许使用通配符.
http://docs.puppetlabs.com/references/latest/type.html#file
ps:我知道我可以从puppet执行一个脚本,但我更喜欢另一种更优雅的方式.
我最初是一名独立的网络开发人员,最近我通过给一个相当简单的网站报价来吓跑客户,这个网站比他们预期的要高很多.基本上是宣传册,他们可以在像Wordpress.com或Google网站这样的托管解决方案中完成自己的工作.除了一个关键特性之外,这让我认为Django非常合适,并且可以激发一些适当的Web开发.
在查看我在粗略估计中列出的任务时,对我来说很明显,那里的大部分时间都不是特定于此客户网站的内容.这让我觉得我应该有一个脚本来自动化设置和部署新的Django项目的过程.
还有一些事情需要手动完成,如:
设置新的VPS(或者在大多数情况下,只使用现有VPS上的虚拟主机).
编辑DNS设置以将clientsdomain.com和test.clientsdomain.com指向新的VPS.
设置SSH密钥
编辑配置文件.
然后脚本会执行以下操作:
在新VPS上安装一些必需的软件包
在新VPS上安装默认的iptables防火墙
为clientsdomain.com和test.clientsdomain.com添加nginx/apache配置
设置新的数据库,用于生产和测试VPS以及在本地计算机上进行开发.
创建一个新的Django项目并将其放在Bitbucket上.
设置settings.py和local_settings.py进行生产,测试和开发
为生产数据库和上传的文件目录设置异地备份例程.
启用一些默认应用:flatpages,admin
添加一些样板模板,几个样板平板和导航栏.
添加960.gs CSS框架
添加jQuery
为搜索设置djapian或Haystack(包括用于自动更新的cron作业).
设置新的Google分析个人资料.
包括在生产,测试和开发之间复制数据库的可能性
设置Pingdom监控
我过去曾经使用Rake和Fabric来做类似(但不那么雄心勃勃)的东西,我认为Fabric也可能非常适合这个任务,但我仍然喜欢你的输入.还有其他工具我应该研究一下吗?我听说过有关Puppet的好东西,但只是看着他们的网站(它包含了企业这个词)让我觉得这对于一个人操作可能有点过分.
我有一个500个linux盒子的集群,现在需要使用带有bind选项的mount资源(参见man 8 mount)来支持chroot jail.引导后需要强制执行和维护挂载点.我不确定如何用木偶描述这种状态.是这样的吗?
mount { "/gpfs20/home":
ensure => mounted,
name => "/chroot/centos5/home",
fstype => "none",
options => "(rw,bind)",
}
Run Code Online (Sandbox Code Playgroud)
TIA - 查尔斯
我知道在puppet中排序的基本知识是在特定包之前运行apt-get update但是想指定只运行apt-get update一次然后执行其余的puppet文件.那可能吗?
所有上市的方式在这里需要可以运行每个包或使用箭头前apt-get或者需要指定每个包.
我正在使用Puppet 2.7,我需要将数组转换为逗号分隔列表.
$hosts_fqdn= ['host1','host2','host3']
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为所需的结果: 'host1,host2,host3'
我猜Puppet 3.2提供lambda表达式 - reduce.但不幸的是2.7不可能.
我在Puppet中做了我的第一步并遇到了问题.我已经在Linux服务器上安装了PHP,我想对php.ini文件稍作修改.我不想ini用存储库中的一个覆盖整个文件,只需更改/创建一个简单的配置值.
我想确保,属性upload_max_filesize中的属性php.ini值为10M.
我怎样才能做到这一点?
我使用https://github.com/puphpet/puppetlabs-mysql来设置mysql配置,我需要将bind-address变量更改为0.0.0.0.
我试图这样做
mysql::config::override_options {
'mysqld' : 'bind-address' => '0.0.0.0'
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
你能帮我建议怎么做吗?
先感谢您!
只测试hiera,我希望能够查看给定节点的层次结构中的所有可用数据(变量=值对).
我的Hiera层次结构配置为:
---
:backends:
- yaml
- json
:yaml:
:datadir: C:\Puppet\hieradata
:hierarchy:
- "Env/%{::env}"
- common
Run Code Online (Sandbox Code Playgroud)
我可以运行以下命令来返回'some-common'变量的node1值:
>hiera some-common ::env=node1
data
Run Code Online (Sandbox Code Playgroud)
我希望能够看到的是层次结构中node1可用的所有变量=值对,这可能吗?谢谢
我有一个运行ps.memory = 2048RAM分配的Vagrant CentOS VM .
当我尝试启动puppetserver服务时:
$ puppet --version
4.4.0
$ sudo puppet resource service puppetserver ensure=running
Error: Could not start Service[puppetserver]: Execution of '/bin/systemctl start puppetserver' returned 1: Job for puppetserver.service failed. See 'systemctl status puppetserver.service' and 'journalctl -xn' for details.
Error: /Service[puppetserver]/ensure: change from stopped to running failed: Could not start Service[puppetserver]: Execution of '/bin/systemctl start puppetserver' returned 1: Job for puppetserver.service failed. See 'systemctl status puppetserver.service' and 'journalctl -xn' for details.
service …Run Code Online (Sandbox Code Playgroud)