I'm trying to change CISCOASA word here using the output I got. I've tried using lineinfile module in ansible but the replacement is not in order.
ORIG JSON FILE:
{ "servers": [
{
"ingress": "CISCOASA",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": 22
},
{
"ingress": "CISCOASA",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12346,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
}
]}
REPLACE VALUES:
CISCOASA1
CISCOASA2
CISCOASA3
CISCOASA4
CURRENT OUTPUT:
{ "servers": [
{
"ingress": "CISCOASA4",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA3",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA2",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": 22
},
{
"ingress": "CISCOASA1",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12346,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
}
]}
DESIRED OUTPUT:
{ "servers": [
{
"ingress": "CISCOASA1",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA2",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
},
{
"ingress": "CISCOASA3",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12345,
"dest_ip": "IPADDRESS",
"dest_port": 22
},
{
"ingress": "CISCOASA4",
"protocol": "tcp",
"source_ip": "IPADDRESS",
"source_port": 12346,
"dest_ip": "IPADDRESS",
"dest_port": "ssh"
}
]}
Below is my task:
- name: Adding extracted ingress in file
become: yes
become_user: root
lineinfile:
path: /filepath/valid.json
regexp: "CISCOASA"
line: "\"ingress\": \"{{ item[0] }}\","
state: present
with_items:
- "{{ foo }}"
Thank you
this one do the trick :)