ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

用于mysql配置失败的Puppet中的Augeas

2019-07-08 09:09:12  阅读:280  来源: 互联网

标签:nginx mysql puppet augeas


我正在开发一些基本的Puppet清单和模块,以便在部署服务器之后安装我的应用程序依赖项.这是一套基本的东西: –

> OS – > Ubuntu 14.04 LTS
> Nginx
> PHP5-FPM
> MySQL

简单吧?

在大多数情况下,一切都进展顺利;直到我偶然发现使用Augeas使用我的自定义配置项更新配置文件的能力.我已经设置了PHP配置项而没有任何问题,因此:

augeas { 'php.ini':
    require => [
        Package['php5-fpm'],
        Package['libaugeas-ruby'],
    ],
    notify => Service['php5-fpm'],
    context => '/files/etc/php5/fpm/php.ini',
    changes => [
        'set PHP/cgi.fix_pathinfo 0',
    ],
}

这很好用.没问题.

但是,现在我来到MySQL配置文件,我正在使用以下(这几乎是一个复制和粘贴工作)

augeas { 'my.cnf':
    require => [
        Package['mysql-server'],
        Package['libaugeas-ruby'],
    ],
    notify => Service['mysql'],
    context => '/files/etc/mysql/my.cnf',
    changes => [
        'set mysqld/bind-address 0.0.0.0',
    ],
}

不幸的是,这只是不起作用.我查看了augeas关于它随附的镜头的文档,没有任何问题.以下是Puppet apply命令的初始输出.

Error: /Stage[main]/Mysql/Augeas[my.cnf]: Could not evaluate: Save failed with return code false, see debug

当然,下一个逻辑步骤是查看调试信息.其中包含以下信息.

Debug: Augeas[my.cnf](provider=augeas): sending command 'set' with params ["/files/etc/mysql/my.cnf/mysqld/bind-address", "0.0.0.0"]
Debug: Augeas[my.cnf](provider=augeas): Put failed on one or more files, output from /augeas//error:
Debug: Augeas[my.cnf](provider=augeas): /augeas/files/etc/mysql/my.cnf/error = put_failed
Debug: Augeas[my.cnf](provider=augeas): /augeas/files/etc/mysql/my.cnf/error/path = /files/etc/mysql/my.cnf
Debug: Augeas[my.cnf](provider=augeas): /augeas/files/etc/mysql/my.cnf/error/lens = /usr/share/augeas/lenses/dist/mysql.aug:39.13-.60:
Debug: Augeas[my.cnf](provider=augeas): /augeas/files/etc/mysql/my.cnf/error/message = Failed to match

解决方法:

好的,所以我设法让SOMETHING发生了;但是没有完全理解发生了什么.

在提出上述问题之前,我检查了可用的镜片,我在http://augeas.net/stock_lenses.html的列表中看到了PHP和MySQL镜头

这两个链接都不能正常地引导你进入文档 – 所以,知道PHP镜头工作在’设置部分/设置值’类型的方式,我假设它与MySQL镜头相同.

事实并非如此.以下语法对我有用.

augeas { 'my.cnf':
    require => [
        Package['mysql-server'],
        Package['libaugeas-ruby'],
    ],
    notify => Service['mysql'],
    context => '/files/etc/mysql/my.cnf',
    changes => [
        "set target[.='mysqld']/bind-address 0.0.0.0",
    ],
}

以下两个资源是我找到信息的地方.如果有人有任何其他文件可以指出我,我会非常感激.

这让我了解了语法应该是什么: – https://www.adammalone.net/post/playing-augeas-fun-and-profit#.VXAEy1yqpBc

这个剧本的第62-65行重申了它: – https://github.com/example42/puppet-mysql/blob/master/manifests/augeas.pp

标签:nginx,mysql,puppet,augeas
来源: https://codeday.me/bug/20190708/1400407.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有