【发布时间】:2019-03-08 10:40:05
【问题描述】:
我正在尝试使用 ansible 在远程 SQL 服务器实例上运行查询 调用-sqlcmd。它无法在其中一个实例上执行并返回结果。 在所有其他人的运行没有错误。
不知道这是否是 Ansible 或 powershell 或 SQL Server 让 ansible 通过 win-shell 查询的问题。
- hosts: localhost
gather_facts: false
tasks:
- name: kerberos ticket for individual svc account
include_tasks: dbserveraudit_kerbinit.yml
vars:
ansible_user: "{{ hostvars[item]['svc_user'] }}"
with_items: "{{ groups['current_sqlservers'] }}"
- hosts: management
gather_facts: false
tasks:
- name: Test sql Connection using svc account
include_tasks: **dbserveraudit_checksqlconnectivity**.yml
vars:
ansible_user: "{{ hostvars[item]['svc_user'] }}@{{admin_domain | upper }}"
sqlserver: "{{ hostvars[item]['svc_user'] | regex_replace('svc','') }}"
with_items: "{{ groups['current_sqlservers'] }}"
dbserveraudit_checksqlconnectivity.yml
- block:
- name: Connect and run query on current db server
win_shell: Invoke-Sqlcmd -Query "SELECT SERVERPROPERTY('ServerName')" -ServerInstance {{ sqlserver }} -Verbose -OutputSqlErrors 1 -AbortOnError -querytimeout 65335 -Debug
register: connectsql
ignore_errors: true
错误我得到是-
"Invoke-Sqlcmd : Windows PowerShell 处于非交互模式。阅读 和提示\r\n功能不可用。\r\n在第 1 行 char:65\r\n+ [控制台]::InputEncoding = New-Object Text.UTF8Encoding $假; \r\nInvoke-Sqlcmd -Q ...\r\n+
+ CategoryInfo : InvalidResult: (US02PRDSQL271B:PSObject) [Invoke \r\n -Sqlcmd], PSInvalidOperationException\r\n + FullyQualifiedErrorId : ExecutionFailed,Microsoft.SqlServer.Management.P \r\n owerShell.GetScriptCommand",
【问题讨论】:
-
在这里发布您使用的错误和命令将非常有用。当你没有说代码,或者代码产生的错误时,调试代码真的很难。
-
@Larnu 谢谢你的指出。所以我们有一个循环调用任务簿的剧本。都添加了 sn-p
标签: sql sql-server powershell ansible