标签: puppet

puppet chown/chmod对批处理目录下的文件

在puppet中,您可以通过执行以下操作来chown/chmod单个文件:

file {
    '/var/log/mylog/test.log':
    ensure  => 'present',
    mode    => '0644',
    owner    => 'me';
}
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. ensure =>'present'将确保'/var/log/mylog/test.log'存在,如果它不存在则创建它.如果文件存在,我有什么方法可以让它做动作,如果文件不存在,不打扰创建/删除它,只是忽略它并继续.

  2. 假设我在/ 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

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

木偶厨师转换器

是否有将 Puppet 脚本转换为 Chef 的转换器?

我找到了将 Chef 脚本转换为 Puppet https://github.com/relistan/chef2puppet 的ruby 脚本,但我需要 puppet2chef。

converter puppet chef-infra

4
推荐指数
1
解决办法
1630
查看次数

在Vagrant上使用Puppet配置PostgreSQL

我有一个木偶清单抵制我试图让它正常工作,因为我不是傀儡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)

postgresql provisioning puppet vagrant

4
推荐指数
1
解决办法
3990
查看次数

人偶失败并显示:无法分配内存-fork(2)

这是我的木偶命令:

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)

由Vagrant管理的Virtual Box上的SLES 11SP3

  • 1个处理器
  • 4GB RAM(与6GB配合使用)

    # Use VBoxManage to customize the VM. For example to change memory: vb.customize ["modifyvm", :id, "--memory", "4096"]

ruby linux unzip puppet vagrant

4
推荐指数
1
解决办法
4329
查看次数

Cron工作没有运行由puppet创建

我想将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)

所以这个清单做两件事,

  1. 它创建一个带有内容指定的文件/puupet/pls.sh,它实际上运行命令ls-ltr/etc/puppet
  2. 它以内部日常类别的cron作业形式输入,如果你看到最后一行即 ****/puppet/pls.sh \n,则表示每1分钟运行一次(为了测试,我保留了一个)

但是我没有在/ puppet /中获取文件dump.txt. 如果我运行sh /puppet/pls.sh,它运行完美并生成转储.

我无法理解故障在哪里.. :(

请说清楚..

谢谢Ankur

linux cron puppet

4
推荐指数
1
解决办法
9188
查看次数

在 Puppet 清单中使用“before”或“require”?

好的,我刚刚开始学习 Puppet 并阅读文档。据我所见:

  • require做同样的事情before
  • subscribe做同样的事情notify

显然,这些是在依赖关系的相对两侧添加的,但你明白我的意思了。

从代码可读性和可维护性方面来看,使用(每对中的)一个比另一个更好吗?我应该同时使用两者以获得最大清晰度还是这会使维护变得麻烦?想法?

puppet

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

木偶错误:找不到类 apt

发出 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

apt puppet vagrant librarian

4
推荐指数
1
解决办法
3136
查看次数

将散列附加到 Puppet4 中的一系列嵌套散列

给定的是 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)

如何将默认值添加到连接哈希中的每个哈希?

结果也可以是一个散列数组,但是一个与连接散列中的键相同的散列会很好。

puppet

4
推荐指数
1
解决办法
3774
查看次数

如何显示最后一次 puppet 代理运行的摘要?

作为 Ubuntu 管理员,我想知道每个或最后一次 puppet 代理运行的状态。我怎样才能用cli检查?我可以以人类可读的格式写入每次运行的日志吗?

configuration config puppet

4
推荐指数
1
解决办法
6721
查看次数

Puppet Bolt 是否具有与 Red Hat Ansible 相同的功能集?

昨天我在一个会议上与一些人谈论 Puppet Lab 的Bolt 1.0。我试图弄清楚这些工具是否可与 Ansible 相媲美,但是否可以利用所有已经存在的 puppet 模块,或者是否以其他方式有所不同。

我对这两种工具都不太熟悉,希望知识渊博的人能够解释这两种工具之间的区别。

我可以看到两者都是无代理的,我认为这是一个优点 - 但我不清楚其他差异以及为什么一个会选择一个而不是另一个。 不是在寻找主观答案 - 而是寻找区分这两种工具的实际列表

puppet ansible puppet-bolt

4
推荐指数
1
解决办法
2498
查看次数