SQL Ansible 中的服务器数据库查询
SQL Server database queries in Ansible
我想知道社区中是否有人使用 Ansible 来操作 Microsoft SQL 服务器数据库?
我们想在用 Ansible 编写的环境配置脚本中添加一个任务,将 INSERT
行放入 SQL 服务器 table。这些行将具有在我们的变量文件中指定的参数。
我一直无法找到实现此目的的特定 Ansible 模块,所以想听听是否有人以其他方式取得了成功?
Ansible db specific modules 但 none 可用于在 Microsoft SQL 服务器上启动查询。
win_shell
在这方面是你的朋友。
我从你的场景中看到的:
- 使用您的变量为您的查询创建一个模板
- 使用
template
模块将模板内容推送到您的服务器
- 使用
win_shell
将该文件提供给您的 mssql 命令行执行。
- 最终删除推送的文件。
为了完整性,这里是 Ansible 中使用的解决方案的语法 SELECT & INSERT for Microsoft SQL Server:
插入
- name: 'insert row to SQL server DB'
win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"INSERT INTO Addresses (DoorNum,Street,Town,PostCode) VALUES ({{ item.doornum }},'{{ item.street }}','{{ item.town }}''{{ item.postcode }}')\""
SELECT
- name: 'select from SQL server DB'
win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"SELECT ID FROM Addresses WHERE PostCode = '{{ item.postcode }}'\" | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors | ConvertTo-Json"
register: response
- set_fact:
ids: "{{ response.stdout|from_json}}"
- debug:
var: ids
我想知道社区中是否有人使用 Ansible 来操作 Microsoft SQL 服务器数据库?
我们想在用 Ansible 编写的环境配置脚本中添加一个任务,将 INSERT
行放入 SQL 服务器 table。这些行将具有在我们的变量文件中指定的参数。
我一直无法找到实现此目的的特定 Ansible 模块,所以想听听是否有人以其他方式取得了成功?
Ansible db specific modules 但 none 可用于在 Microsoft SQL 服务器上启动查询。
win_shell
在这方面是你的朋友。
我从你的场景中看到的:
- 使用您的变量为您的查询创建一个模板
- 使用
template
模块将模板内容推送到您的服务器 - 使用
win_shell
将该文件提供给您的 mssql 命令行执行。 - 最终删除推送的文件。
为了完整性,这里是 Ansible 中使用的解决方案的语法 SELECT & INSERT for Microsoft SQL Server:
插入
- name: 'insert row to SQL server DB'
win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"INSERT INTO Addresses (DoorNum,Street,Town,PostCode) VALUES ({{ item.doornum }},'{{ item.street }}','{{ item.town }}''{{ item.postcode }}')\""
SELECT
- name: 'select from SQL server DB'
win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"SELECT ID FROM Addresses WHERE PostCode = '{{ item.postcode }}'\" | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors | ConvertTo-Json"
register: response
- set_fact:
ids: "{{ response.stdout|from_json}}"
- debug:
var: ids