我有一个ansible脚本,它使用其主机名创建n个docker容器,并且还创建了一个nginx服务器。我正在使用j2模板推送一个新的conf。
如何在上游部分中将主机名动态添加到该conf?
upstream abc {
server abc1.abc.com:181;
server abc2.abc.com:181;
}
因此,如果我将计数更改为3,则应添加abc3
upstream abc {
server abc1.abc.com:181;
server abc2.abc.com:181;
server abc3.abc.com
}
答案 0 :(得分:0)
您可以使用lineinfile
模块和sequence
插件来实现。我想主机名将始终具有相同的模式,因此您可以执行以下操作:
vars:
container_count: 5
# You can set here the amount of containers you want to deploy
- name: Generate conf
lineinfile:
path: /you_conf_file_path/file.conf
insertafter: '^upstream abc {'
line: "server abc{{ idx + 1 }}.abc.com"
with_sequence: count="{{ container_count }}"
loop_control:
index_var: idx
希望这可以为您指明正确的方向...