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

问题描述 投票:0回答:4

我想使用我的控制节点 (CentOS) 运行远程 Windows 节点上的 run.bat 文件。是否可以?如果没有的话有什么替代方法吗?

windows batch-file ansible
4个回答
9
投票

查看本节 Windows 支持

因此,您要做的是创建一个与此类似的任务:

- name: run simple script
  script: run.bat

0
投票

将脚本(批处理文件)保存在控制服务器上。 Ansible 将脚本复制到远程主机,然后在那里执行。请参阅下面的示例 - 假设

run.bat
文件保存在控制服务器上的
/tmp
(不是最佳实践)目录中。

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

0
投票

我使用 Call,并且我更进一步,以防您尝试从 UNC 路径运行它,那么您可能还需要成为特权。

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

   - name: Run batch file
     win_shell:  |
       pushd \\UNC-path\scripts && 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

0
投票

我使用 Call,并且我更进一步,以防您尝试从 UNC 路径运行它,然后我们使用成为特权。

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

   - name: Run batch file
     win_shell:  |
       pushd \\UNC-path\Labos\Extern\nomadconffiles && 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
© www.soinside.com 2019 - 2024. All rights reserved.