在puppet中,您可以通过执行以下操作来chown/chmod单个文件:
file {
'/var/log/mylog/test.log':
ensure => 'present',
mode => '0644',
owner => 'me';
}
Run Code Online (Sandbox Code Playgroud)
两个问题:
ensure =>'present'将确保'/var/log/mylog/test.log'存在,如果它不存在则创建它.如果文件存在,我有什么方法可以让它做动作,如果文件不存在,不打扰创建/删除它,只是忽略它并继续.
假设我在/ var/log/mylog /下面有3个文件,我想在一个批处理中对它们chown/chmod,而不是在我的puppet代码中有3个文件资源部分.我可以做下面这样的事情(因为下面的代码不存在,现在是我的梦想^ _ ^):
files {
'/var/log/mylog/*.log':
ensure => 'present',
mode => '0644',
owner => 'me';
}
Run Code Online (Sandbox Code Playgroud)是否有将 Puppet 脚本转换为 Chef 的转换器?
我找到了将 Chef 脚本转换为 Puppet https://github.com/relistan/chef2puppet 的ruby 脚本,但我需要 puppet2chef。
我有一个木偶清单抵制我试图让它正常工作,因为我不是傀儡DSL的专家,而且我对Puppet很新,我还没有设法解决这个问题.
我正在尝试使用puppetlabs posgres模块安装Postgres,创建默认角色,并修复数据库以使用UTF8.
一切都运行和安装,但角色不会被创建.但是,如果我再次运行该配置,则会创建该角色.我想也许与执行顺序有关,但说实话,我迷路了.
这是我在清单文件中使用的代码.
user { "user_vagrant":
ensure => "present",
}->
exec { 'apt_update':
command => 'apt-get update',
path => '/usr/bin/'
}
package { ['vim','postgresql-server-dev-9.1','libmysqlclient-dev','nodejs']:
ensure => 'installed',
before => Class['postgresql::server'],
require => Exec['apt_update'],
}
class { 'postgresql::server':
ip_mask_allow_all_users => '0.0.0.0/0',
listen_addresses => '*',
ipv4acls => ['local all all md5'],
postgres_password => 'postgres',
require => User['user_vagrant'],
}
postgresql::server::role { 'vagrant':
createdb => true,
login => true,
password_hash => postgresql_password("vagrant", "vagrant"),
require => Class['postgresql::server'],
} ->
exec { 'utf8_postgres':
command …Run Code Online (Sandbox Code Playgroud) exec { 'unzip Data.zip':
command => '/usr/bin/unzip -qq -o /vagrant/modules/wls/files/Data.zip -d /weblogic/app',
group => 'vagrant',
user => 'vagrant',
require => File['/weblogic/app/WEB-INF'],
}
Run Code Online (Sandbox Code Playgroud)
错误:/ Stage [main] / Deploy_webapp / Exec [unzip Data.zip] /返回:从notrun更改为0失败:无法分配内存-fork(2)
4GB RAM(与6GB配合使用)
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "4096"]
我想将1个cron作业添加到将每5分钟运行一次的机器上,因为我正在使用此清单:
class cron_job{
file{"puppet_ls":
path => "/puppet/pls.sh",
ensure => present,
content => "#!/bin/sh\necho \"Hello World\"\nls -ltr /etc/puppet > /puppet/dump.txt"
}
file { "my_ls.cron":
path => "/etc/cron.d/my_ls.cron",
ensure => present,
owner => "root",
group => "root",
mode => 0644,
require => File["puppet_ls"],
content => "*/1 * * * * /puppet/pls.sh\n";
}
}
Run Code Online (Sandbox Code Playgroud)
所以这个清单做两件事,
但是我没有在/ puppet /中获取文件dump.txt. 如果我运行sh /puppet/pls.sh,它运行完美并生成转储.
我无法理解故障在哪里.. :(
请说清楚..
谢谢Ankur
好的,我刚刚开始学习 Puppet 并阅读文档。据我所见:
require做同样的事情beforesubscribe做同样的事情notify显然,这些是在依赖关系的相对两侧添加的,但你明白我的意思了。
从代码可读性和可维护性方面来看,使用(每对中的)一个比另一个更好吗?我应该同时使用两者以获得最大清晰度还是这会使维护变得麻烦?想法?
发出 vagrant up 命令时,出现如下错误:
Could not find class apt for precise64.inglewood.ca.us at at /tmp/vagrant-puppet-3/manifests/default.pp:19 on node precise64.inglewood.ca.us`
Run Code Online (Sandbox Code Playgroud)
default.pp 的第 19 行包含:
include apt
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我在 Windows 8+Cygwin+ruby2.0
给定的是 hieradata 中的散列值:
profile::jdbc::connections
connection_name1:
username: 'user1'
password: 'pass1'
connection_name2:
username: 'user2'
password: 'pass2'
Run Code Online (Sandbox Code Playgroud)
以及 puppet 代码中的默认值散列:
$jdbc_default = {
'testWhileIdle' => true,
'testOnBorrow' => true,
'testOnReturn' => false,
'timeBetweenEvictionRunsMillis'=> '30000',
'maxActive' => '20',
'maxWait' => '10000',
'initialSize' => '5',
'removeAbandonedTimeout' => '600',
'removeAbandoned' => false,
'logAbandoned' => true,
'minEvictableIdleTimeMillis' => '30001',
}
Run Code Online (Sandbox Code Playgroud)
如何将默认值添加到连接哈希中的每个哈希?
结果也可以是一个散列数组,但是一个与连接散列中的键相同的散列会很好。
作为 Ubuntu 管理员,我想知道每个或最后一次 puppet 代理运行的状态。我怎样才能用cli检查?我可以以人类可读的格式写入每次运行的日志吗?
昨天我在一个会议上与一些人谈论 Puppet Lab 的Bolt 1.0。我试图弄清楚这些工具是否可与 Ansible 相媲美,但是否可以利用所有已经存在的 puppet 模块,或者是否以其他方式有所不同。
我对这两种工具都不太熟悉,希望知识渊博的人能够解释这两种工具之间的区别。
我可以看到两者都是无代理的,我认为这是一个优点 - 但我不清楚其他差异以及为什么一个会选择一个而不是另一个。 不是在寻找主观答案 - 而是寻找区分这两种工具的实际列表
puppet ×10
vagrant ×3
linux ×2
ansible ×1
apt ×1
chef-infra ×1
config ×1
converter ×1
cron ×1
librarian ×1
postgresql ×1
provisioning ×1
puppet-bolt ×1
ruby ×1
unzip ×1