如何 运行 IBM DB2 通过 Ansible 剧本在远程服务器上绑定命令

How to run IBM DB2 bind command on remote server through Ansible playbook

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

tasks:
- name: IBM DB2 bind a program_A
  win_command: 'D:test\db2BindJob.cmd'
  become: yes
  become_user: db2_admin

及以下 2 个 cmd 文件都在 Ansible 托管节点上(Windows Server 2012)

db2BindJob.cmd

@echo off
CD C:\Program Files\IBM\SQLLIB\BIN
db2cmd D:\test\db2bind.cmd

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

我运行这个剧本成功没有任何错误信息(ok=2, ..., failed=0, ...) 但是 program_A.bnd 没有 绑定到 DB_X (换句话说,绑定失败,没有生效)。

我也厌倦了用win_shell替换win_command,但是,它仍然无法通过Ansible playbook绑定program_A.bnd

当我尝试在受管节点上直接打开命令window到运行 D:\test\db2BindJob.cmd时,然后, program_A.bnd 已成功绑定到 DB_X

有什么问题吗?

问题已解决。将“db2cmd D:\test\db2bind.cmd”更改为“db2cmd -i D:\test\db2bind.cmd”作品! (在 -i 选项之后执行 db2cmd 命令,同时共享相同的 DB2 命令 window 并继承文件句柄)

问题已解决。将 "db2cmd D:\test\db2bind.cmd" 更改为 "db2cmd -i D:\test\db2bind.cmd" 即可! (在共享相同的 DB2 命令 window 并继承文件句柄的同时,在 -i 选项后执行 db2cmd 命令)

答案正确!!