我最近一直在为CD编写一个可运行的脚本,并且开始遇到问题。当我运行最新的YAML文件时,出现错误
fatal: [Windows-AWS]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ansible_play_name' is undefined\n\nThe error appears to have been in 'x.yml': line 32, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Add RabbitMQ user\n ^ here\n"}
该代码中包含的相关变量如下:
- name: Add RabbitMQ user
win_shell: |
Set-Location "C:\Program Files\RabbitMQ Server\rabbitmq_server-{{rabbitmq_version}}\sbin"
$users = .\rabbitmqctl.bat list_users
if($users -Like "*{{ansible_play_name}}*")
{
Write-Host "Skipping: '{{ansible_play_name}}' already exists."
}
else
{
.\rabbitmqctl.bat add_user {{ansible_play_name}} "{{rabbitmq_password}}"
.\rabbitmqctl.bat set_permissions {{ansible_play_name}} ".*" ".*" ".*"
.\rabbitmqctl.bat set_user_tags {{ansible_play_name}} administrator
}
register: rabbit_add_user_out
changed_when: '"Adding user" in rabbit_add_user_out.stdout'
failed_when: '"Error" in rabbit_add_user_out.stderr'
对于为什么它无法获取此值,有人有任何建议吗?它所运行的剧本的事实收集也设置为true,因此应分配
答案 0 :(得分:0)
ansible_play_name-(当前执行的播放的名称)在2.8中添加。可能是您的版本较低。