我正在使用ansible win_shell模块在windows主机上运行以下命令,但收到错误“您不能在空值表达式上调用方法”
cmd:-
- name: Get ASG Instance id
win_shell: |
$ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName "{{ environment_name }}-asg v2").Instances | findstr \"InstanceId InService\"
$InstanceId=(echo $ASG) | findstr InstanceId
$InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).replace(' ','')
register: InService
note:- using {{ environment_name }} as a variable.CircleCI作业失败,错误如下;
amazon-ebs: "cmd": "$ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"dev-asg-v2\").Instances | findstr \"InstanceId InService\" $InstanceId=(echo $ASG) | findstr 'InstanceId' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).replace(' ','')",
amazon-ebs: "delta": "0:00:12.531289",
amazon-ebs: "end": "2020-02-12 12:12:35.640112",
amazon-ebs: "msg": "non-zero return code",
amazon-ebs: "rc": 1,
amazon-ebs: "start": "2020-02-12 12:12:23.108822",
amazon-ebs: "stderr": "You cannot call a method on a null-valued expression.\r\nAt line:1 char:291\r\n+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...\r\n+ ~~~~~~~~~~~~~~~~\r\n + CategoryInfo : InvalidOperation: (:) [], RuntimeException\r\n + FullyQualifiedErrorId : InvokeMethodOnNull\r\n \r\nYou cannot call a method on a null-valued expression.\r\nAt line:1 char:65\r\n+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n + CategoryInfo : InvalidOperation: (:) [], RuntimeException\r\n + FullyQualifiedErrorId : InvokeMethodOnNull",
amazon-ebs: "stderr_lines": [
amazon-ebs: "You cannot call a method on a null-valued expression.",
amazon-ebs: "At line:1 char:291",
amazon-ebs: "+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...",
amazon-ebs: "+ ~~~~~~~~~~~~~~~~",
amazon-ebs: " + CategoryInfo : InvalidOperation: (:) [], RuntimeException",
amazon-ebs: " + FullyQualifiedErrorId : InvokeMethodOnNull",
amazon-ebs: " ",
amazon-ebs: "You cannot call a method on a null-valued expression.",
amazon-ebs: "At line:1 char:65",
amazon-ebs: "+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...",
amazon-ebs: "+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
amazon-ebs: " + CategoryInfo : InvalidOperation: (:) [], RuntimeException",
amazon-ebs: " + FullyQualifiedErrorId : InvokeMethodOnNull"
amazon-ebs: ],
amazon-ebs: "stdout": "",
amazon-ebs: "stdout_lines": []
amazon-ebs: }发布于 2020-02-14 13:42:54
这通常意味着调用方法的变量是null。这意味着由于脚本问题而从未设置过变量
您将能够通过查看您在Ansible上调用的脚本来进一步调试它遇到问题的地方:At line:1 char:291。这似乎是这些变量之一:
$InService=(echo $InstanceId | %{ $_.Split(':')[1]; })
尝试直接在主机上运行该脚本以了解更多信息。
https://stackoverflow.com/questions/60214070
复制相似问题