在windows中使用ansible运行批处理文件



我想使用我的控制节点(CentOS)在我的远程窗口节点上运行run.bat文件。这可能吗?如果没有,还有其他办法吗?

看看这一节Windows支持

那么你要做的就是创建一个类似于这样的任务:

- name: run simple script
  script: run.bat

将脚本(批处理文件)保存在控制服务器上。Ansible将脚本复制到远程主机,然后在那里执行它。参见下面的示例—假设run.bat文件保存在控制服务器的/tmp(不是最佳实践)目录下。

- name: execute batch
  script: /tmp/run.bat

我使用Call,并且在您尝试从UNC路径运行它的情况下,我采取了进一步的步骤,然后您可能还需要成为privs。

请记住,如果您使用win_shell连接命令,我发现它们需要在同一行使用&&,我不能让它以其他方式工作。Python 3.11.2

   - name: Run batch file
     win_shell:  |
       pushd \UNC-pathscripts && Call "run.bat"
     args:
       executable: cmd
     vars:
       ansible_become: yes
       ansible_runas_user:       "{{ win_service_user }}"
       ansible_become_user:      "{{ win_service_user }}"
       ansible_become_password:  "{{ win_service_pass }}"
     register: res_run_batch                                                                                                                    
   - debug:
       var:  res_run_batch

我使用Call,并且在您试图从UNC路径运行它的情况下,我采取了进一步的步骤,然后我们使用成为privs。

请记住,如果您使用win_shell连接命令,我发现它们需要在同一行使用&&,我不能让它以其他方式工作。Python 3.11.2

   - name: Run batch file
     win_shell:  |
       pushd \UNC-pathLabosExternnomadconffiles && Call "run.bat"
     args:
       executable: cmd
     vars:
       ansible_become: yes
       ansible_runas_user:       "{{ win_user }}"
       ansible_become_user:      "{{ win_user }}"
       ansible_become_password:  "{{ win_pass }}"
     register: res_run_batch                                                                                                                    
   - debug:
       var:  res_run_batch

最新更新