Tower:导致“[警告]:在组名称中发现无效字符但未替换,使用 -vvvv 查看详细信息”的原因

use*_*303 8 ansible ansible-tower ansible-2.x

我刚刚开始使用 Ansible Tower 并创建了一个项目,然后在该项目下创建了一个作业模板,该模板使用了一个小型初始测试手册 (Test.yml):

---
- hosts: east01.xxxxx.com
  become: yes
  become_method: sudo

  tasks:
  - name: test
    shell: echo 'line one line two line three' >> /tmp/abcdef.txt
Run Code Online (Sandbox Code Playgroud)

而且,当我尝试通过单击 Tower 中的“rocketship”来运行该剧本时,它看起来正在工作:

Identity added: /tmp/awx_35003_yehjodc1/artifacts/35003/ssh_key_data (/tmp/awx_35003_yehjodc1    /artifacts/35003/ssh_key_data)
[WARNING]: Invalid characters were found in group names but not replaced, use
-vvvv to see details
PLAY [east01.xxxxx.com] **********************************************
TASK [Gathering Facts] *********************************************************
ok: [east01.xxxxx.com]
TASK [test] ********************************************************************
changed: [east01.xxxxx.com]
PLAY RECAP *********************************************************************
east01.xxxxx.com : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 
Run Code Online (Sandbox Code Playgroud)

看起来这确实有效(当我运行剧本时,我可以看到目标机器上的文件被修改),但是有人可以告诉我是什么导致了警告:

[WARNING]: Invalid characters were found in group names but not replaced, use
-vvvv to see details
Run Code Online (Sandbox Code Playgroud)

??

另外,警告说“使用 -vvvv”,我想知道在哪里/如何执行此操作(因为我在 Tower 下运行此剧本)?

谢谢!吉姆

编辑:我刚刚做了一个测试,我使用 ansible-playbook (命令行)运行了相同的 yaml 文件,并且它运行时没有该警告,所以我猜该警告与 ansible-playbook 和 Tower 之间的一些差异有关?

Ske*_*tic 20

当您在声明组名称时在清单文件中使用破折号时,会出现此警告。例如,如果您的库存文件如下所示:

[web-servers]
ubuntu ansible_ssh_host=xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)

Ansible 会抛出该警告。 相反,如果您将使用下划线,则警告就会消失。

[web_servers]
ubuntu ansible_ssh_host=xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)


lar*_*sks 11

您的版本ansible-playbook可能比 Tower 中使用的 Ansible 版本旧。

在 Ansible 的最新版本中,组名称必须是有效的变量名称。有关有效变量名称构成的详细信息,请参阅文档。

如果east01.xxxxx.com是组名,则句点就是问题。否则,请检查组名称中是否有字母、数字或 以外的任何内容_