当前位置: 首页 > 知识库问答 >
问题:

如何在Ansible中跳过主机存储库并指定主机运行时

邬浩涆
2023-03-14
ansible-playbook site.yml  -e "source_host=mymac1 source_file=myfile1"
---

- hosts: "{{ source_host | default('my_pc')}}"
  user: weblogic

[警告]:提供的主机列表为空,只有本地主机可用

剧本:site.yml L[警告]:无法匹配提供的主机模式,忽略:mymac1

你能建议我如何将任何主机传递到我的playbook,而不必维护和存储所有主机信息的主机资源库吗

我在ansible 2.3.1.0版本上

共有1个答案

红存
2023-03-14

可以使用内联库存:

playbook.yml:

- hosts: all
  tasks:
    - debug: msg=hello

命令:

ansible-playbook -i 'mymac1,' -e source_file=myfile1 playbook.yml
 类似资料:
  • 是否可以在 Ansible 主机上运行命令? 我的场景是,我想从内部托管的git服务器(并且不能在公司防火墙之外访问)进行结帐。然后我想将结账(tarbated)上传到正式服(托管在外部)。 目前,我正在考虑运行一个脚本,执行签出、tarballs,然后运行部署脚本-但如果我可以将其集成到Ansible中,那将是更好的选择。

  • 我正在编写一个剧本,它旋转X个EC2 AWS实例,然后在它们上安装一些软件(apt包和pip模块)。当我运行playbook时,它会在我的本地系统上执行shell命令,因为Ansible不会运行,除非我指定一个主机并放置localhost。 在playbook中,我尝试在顶层指定“hosts:all”,但这只会让playbook运行一秒钟而不做任何事情。 EC2实例创建得很好,“wait for

  • 我希望使用运行测试,但只能针对主机服务器1。有办法做到这一点吗?

  • 学习如何使用ansible--我需要为集群部署准备服务器。 在所有节点上安装相同的程序集,依此类推。这部分没有问题,一切都解决了。我是通过Ansible-Playbook来做的。在每个节点上,需要在文件/etc/sysconfig/network中执行 也许一些建议,帮忙?

  • 我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于: Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?

  • 但是通过使用,我无法从目录中挑选特定的主机。但是我可以使用一些语法,如,但是它查找DNS条目并相应地执行,但是不会检查目录文件。 另一种方法是为每个主机创建单独的目录文件,并由开发人员根据请求的主机调用它们,我不知道这是多少推荐的方法。 最后一个方法是AFAIK通过Python使用,在主机名中使用模式并调用Python程序。 除了这些,您还知道在执行剧本时从目录中选择特定主机/主机组的其他方法吗?