我们已经设置了一个服务器来运行一个小型协会的基础设施。到目前为止,我们已经尝试使用 Ansible 管理配置,但这并没有取得很大的成功。也许我们做错了。
原则上,我们的想法是这个服务器在大部分时间都将保持独立,人们会在蓝色月亮中添加或更改一次内容。这使得在服务器上配置和运行的任何内容都有详细记录和清晰的记录至关重要,因为不经常管理系统的人必然会失去概览(更不用说记住细节了)。此外,随着时间的推移,将管理此服务器的一组人员的组成将发生变化(随着人们离开并加入“委员会”)。
我们从一个干净的安装开始,每当我们想要设置一些东西(nginx、phpfpm、postfix、防火墙、sftp、munin 等)时,都会在 ansible 中添加角色。也许由于我们的经验不足,我们当然永远无法按照我们需要的方式一次性输入一组 ansible 任务,也因为配置有点反复试验的过程。这意味着在实践中,我们通常会首先配置我们想要在服务器上运行的任何服务,然后转换为 ansible 任务。你可以看到这是怎么回事。人们忘记然后测试任务,或者害怕这样做有破坏事物的风险,或者更糟的是:我们忘记或忽略向 ansible 添加东西。
今天,我们对 ansible 配置实际上反映了服务器上的配置几乎没有信心。
目前我看到三个主要问题:
这里的一个重要考虑因素是,无论我们最终做什么,新手都应该很容易掌握诀窍而无需大量练习。
是否有可行的替代方案仍然提供一些保证和检查(类似于将 Ansible 文件合并到 some master
)“配置事物并写下您所做的事情”未能提供?
编辑:我们已经考虑过/etc
使用 git。有没有一种合理的方法来保护机密(私钥等),但仍然可以以某种方式在服务器外部使用配置存储库?