Sql server Ansible中的SQL Server数据库查询
我想知道社区中是否有人使用Ansible操作Microsoft SQL Server数据库 我们希望向用Ansible编写的环境配置脚本中添加一个任务,该脚本将Sql server Ansible中的SQL Server数据库查询,sql-server,ansible,ansible-inventory,Sql Server,Ansible,Ansible Inventory,我想知道社区中是否有人使用Ansible操作Microsoft SQL Server数据库 我们希望向用Ansible编写的环境配置脚本中添加一个任务,该脚本将向SQL Server表中插入行。这些行将具有在变量文件中指定的参数 我无法找到实现此目的的特定Ansible模块,因此想知道是否有人在其他方面取得了成功?Ansible有,但没有人可以在Microsoft SQL Server上启动查询 在这种情况下,他是你的朋友 我如何从您的场景中看到它: 使用VAR为查询创建模板 使用模板模块将模
向SQL Server表中插入行。这些行将具有在变量文件中指定的参数
我无法找到实现此目的的特定Ansible模块,因此想知道是否有人在其他方面取得了成功?Ansible有,但没有人可以在Microsoft SQL Server上启动查询
在这种情况下,他是你的朋友
我如何从您的场景中看到它:
- 使用VAR为查询创建模板
- 使用
模板
模块将模板化内容推送到服务器
- 使用
win_shell
将该文件提供给mssql命令行执行
- 最终删除推送的文件
为完整起见,以下是Ansible中用于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 }}')\""
- 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
选择
- 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 }}')\""
- 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
我看到有“invoke sqlcmd”-win_shell应该能够驾驶-我现在已经尝试了你在Ansible中建议的win_shell
调用invoke sqlcmd
例如:-name:'invoke sql test'
win_shell:“invoke sqlcmd-用户名'-密码'-查询”“从表名中选择*”