首页 > 解决方案 > Ansible 任务在手动执行时失败:“跳过:没有匹配的主机”

问题描述

我正在尝试遵循 DevOps 书籍(针对 SharePoint),它描述了一种通过将 vagrant 和 ansible 一起使用来配置不同环境(dev、prod、test)的方法,这是一种为 virtualbox 虚拟化提供程序配置多个盒子的自动化、可重复的方式.

ansible --version输出:

ansible 2.7.8
  config file = /Users/username/Desktop/projects/vagrant-ansible-packer-spfarm/ansible.cfg
  configured module search path = [u'/Users/username/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.15 (default, Feb 12 2019, 11:44:53) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)

我设法迈出了第一步,设置了项目,使用我的 mac 上的 github 存储库配置了唯一的 DomainController。

作为下一步,我想通过使用 ansible CLI 在我的本地部署 (DC) 上应用一些设置来手动执行 ansible 任务:

ansible-playbook -i ansible/test.ini ansible/plays/domaincontroller.yaml --extra-vars="ansible_user='vagrantuser@spdomain.local' ansible_password='Pass@wordX!'" --start-at-task="add admin account to Domain Admins group" -vvvvv

结果我经常 跳过这个:没有匹配的主机

这是我的目录结构和这个项目的起源。

Ansible 对我来说是新的。我真的很喜欢它对 DevOps 概念的贡献。但我真的在这方面苦苦挣扎,所以来自你们开发人员的任何帮助都会受到赞赏!如果您需要更多信息来帮助我解决此问题,请随时与我联系!

更新:我已经尝试根据 ansible 文档将我的 ansible.cfg 中的插件列入白名单,但它对我不起作用:( ansible docfile 链接:https ://docs.ansible.com/ansible/2.7/plugins/inventory .html

标签: ansiblevagranttaskvirtualbox

解决方案


根据 Ansible 文档:

组名区分大小写。

您的 play 默认host指令为DomainControllers,而在您有组的test.ini库存中。domaincontrollers

改变这个,或者传递额外的额外变量-e cloud_host=domaincontrollers


推荐阅读