我目前正在采取合理的第一步,所以这可能是一个基本的问题。
我正在尝试configuration一个服务器,该服务器托pipe了几个网页,并公开了一些其他服务。 对于每个这些,我可以select希望能够
我目前也有angular色来设置名称服务器,让我们encryption,和防火墙。 什么是angular色之间沟通的最佳实践? 例如,Web服务器angular色是否知道如何为自己创build证书的确切命令,或者是否有将抽象方法抽象为通知调用的方法? 每个服务angular色应该能够写入我的防火墙configuration文件,还是应该以某种方式成为防火墙angular色的特权?
也许我在程序员的心态上太多了,但是我喜欢像“分离关注”这样的东西,我希望能够改变我的防火墙软件,而不必改变其他任何angular色。
由于显而易见的原因,不可能为你的问题提供一个确切的答案,但是让我至less指出一些问题,从程序员的angular度来看,其中一些将是非常容易理解的:
保持数据和逻辑分离。 ansible提供了使这个任务变得容易的手段,但是您需要以function性的方式创build您的angular色,也就是通过数据来configuration您的angular色。
写你的angular色,让他们只做一件事,但做得很好。 这可以提高angular色的可重用性,并简化维护工作。
定义驱动angular色行为的数据时,不要复杂的数据结构。 有很多可以使用的迭代器,甚至可以提供自己编写的迭代器,但是如果您发现自己需要比with_subelements更复杂的东西,那么现在是重新考虑数据结构的时候了。
使用标签。 您可以使用组和标签的组合来限制操作。
使用register s来捕获您的行为的结果,并在随后的行动中使用它们来使用when语句来控制stream。 不过,不要过于复杂的条件。
set_facts和assert可以帮助收集有关目标系统状态的数据。
幂等。 保持你的行为是幂等的,这样你就不需要在行动之上build立太多的逻辑。 根据目标状态(理想状态)而不是程序语言来思考。