Hello list,
I've got a complex dictionary I'm using to configure haproxy with,
which looks something like this (non-relevant portions have been
removed):
{
"l7config": {
"stats_password": "AirwavesEyedrops",
"frontends": [
{
"frontend_id": "6dcb7365-1b6c-4f24-a7ff-79590af2d536",
"vip": "192.0.1.200",
"service": "http",
"port": 80,
"backend_id": "49cd3849-455c-4e5c-9e13-70cda7be0397"
},
{
"frontend_id": "01f99586-c14c-4c99-99e0-cf6effac3ee8",
"vip": "192.0.1.200",
"port": 443,
"service": "http",
"backend_id": "49cd3849-455c-4e5c-9e13-70cda7be0397",
"tls": {
"pem": "-----BEGIN PRIVATE KEY-----\nMII
...snip... 7w==\n-----END CERTIFICATE-----\n",
"domain": "foobar.com"
}
}
],
"backends": [
{
...
},
...
]
}
}
As you can see, I've got two frontend configurations, one which has a
'tls' field and the other which doesn't. What I need to do is iterate
over the frontends and discover which ones have the tls field, then
write out the 'pem' certificates into a file.
I have this code in my playbook which isn't working as I think it
should, as it always seems to just skip the task:
- name: Write out SSLs to files
copy: dest=/etc/ssl/{{item.tls.domain}}.pem owner=root
group=root mode=0600 content={{item.tls.pem}}
with_items:
- l7config.frontends
when: item.tls is defined
I suspect I'm on the right track, but I'm missing something blindingly
obvious and stupid. I just need someone to point out where I'm being
daft
Thanks
Dane