MySQL配置管理仍然是一个热门话题,我在与客户的对话中的许多场合都遇到了。
我认为这可能是一个好主意,开始一个博客系列——更深入地介绍一些不同的配置项和可能用于管理您的MySQL数据库结构的模块。
配置管理在我的职业生涯开始之前就已经存在。 我,我自己,最初开始使用Puppet与我的同事完成基础结构的集成。
他使我们能够以自动化的方式配置环境,并确保新环境包含相同的配置。
由于重复性,你可以在灾难发生时快速提供机器。这可以确保你专注于恢复实际数据,而不用担心机器的部署和配置。
连续部署是每个人都喜欢的:能够在自动回归测试需要一个配置管理方案后快速的自动部署更改。
像Puppet和Chef这样的解决方案可以在你的基础架构上维护和强制执行配置参数。这刚开始听起来让人困惑,但它对于维护一个良好的配置环境至关重要。
虽然阅读别人的代码可能伤害你到疯狂,但是它提供了你基础设施的真相。
配置管理可以自动执行重复任务(例如,用户授权,数据库创建,配置变量)以及安全更新,服务重启等。这些可能减少你的工作量并更快速的部署。
最流行的开源解决方案是Puppet,Chef,Ansible,和CFengine(以及其他的)。在这些解决方案中,我们将深入到前三个当中。
让我们首先给你一个快速,高级的介绍。
Puppet是一种用于描述环境所需状态的语言。Puppet客户端从服务器读取预期状态的目录,并在客户端上执行这些更改。该系统基于客户端/服务器准则。
Puppet默认有四个基本组件:
Puppet服务器:Java虚拟机提供Puppet的核心服务。
Puppet代理:从Puppet服务器请求配置目录信息的客户端库。
Hiera:键值查询数据库,可以存储和修改特定主机的值。
Facter:保留本地节点变量清单的应用程序。
如何在MySQL基础架构中集成puppet?
一个现有的puppet模块:这将允许你和你的团队创建用户,数据库,安装和配置MySQL。
使用社区Luke: 可能我的旧“地狱代码”模块仍在某处。
Chef包含一个基于Ruby声明性语言(如Puppet),它允许你为潜在的可集成技术编写cookbooks。Chef也是一个基于Server/Client的解决方案。客户端是chef节点,服务器端管理cookbooks,目录和recipes。
总之,Chef的组成为:
Chef服务器:管理多个cookbooks和目录。
Chef客户端(节点):实际系统从chef服务器请求目录信息。
工作站: 这是一个配置为运行Chef命令行工具的系统,该命令行用于同步Chef-repository或者Chef服务器。你也可以将其描述为Chef开发和工具环境。
点击这里以了解如何在你的MySQL基础架构中集成Chef。
Ansibl的起源和想象中不一样。系统工程师通常选择使用自己的管理脚本。这可能很麻烦,且难于维护。为什么不使用简单的,自动化且标准化的东西呢?Ansible填补了这些空白,并简化了Ansible目标的管理。
Ansible通过连接到你的节点(默认使用SSH连接)并推出Ansible模块。这些模块表示节点的期望状态,并且将被用于执行命令以获得期望的状态。
这个过程不同于Puppet和Chef,他们本质上是优选的Client/Server解决方案。
选择适合你的毒药(或神奇的药,你选择喜欢的措辞),每个解决方案都有它的好处。
请记住,在某些情况下运行复杂的Puppet或Chef架构可能是致命的。在这种情况下,像Ansible这样的解决方案可能是一个快速而容易集成的答案。
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务