Ansible-playbook:以逗号分隔的形式列出所有服务器,并排除自己的服务器

Lropl

我有三台服务器

[servers]
server1 
server2 
server3

我想为每个服务器创建服务器列表,但不包括自身:例如

  • 对于server1:应该是server2,server3;
  • 对于server2:应为server1,server3;
  • 对于server3:应为server1,server2;

我可以创建所有服务器的列表,但不知道如何排除一台服务器?

- hosts: servers
  vars:
    network_check_list: "{{groups['servers']|join(',')}}"
Zeitounator

您可以将difference过滤器与包含当前目标服务器作为参数的单个元素列表一起使用

---
- hosts: servers
  gather_facts: false

  vars:
    network_check_list: "{{ groups['servers'] | difference([inventory_hostname]) | join(',') }}"

  tasks:
    - debug:
        var: network_check_list

由于jinja2表达式是当场解释的,并且每次在特定服务器上运行时都可以解释,因此您可以将此定义保留在您的剧本vars中,并将其适应任务中的每个上下文。这是结果(用于示例清单):

$ ansible-playbook -i inventory play.yml

PLAY [servers] ****************************************************************************************************************************************************************************************************

TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [server1] => {
    "network_check_list": "server2,server3"
}
ok: [server2] => {
    "network_check_list": "server1,server3"
}
ok: [server3] => {
    "network_check_list": "server1,server2"
}

PLAY RECAP ********************************************************************************************************************************************************************************************************
server1                    : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server2                    : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server3                    : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

参考:https : //docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#set-theory-filters

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在特定的服务器组上运行Ansible Playbook

来自分类Dev

如何使用Ansible Playbook重启ubuntu服务器?

来自分类Dev

在特定的服务器组上运行Ansible Playbook

来自分类Dev

如何使用Ansible Playbook重启ubuntu服务器?

来自分类Dev

如何设置Ansible Playbook重启服务器

来自分类Dev

Ansible Playbook 仅在特定服务器上失败

来自分类Dev

更新ansible(ubuntu服务器14)

来自分类Dev

从远程服务器到 ansible 主机的 Ansible 复制失败

来自分类Dev

如何检查Ansible任务的结果在所有服务器上是否相同?

来自分类Dev

Ansible剧本在所有Ubuntu服务器上均失败

来自分类Dev

Ansible Playbook:将本地cmd输出(例如git存档)传递到服务器?

来自分类Dev

如何在我的Ansible Playbook中使用Azure DevOps服务器(TFS)预定义变量?

来自分类Dev

运行 ansible playbook 以从 gituhub 签出代码时服务器证书验证失败

来自分类Dev

启动node.js服务器时Ansible挂起

来自分类Dev

如何使用Ansible在服务器上安装Python版本

来自分类Dev

Ansible ec2仅供应所需的服务器

来自分类Dev

如何用ansible处理percona密钥服务器

来自分类Dev

Ansible不在远程服务器上执行命令

来自分类Dev

使用Ansible随机整理DNS服务器列表

来自分类Dev

ansible-确保文件内容在服务器之间相同

来自分类Dev

Ansible Tower服务器声称发送了错误请求

来自分类Dev

启动node.js服务器时Ansible挂起

来自分类Dev

Ansible:根据服务器状态更改`remote_user`

来自分类Dev

从头开始在Ansible中配置服务器

来自分类Dev

Ansible不在远程服务器上执行命令

来自分类Dev

Ansible - 在 ldap 服务器上更改用户密码

来自分类Dev

使用 ansible 在远程服务器上打开网页

来自分类Dev

使 ansible 等待服务器启动,无需登录

来自分类Dev

Nginx,Ansible和带有Flask App的uWSGI,内部服务器错误

Related 相关文章

  1. 1

    在特定的服务器组上运行Ansible Playbook

  2. 2

    如何使用Ansible Playbook重启ubuntu服务器?

  3. 3

    在特定的服务器组上运行Ansible Playbook

  4. 4

    如何使用Ansible Playbook重启ubuntu服务器?

  5. 5

    如何设置Ansible Playbook重启服务器

  6. 6

    Ansible Playbook 仅在特定服务器上失败

  7. 7

    更新ansible(ubuntu服务器14)

  8. 8

    从远程服务器到 ansible 主机的 Ansible 复制失败

  9. 9

    如何检查Ansible任务的结果在所有服务器上是否相同?

  10. 10

    Ansible剧本在所有Ubuntu服务器上均失败

  11. 11

    Ansible Playbook:将本地cmd输出(例如git存档)传递到服务器?

  12. 12

    如何在我的Ansible Playbook中使用Azure DevOps服务器(TFS)预定义变量?

  13. 13

    运行 ansible playbook 以从 gituhub 签出代码时服务器证书验证失败

  14. 14

    启动node.js服务器时Ansible挂起

  15. 15

    如何使用Ansible在服务器上安装Python版本

  16. 16

    Ansible ec2仅供应所需的服务器

  17. 17

    如何用ansible处理percona密钥服务器

  18. 18

    Ansible不在远程服务器上执行命令

  19. 19

    使用Ansible随机整理DNS服务器列表

  20. 20

    ansible-确保文件内容在服务器之间相同

  21. 21

    Ansible Tower服务器声称发送了错误请求

  22. 22

    启动node.js服务器时Ansible挂起

  23. 23

    Ansible:根据服务器状态更改`remote_user`

  24. 24

    从头开始在Ansible中配置服务器

  25. 25

    Ansible不在远程服务器上执行命令

  26. 26

    Ansible - 在 ldap 服务器上更改用户密码

  27. 27

    使用 ansible 在远程服务器上打开网页

  28. 28

    使 ansible 等待服务器启动,无需登录

  29. 29

    Nginx,Ansible和带有Flask App的uWSGI,内部服务器错误

热门标签

归档