Расширение в Ansible не является рекурсивным. Попробуйте расширение ниже
host_peer: {{ office1[ansible_hostname].peer }}
Например, игра ниже
- hosts: test_01
gather_facts: yes
vars:
office1:
test_01:
myip: 10.20.20.30
peer: 10.20.20.40
tasks:
- template:
src: template.j2
dest: /scratch/test_01.cfg
с шаблоном.j2
# Config File:
host_name: {{ ansible_hostname }}
host_peer: {{ office1[ansible_hostname].peer }}
дает:
# cat /scratch/test_01.cfg
# Config File:
host_name: test_01
host_peer: 10.20.20.40
Чтобы ответить на вопрос
Создать переменную из возможных фактов
можно использовать lookup vars . Например, игра ниже
vars:
var1: var1
var2: var2
var3: var3
tasks:
- debug:
msg: "{{ lookup('vars', 'var' + item) }}"
with_sequence: start=1 end=3
дает (сокращенно):
"msg": "var1"
"msg": "var2"
"msg": "var3"