在Ansible中执行脚本时PowerShell变量中的不同语言

在Ansible中执行脚本时PowerShell变量中的不同语言,powershell,ansible,Powershell,Ansible,你好! 我在playbook中有一个任务,它在powershell中运行代码 --- - name: Include vars include_vars: file: "global.yml" - name: Create failover cluster become: yes become_user: "{{ domain.domain_admin }}" become_flags: logon_type=interacti

你好!
我在playbook中有一个任务,它在powershell中运行代码

---
- name: Include vars 
  include_vars:
    file: "global.yml"

- name: Create failover cluster
  become: yes
  become_user: "{{ domain.domain_admin }}"
  become_flags: logon_type=interactive logon_flags=with_profile
  become_method: runas
  vars:
    ansible_become_pass: "{{ domain.password }}"
  win_shell: |
        ## Adding Witcher Disk
        $Quorum_disk = (Get-Volume | Where-Object {$_.FileSystemLabel -eq "Quorum"} | Get-Partition | Get-Disk).Number
        $CLuster_Quorum = (Get-ClusterAvailableDisk | Where-Object {$_.Number -eq $Quorum_disk}).Name
        $CLuster_Quorum >> C:\1.txt
        Get-Culture >> C:\1.txt
        Get-ClusterAvailableDisk | Where {$_.Number -eq $Quorum_disk} | Add-ClusterDisk
        Start-Sleep -Milliseconds 1500
        Set-ClusterQuorum -DiskWitness $CLuster_Quorum
在$CLuster\u Quorum中,我有磁盘的名称。当我在Powershell ISE中的本地服务器上运行此代码时,变量包含俄文符号,所有代码都可以正常工作。Ansible在英语语言变量中输入值,任务崩溃。我试图在单独的文件中执行这段代码,使用win_comand处理相同的问题。Get Culture告诉我Ansible使用遵循区域设置:
LCID-1049
名称-ru ru
DisplayName-俄语(俄罗斯)

有人遇到过这样的问题吗
我正在使用PowerShell 4.0和Windows Server 2012R2。Ansible版本为2.9,安装在Ubuntu 20.04上

提前谢谢你

错误消息

“stderr”:“Set-ClusterQuorum:打开资源时出错 “群集磁盘1”行:15字符:5集群集仲裁-DiskWitness $CLuster\u Quorum CategoryInfo ObjectNotFound:(:) [Set-ClusterQuorum],ClusterCmdleteException FullyQualifiedErrorId: ClusterObjectNotFound,Microsoft.FailoverClusters.PowerShell.SetClusterQuorumCommand“, “stderr_行”:[“Set-ClusterQuorum:打开时出错。” 资源“群集磁盘1.”,“第15行字符:5”,设置ClusterQuorum -DiskWitness$CLuster_Quorum”,类别信息,ObjectNotFound:(:)[Set-ClusterQuorum],ClusterCmdleteException FullyQualifiedErrorId: ClusterObjectNotFound,Microsoft.FailoverClusters.PowerShell.SetClusterQuorumCommand“], “标准输出”:“报告文件位置:C:\Windows\cluster\Reports\Create 2021.04.29上的群集向导VSRVCLS VSRVCLSааааааа1
“标准输出行”:[“报告文件位置: C:\Windows\cluster\Reports\Create cluster Wizard VSRVCLS on 2021年4月29日18月16日mht“名称”----
“VSRVCLSааааааа1


问题在于win_shell模块。我尝试使用ansible.windows.win_powershell,这很有帮助。变量开始包含我需要的语言符号


感谢您抽出时间!

我不了解您面临的实际问题(部分原因是您没有包含任何错误消息);是字符串literal
“Quorum”不匹配,因为<代码> FielSistMeLabor < /Cord>是其他内容吗?请考虑阅读SealthHeld@ MdNiel.Labor是匹配的。我附加了错误消息,问题是由于使用的语言。当我在PosiS壳IE上运行本地服务器上的脚本时,$CultSuthQualUm是“SyoSt*Y.S.E.Suth.Y.* 1”。Ansible将“群集磁盘1”放在$Cluster\u Quorum中,这会导致错误,因为“群集磁盘1”由于语言问题,系统中不存在。如果某个属性正在进行那样的本地化,那么肯定有一个更永久的标识符可以使用,而不受本地化的约束。这意味着可能
域。domain\u admin
的区域设置不像您的本地服务器帐户那样是ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru ru