首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不指定清单而直接指定主机的情况下运行Ansible?

如何在不指定清单而直接指定主机的情况下运行Ansible?
EN

Stack Overflow用户
提问于 2013-06-19 17:50:23
回答 5查看 107.1K关注 0票数 92

我想在Python中运行Ansible,而不是通过(ANSIBLE_HOST)指定清单文件,而只是通过以下方式运行:

代码语言:javascript
复制
ansible.run.Runner(
  module_name='ping',
  host='www.google.com'
)

我实际上可以很容易地在fabric中做到这一点,但我只是想知道如何在Python中做到这一点。另一方面,Ansible API for python的文档并不是真正完整的。

EN

回答 5

Stack Overflow用户

发布于 2013-08-15 22:48:10

令人惊讶的是,诀窍是附加一个,

代码语言:javascript
复制
# Host and IP address
ansible all -i example.com,
ansible all -i 93.184.216.119,

代码语言:javascript
复制
# Requires 'hosts: all' in your playbook
ansible-playbook -i example.com, playbook.yml

,之前的主机参数可以是主机名或IPv4/v6地址。

票数 194
EN

Stack Overflow用户

发布于 2015-03-28 17:07:56

我知道这个问题真的很老了,但我认为这个小技巧可能会对需要帮助的未来用户有所帮助:

代码语言:javascript
复制
ansible-playbook -i 10.254.3.133, site.yml

如果您针对本地主机运行:

代码语言:javascript
复制
ansible-playbook -i localhost, --connection=local site.yml

诀窍是,在ip地址/dns名称之后,将逗号放在引号中,并要求在您的剧本中使用'hosts: all‘。

希望这能有所帮助。

票数 54
EN

Stack Overflow用户

发布于 2019-06-13 09:21:21

在我的例子中,我不希望在我的攻略中包含hosts: all,因为如果有人运行攻略而忘记包括-i 10.254.3.133,,那将是非常糟糕的

这是我的解决方案(ansible 2.6):

代码语言:javascript
复制
$ ansible-playbook myplaybook.yml -e "{target: 10.1.1.1}" -i 10.1.1.1, ...

然后,在攻略中:

代码语言:javascript
复制
- hosts: "{{ target }}"
  remote_user: donn
  vars_files:
    - myvars
  roles:
    - myrole

这是一个特殊的用例,当我需要配置一个主机,并且我不想/需要将它添加到清单中时。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17188147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档