ansible - 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 任务:
- 剧本名称:domaincontroller.yaml
- 库存文件的名称:test.ini
- 这是要执行的 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
解决方案
根据 Ansible 文档:
组名区分大小写。
您的 play 默认host
指令为DomainControllers
,而在您有组的test.ini
库存中。domaincontrollers
改变这个,或者传递额外的额外变量-e cloud_host=domaincontrollers
推荐阅读
- linux - 如果在一台 x86 主机上运行 2 个 type-2 VMX 虚拟机管理程序会怎样?
- c# - 在 Visual Studio 2017 中创建了安装文件,但安装后未运行软件
- sql - 如何在 SQL 查询中访问当前/相同/自己的行列值
- php - 无法通过 REST API 登录 SuiteCRM
- sqlite - 使用sqlite数据库android在微调器中加载动态数据
- websocket - 响应 WebSocket 升级请求
- javascript - 无法使用 onChange 函数替换下拉列表
- jwt - 了解 JWT 身份验证的工作原理
- android - Android TextInputLayout transitionName 和 transitionGroup - 目的是什么?
- android - 如何在cordova android应用程序中检查系统日期错误