在Ansible中执行appcmd命令的问题及解决方案

40次阅读
没有评论

问题描述

在使用Ansible时尝试执行以下的appcmd命令,但是遇到了错误。用户已经尝试使用引号将参数括起来,但仍然无法解决问题。以下是用户的具体操作和问题描述。

- name: Add authorization rules to FTP site
  win_command: appcmd.exe
  args:
    chdir: C:\Windows\System32\inetsrv\
    stdin: set config "FTP_FW"
    section: system.ftpServer/security/authorization /+"[accessType='Allow',roles='domain\usera',permissions='Read, Write']" /commit:apphost

用户也在评论中提到了两个问题:
1. 是否可以将操作格式化为一个Playbook,并提供您收到的错误消息?
2. “I trying to execute the below command and running into errors”,请附上出现的错误信息。

解决方案

在这里,我们将为您提供使用Ansible执行appcmd命令的正确方式,并解决可能遇到的问题。

方案1:格式化为Playbook

首先,让我们将操作格式化为一个Ansible Playbook,以便更清晰地执行命令。

- name: Add authorization rules to FTP site
  win_command: appcmd.exe
  args:
    chdir: C:\Windows\System32\inetsrv\
    stdin: set config "FTP_FW"
    section: system.ftpServer/security/authorization /+"[accessType='Allow',roles='domain\\usera',permissions='Read, Write']" /commit:apphost

方案2:修正错误的命令

根据用户提供的信息,问题可能出在将参数放在stdin中。正确的做法是将所有参数都包含在win_command中,而不是放在stdin中。

- name: Add authorization rules to FTP site
  win_command: appcmd.exe set config "FTP_FW" /section:system.ftpServer/security/authorization /+"[accessType='Allow',roles='domain\\usera',permissions='Read, Write']" /commit:apphost
  args:
    chdir: C:\Windows\System32\inetsrv\

方案3:处理错误消息

如果您遇到错误消息,请将错误消息提供给我们,以便我们更详细地分析和解决问题。通常情况下,错误消息可以提供有关出现问题的原因的线索。

请注意:在上述方案中,我们假设了domain\\usera是正确的用户角色表示法。如果您的角色表示法不同,请相应地进行调整。

希望以上解决方案能够帮助您成功执行appcmd命令,并顺利实现您的操作目标。如果您遇到任何进一步的问题,请随时提供更多详细信息,我们将尽力帮助您解决问题。

正文完