puppet - 我的 Vagrant 机器支持 Augeas 吗?

标签 puppet vagrant augeas

我正在尝试在我的 Vagrant 机器上获得对 augeas 的支持。

我尝试使用这些指令安装一些包:

package { "augeas-tools":   ensure => installed }
package { "libaugeas-dev":  ensure => installed }
package { "libaugeas-ruby": ensure => installed }

当我尝试在 list 上使用 augeas 时,在 vm 启动后我收到此错误:
err: Could not find a suitable provider for augeas

我在 Vagrant 1.0.3 中使用了 precision32 官方盒子。

Vagrant 1.0.3 有 ruby​​ 1.8.7 和 puppet 2.7.14
$ ruby -v
$ ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
$ puppet help
$ Puppet v2.7.14

这是我的小 list php 类,包含在 之后 Apache 类(class), mysql 和其他类分别测试。
除了 augeas 命令之外,所有东西都可以正常工作。
class php {

    exec { "apt-update":
        command     => "/usr/bin/apt-get update",
        refreshonly => true;
    }

    package { "augeas-tools":   ensure => installed }
    package { "libaugeas-dev":  ensure => installed }
    package { "libaugeas-ruby": ensure => installed }

    package { "php5":               ensure => installed }
    package { "php5-cli":           ensure => installed }
    package { "php5-xdebug":        ensure => installed }
    package { "php5-curl":          ensure => installed }
    package { "php5-intl":          ensure => installed }
    package { "php5-imap":          ensure => installed }
    package { "php5-mcrypt":        ensure => installed }
    package { "php5-imagick":       ensure => installed }
    package { "php5-sqlite":        ensure => installed }
    package { "php5-gd":            ensure => installed }
    package { "php-apc":            ensure => installed }

    package { 
        "libapache2-mod-php5" : 
            ensure => installed,
            require => Package["php5"]
    }

    augeas { "php-cli":
        require =>  [
                        Package["php5"],
                        Package["augeas-tools"],
                        Package["libaugeas-dev"],
                        Package["libaugeas-ruby"],
                    ],
        context => "/etc/php5/cli/php.ini",
        changes => [
            "set date.timezone Europe/Rome",
            "set short_open_tag Off",
        ];
    }

    augeas { "php-apache":
        require =>  [
                        Package["php5"],
                        Package["augeas-tools"],
                        Package["libaugeas-dev"],
                        Package["libaugeas-ruby"],
                    ],
        context => "/etc/php5/apache2/php.ini",
        changes => [
            "set date.timezone Europe/Rome",
            "set short_open_tag Off",
        ];
    }

}

安装软件包后,使用“vagrant ssh”登录vagrant机器,我启动:
vagrant@precise32:~$ ruby -raugeas -e "puts Augeas.open"
#<Augeas:0xb77a3598>

提前致谢!

最佳答案

我将以下内容添加到我的 Vagrantfile 中,它开始工作了。

在声明 puppet provisioner 之前添加以下行,如果在 ubuntu 上:

config.vm.provision :shell, :inline => "sudo apt-get update && sudo apt-get install puppet -y"

这将更新您的 apt 软件包,然后更新最新版本已经修复的 puppet 客户端。

关于puppet - 我的 Vagrant 机器支持 Augeas 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894661/

相关文章:

apache - 在 puppetlabs-apache 中自定义默认虚拟主机

vagrant - 双向 Vagrant Rsync

xml - 通过 augeas 添加属性到 XML 根节点时出现问题

postgresql - 在 Vagrant 上使用 Puppet 配置 PostgreSQL

puppet - Puppet 中使用箭头的包含类和链接类之间的区别

ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError)

vagrant - 无法让 modernIE 的 vagrant specific box 与 vagrant 一起工作

vagrant - 厨房创建 new_box 命令不起作用

xml - 如何使用 Augeas 更新现有的或创建新的 XML 节点