如何通过Ansible playbook在远程服务器上运行IBM DB2 bind命令

如何通过Ansible playbook在远程服务器上运行IBM DB2 bind命令,ansible,db2,bind,Ansible,Db2,Bind,我有一个剧本,如下所示,用于绑定IBM DB2 SQL: 任务: -名称:IBM DB2绑定程序 win_命令:“D:test\db2BindJob.cmd” 变成:是的 成为用户:db2\u admin 以下2个cmd文件都位于Ansible托管节点上(Windows Server 2012) db2BindJob.cmd db2bind.cmd 我成功运行此剧本,没有任何错误消息(确定=2,…,失败=0,…) 但是程序A.bnd没有被绑定到DB\u X(换句话说,绑定失败,无效) 我也尝试

我有一个剧本,如下所示,用于绑定IBM DB2 SQL:

任务:
-名称:IBM DB2绑定程序
win_命令:“D:test\db2BindJob.cmd”
变成:是的
成为用户:db2\u admin
以下2个cmd文件都位于Ansible托管节点上(Windows Server 2012)

db2BindJob.cmd

db2bind.cmd

我成功运行此剧本,没有任何错误消息
(确定=2,…,失败=0,…)
但是
程序A.bnd
没有被绑定到
DB\u X
(换句话说,绑定失败,无效)

我也尝试用
win\u shell
替换
win\u命令
,但是,它仍然无法通过Ansible playbook绑定
program\u A.bnd

当我试图在托管节点上打开命令窗口以直接运行
D:\test\db2BindJob.cmd
时,
程序A.bnd
已成功绑定到
DB\u X

有什么问题吗?

问题已解决。将“db2cmd D:\test\db2bind.cmd”更改为“db2cmd-id:\test\db2bind.cmd”它就可以工作了!(在共享同一个DB2命令窗口并继承文件句柄的同时,按照-i选项执行db2cmd命令)

问题已解决。将“db2cmd D:\test\db2bind.cmd”更改为“db2cmd-id:\test\db2bind.cmd”,它就可以工作了!(在共享同一DB2命令窗口并继承文件句柄的同时,在-i选项后面执行db2cmd命令)


这是正确的答案

在远程机器上是否为Ansible正确设置了Db2环境?您可以在作业中运行简单的连接吗?Ansible是否保留一个日志文件,显示批处理文件中的stdout和stderr??批处理文件具有零错误检查,它们不会验证其预请求是否已到位,或者任何单个命令是否已无错误完成。
@echo off
CD C:\Program Files\IBM\SQLLIB\BIN
db2cmd D:\test\db2bind.cmd
db2 connect reset
db2 connect to DB_X user user_name using user_pwd
db2 bind D:\test\program_A.bnd isolation ur datetime iso collection TEST grant public
db2 connect reset