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

如何在特定主机上运行ansible:ansible-playbook-i,

狄富
2023-03-14

但是,我尝试运行ansible-playbook -I -u ,使用的目录仍然是我的默认目录。如何正确使用这个?

共有1个答案

梁丘诚
2023-03-14

引自“曼·安西布尔”

-i,--inventory,--inventory-file指定目录主机路径或逗号分隔的主机列表。

要将单个主机指定为“逗号分隔的主机列表”,仍然需要逗号。例如,剧本

shell> cat playbook.yml
- hosts: all
  gather_facts: false
  tasks:
    - debug:
        var: inventory_hostname
shell> ansible-playbook -i test_99, playbook.yml

PLAY [all] ****

TASK [debug] ****
ok: [test_99] => 
  inventory_hostname: test_99
shell> ansible-playbook -i test_99 playbook.yml
[WARNING]: Unable to parse /scratch/test_99 as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'

PLAY [all] ****
skipping: no hosts matched
 类似资料:
  • 我希望使用运行测试,但只能针对主机服务器1。有办法做到这一点吗?

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

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

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

  • 我正在使用ansible编写API部署脚本。我希望通过我的库存文件中的每个主机顺序工作,这样我就可以一次完全部署到一台机器上。 谢谢

  • 问题内容: 我可以在主机上运行docker命令吗?我安装在Docker容器中,现在可以以某种方式在主机上使用命令(在后台使用Docker容器的aws)吗? 我的情况是这样的:我在生产主机上有数据库备份。现在我有Jenkins cron作业,它将从db容器中获取sql文件,并将其放入服务器文件夹中。现在我还希望jenkins将此备份文件上传到AWS存储上,但是在主机上我没有安装aws,也不想在主机上