Ansible and SQL Server – the power of format_json
Example of Ansible tasks to manipulate MS SQL Server DB – format_json + ConvertTo-Json is used to convert the PowerShell invoke-sqlcmd command line response into JSON.
- hosts: db_servers
gather_facts: no
tasks:
-name: 'get all Address Ids in TW'
win_shell: "invoke-sqlcmd -username \"DB_USER\" -password \"DB_PASS\" -Query \"SELECT * FROM Addresses WHERE Postcode LIKE 'TW%'\" | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors | ConvertTo-Json"
register: response
-set_fact:
addresses: "{{ response.stdout|from_json}}"
-name: 'remove Addresses in TW'
win_shell: "invoke-sqlcmd -username \"DB_USER\" -password \"DB_PASS\" -Query \"DELETE FROM Addresses WHERE AddressId = {{ item.AddressId }}\""
with_items: "{{ addresses }}"
