【问题标题】:ansible-playbook --limit not working with overlapping host aliasesansible-playbook --limit 不适用于重叠的主机别名
【发布时间】:2016-07-28 09:26:59
【问题描述】:

我遇到了限制 Ansible 只能与特定主机一起使用的问题

我的库存文件如下所示:

[staging-docker-containers]
app1 ansible_host=host.domain.com ansible_ssh_port=2222  
app2 ansible_host=host.domain.com ansible_ssh_port=2223  
app3 ansible_host=host.domain.com ansible_ssh_port=2224  

[staging-other-servers]
app1 ansible_host=host.domain.com ansible_ssh_port=2225  
app2 ansible_host=host.domain.com ansible_ssh_port=2226  
app3 ansible_host=host.domain.com ansible_ssh_port=2227  

当我运行以下命令时

ansible-playbook --limit="staging-docker-containers:app3"  my-playbook.yml -i staging 

它忽略限制命令并尝试连接到staging-other-servers 组下的app3,而不是staging-docker-containers 组下的app3。

我做错了吗?

【问题讨论】:

    标签: ansible ansible-playbook


    【解决方案1】:

    您可以在不同的组中拥有相同的主机。
    但是您不能在同一名称下拥有不同的主机。
    如果在不同地方为同一主机定义相同的主机变量,则后者具有优先权。
    所以你的库存实际上变成了:

    [staging-docker-containers]
    app1
    app2
    app3
    
    [staging-other-servers]
    app1 ansible_host=host.domain.com ansible_ssh_port=2225
    app2 ansible_host=host.domain.com ansible_ssh_port=2226
    app3 ansible_host=host.domain.com ansible_ssh_port=2227
    

    【讨论】:

    • 我正在尝试使用主机别名将特定角色映射到特定主机,就像我向我展示的示例一样,您对如何做到这一点有建议吗?
    • @Urban48 我不确定您要达到什么目的...通常您希望使用相同的组名制作用于分期/生产的不同库存文件,并在您的剧本中分配特定角色使用hosts:的特定组/主机。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2020-11-13
    • 2021-01-17
    • 1970-01-01
    • 2022-10-23
    • 2013-04-02
    相关资源
    最近更新 更多