我想部署个人 nextcloud 应用程序。
我已经使用 docker-compose 设置了 nextcloud,我应该使用哪个工具进行服务器配置管理?
我有以下事情需要处理。
- SSH 设置
- 内核强化
- 网络强化
- Docker 安装
- Git
- Nginx 安装
- SSL 设置(允许加密)
- 下一个云docker compose
- 迁移至下一个云
我研究过 Chef 和 Puppet,但它们似乎适用于更大的系统,我当前的应用程序是私有的且有限的。
是否可以使用 Google bazel 或任何类似产品来实现这些?
答案1
这是一个相当特定的观点问题,因此,根据我从事配置管理 5 年以上的工作经验,我将给出我的观点。
目前最流行的 3 种配置管理工具是木偶,厨师和Ansible。
它们都有明显的优势和劣势:
- Ansible完全由 SSH 驱动,所以我认为最容易上手和运行。在最基本的模式下,服务器本身无需安装任何附加软件,只需具有运行 SSH 的能力即可。
- 木偶拥有最丰富的现成模块,可用于常见服务器设置。我使用自定义模块来强化我几年前在 Puppet 中编写的所有服务器的 SSH 设置,它仍然运行良好。
- 厨师我认为可能是最“灵活”的:如果您需要做一些特定的事情,您可以直接为其编写 ruby 代码,而不必使用单独的 DSL。
就我个人而言,我认为 Puppet 是三者中最好的(坦白说,我在 Puppet 工作了 3 年,所以我可能有偏见!)但这些年来我都用过它们,有时甚至同时用过所有!
这三者主要设计用于更大规模的基础设施,但都具有适用于个人服务器等较小部署的模式:Chef-Solo、Puppet-apply 和 Ansible-playbook。
最终,由您自行选择哪一个,或者根本不进行配置管理。