我有一个 django 项目,部署后会提供 mysql-nss 服务。此双重使用数据库设置需要任何基本服务器用户自动部署。第一部分是在 localhost 上创建一个 sql 数据库,然后为服务器配置 mysql-nss。
然后,每台需要进行身份验证的客户端计算机不仅需要指向新服务器的 mysql 数据库,还需要指向访问数据的非常具体的 SQL 命令列表。这个指定使我相信应该将服务器和客户端设置打包以供部署。
我是否应该使用 JuJu charms 来设置服务器/客户端,是否应该使用 Debian 软件包来设置所有内容,包括覆盖 mysql-nss-bg 软件包的配置文件。或者我是否应该强迫用户学习 pupper 或类似技术来管理他们的客户端,并仅提供包含所需 sql 命令的模板配置?
最不复杂、最安全的解决方案是可取的。
答案1
(我曾请更有经验的人来研究这个问题,但我的下意识反应可能是也可能不是正确的答案。)
Juju 并不能真正满足您的需求,它不是适合这项工作的工具。Juju 用于部署到云,它并不是真正设计用来让您能够干扰单个客户端机器的。
您关于自定义 .deb 的想法似乎更好,但是这种“我需要在这些机器上安装这些包,然后我想以这种精确的方式配置它们”看起来更像是 puppet 或 chef 的用例。
您可以安装常用的 mysql 软件包,然后以脚本形式执行所有与数据库相关的操作。如果您有自定义的 mysql deb,那么您最终将不得不随着时间的推移维护这些 deb。
考虑到安全更新和维护所需的工作量,您可能最好使用库存包并在安装后根据自己的需求使用 chef/puppeting,而不是维护自己的自定义 deb。我不确定您的要求是什么,只是需要考虑一下。