我是Ansible的新手,但我必须维护一组剧本,这些剧本与在给定环境中要设置的服务相对应。需要为它们分配端口,证书等。这将导致许多文件具有基本上总是相同名称的列表以及对它们的分配。
在许多情况下,我认为我可以轻松地将service_name用作变量,但是当映射到IP,端口或其他数字标识符时,我还没有找到一种方法来确定性地为它们分配可重复的不同编号,并且最好保留即使添加新服务也是如此。我考虑过使用SQLite数据库存储服务并从其ID中生成值,但是我不知道如何将其与Ansible集成。
我认为分配越来越多的端口号并不是什么新鲜事。这是很多系统管理员每天要做的事情,因此必须有某种方法可以做到这一点。
编辑:我们直接添加端口号等,group_vars/all.yml
如下所示:
ports:
service1:1024
service2:1025
service3:1026
由于我们创建了其他监狱(BSD),并且清单将取决于要执行的角色,因此清单是自动生成的。
2
由于您可能仍然必须将服务添加到清单中,是什么阻止了您在此处手动添加特定的端口号?或者,如果您的库存是自动生成的,那么您可能应该在库存生成级别解决问题
—
SztupY
您能否附上一些Ansible片段?目前尚不清楚您是否正在使用
—
Woodland Hunter'3
group_vars
变量或将变量直接添加到清单文件中。还不清楚您的库存是如何生成的。
您是否考虑过使用像HashiCorp的Consul这样的服务发现工具?
—
Foghorn首席技术官