今天测试部署Zabbix,本来以前是正常的,今天莫名其妙报错。测试后发现是Augeas出现问题,无论如何都不执行。于是采用调试模式:

puppet agent --test --verbose --debug

然后捕捉到了下面的信息:

Debug: Augeas[update-php-parma](provider=augeas): Opening augeas with root /, lens path , flags
Debug: Augeas[update-php-parma](provider=augeas): Augeas version 0.9. is installed
Debug: Augeas[update-php-parma](provider=augeas): Loading failed for one or more files, output from /augeas//error:
Debug: Augeas[update-php-parma](provider=augeas): /augeas/files/etc/ntp.conf/error/pos =
Debug: Augeas[update-php-parma](provider=augeas): /augeas/files/etc/ntp.conf/error/line =
Debug: Augeas[update-php-parma](provider=augeas): /augeas/files/etc/ntp.conf/error/char =
Debug: Augeas[update-php-parma](provider=augeas): /augeas/files/etc/ntp.conf/error/lens = /usr/share/augeas/lenses/dist/ntp.aug:115.14-118.40:
Debug: Augeas[update-php-parma](provider=augeas): /augeas/files/etc/ntp.conf/error/message = Iterated lens matched less than it should
Debug: Augeas[update-php-parma](provider=augeas): Will attempt to save and only run if files changed
Debug: Augeas[update-php-parma](provider=augeas): sending command 'set' with params ["/etc/php.ini/PHP/date.timezone", "Asia/Shanghai"]
Debug: Augeas[update-php-parma](provider=augeas): sending command 'set' with params ["/etc/php.ini/PHP/post_max_size", "16M"]
Debug: Augeas[update-php-parma](provider=augeas): sending command 'set' with params ["/etc/php.ini/PHP/max_execution_time", ""]
Debug: Augeas[update-php-parma](provider=augeas): sending command 'set' with params ["/etc/php.ini/PHP/max_input_time", ""]
Debug: Augeas[update-php-parma](provider=augeas): sending command 'set' with params ["/etc/php.ini/MySQL/mysql.default_socket", "/mysql/var/mysql.sock"]
Debug: Augeas[update-php-parma](provider=augeas): Skipping because no files were changed
Debug: Augeas[update-php-parma](provider=augeas): Closed the augeas connection

首先,没有修改过ntp.conf文件,所以很纳闷啊~(呵呵,刚想起来,ntp.conf中的server写成service,所以才会报错,一个小坑……)

在app_zabbix::conf中的配置节是这么写的

augeas {"update-php-parma" :
context => "/etc/php.ini",
changes => [
"set PHP/date.timezone Asia/Shanghai",
"set PHP/post_max_size 16M",
"set PHP/max_execution_time 300",
"set PHP/max_input_time 300",
"set MySQL/mysql.default_socket /mysql/var/mysql.sock",
],
notify => Service["httpd"],
}

后来在测试机上测试了下,需要安装augeas:

augtool> set "/etc/php.ini/PHP/date.timezone" "Asia/Shanghai"
augtool> save
augtool> get "/etc/php.ini/PHP/date.timezone"
/etc/php.ini/PHP/date.timezone = Asia/Shanghai

直接在命令行中执行就失败(话说我写日志的时候就OK了,之前怎么弄都无法写入)。

呃……解决办法是,所有的context都必须是/files下的,如

augeas {"update-php-parma" :
context => "/files/etc/php.ini",
changes => [
"set PHP/date.timezone Asia/Shanghai",
"set PHP/post_max_size 16M",
"set PHP/max_execution_time 300",
"set PHP/max_input_time 300",
"set MySQL/mysql.default_socket /mysql/var/mysql.sock",
],
notify => Service["httpd"],
}

我去撞墙了……之前写成file当然没用了,后来又去掉了,这就是不认真看官方文档的下场……

Puppet学习:Augeas的怪问题的更多相关文章

  1. Puppet学习笔记(CentOS6.3+Puppet3.01)

    Puppet学习笔记(CentOS6.3+Puppet3.01)  技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...

  2. puppet学习笔记(二)

    在puppet安装完成之后我们就可以动手开始第一个puppet实验了,此实验就以批量推送文件为例吧. 1.获取module路径 这里的module就是指一个模块,可以把puppet想象成一个个项目的部 ...

  3. puppet学习笔记(一)

    之前搞了一个月zabbix,基本上是能熟练使用了,不过在后来部署的时候发现这玩意在部署的时候机子少还行,机子多了手动安装手会残的.第一反应是用puppet,后来师父直接用puppet搞定了.索性自己也 ...

  4. Puppet学习:pp文件权限问题

    由于内网的Puppet还是在测试中,所以对文件权限等内容未做过多关注. 今天报了错误: Error: Could not retrieve catalog from remote server: Er ...

  5. puppet学习:文件夹权限的问题

    之前Zabbix自动部署的文件夹结构总觉得别扭,今天下午抽空调整了下.调整完后,依然是例行的测试. 在客户端执行puppet agent -t时,报错如下: Failed to generate ad ...

  6. puppet学习:类与类的依赖关系的问题

    今天在部署Zabbix的Proxy时,在负责安装的Exec中去掉了一些无关的Package的依赖,结果,就出现了依赖关系的问题. 在zabbix::install中,我写的是require mysql ...

  7. puppet学习笔记

    puppet优势:容易理解.用户较多.门槛低.简单.安装配置文件较少 puppet使用Ruby语言开发,安装puppet需要安装Ruby puppet运行环境:Redhat.Centos.Window ...

  8. Centos 7 Puppet之foreman介绍安装测试

    一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...

  9. 配置管理工具 Puppet的安装和使用

    今天碰到一个linux下的puppet的问题,才发现原来这个是 用ruby语言编写的自动化的管理工具.有兴趣的同学,可以学习下. 这里重点讲述下 mac下 puppet的安装方法: 在Mac下采用Gi ...

随机推荐

  1. smrt analysis 软件安装

    pacbio 公司把三代测序常用软件整合起来,做成了一个在线的分析软件,类似于galaxy; 安装过程如下,参考官网给的指导手册 http://www.pacb.com/wp-content/uplo ...

  2. jfinal框架的初级学习

    1.同strust2,使用jfinal框架首先需要在web.xml配置自己的过滤器(com.jfinal.core.JFinalFilter),并初始化JFinalConfig类. <filte ...

  3. 【Java面试题】27 多线程笔试面试概念问答

    第一题:线程的基本概念.线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程,是CPU使用的基本单元:它由线程ID.程序计数器.寄存器集合和堆栈组成.它与属于同一进程的其他线程共享其代码段.数据 ...

  4. App 应用通过网页打开 App Store

    NSURL *url = nil; if ([[[UIDevice currentDevice] systemVersion] intValue] >= 7.0) { //iOS7 使用旧的网址 ...

  5. c++ 向main传递参赛

    1.今天写了个批处理文件 准备向main传递参赛  发现在vs2008运行正常 vs2010运行只有首字母 2.需要在项目--属性--常规-字符集里面设置成多字节就好了,以前是unicode 3.因为 ...

  6. 关于MFC中的OnPaint和OnDraw

    当窗口发生改变后,会产生无效区域,这个无效的区域需要重画. 一般Windows会发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化). 非客户区的重画系统自己 ...

  7. 笔记:php有那几种错误提示和查错方法

    php有哪几种错误提示 1.notice : 注意 2.waring : 警告 3.error : 错误 PHP中都有哪几种查错方法? 1.语法检查--php配置文件里,把错误显示选项都打开或者代码开 ...

  8. [jquery] jQuery 选择器>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. oracle的常用函数 instr() 和substr()函数

    from:http://1055592535.iteye.com/blog/1676235 在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 在一个字符串中查找 ...

  10. SQLServer------如何快速插入几万条测试数据

    方法一: 1.建表 if OBJECT_ID('test') is not null drop table test go create table test (id ,),vid ), constr ...