Ansible 跨主机变量引用

作者: Anoyi | 来源:发表于2018-04-11 22:00 被阅读82次

示例:自动化将目标主机加入到 swarm 集群,成为工作节点

---
- hosts: 192.168.0.10
  tasks:
    - name: 查看 worker 加入集群的 token
      command: docker swarm join-token worker
      register: worker_join_token

    - name: set facts
      set_fact: worker_join_token={{ worker_join_token.stdout.replace('To add a worker to this swarm, run the following command:\n\n    ', '').replace('\\\n','') }}
   
    - name: echo
      debug: msg={{ worker_join_token }}

- hosts: mongo
  tasks:
    - name: 加入 swarm 集群
      command: "{{ hostvars['192.168.0.10']['worker_join_token'] }}"
      ignore_errors: true

    - name: 创建 MongoDB 数据卷
      command: docker volume create mongo_data

    - name: 启动 MongoDB
      command: docker run -d -p 27017:27017 --name mongo -v mongo_data:/data/db mongo

原理如下:

  • ① 将任务执行的结果注册到变量,此变量的作用域为当前的 playbook
  • ② 将变量值做一些额外的处理,设置到 facts 中,facts 中的变量作用域为全局
  • ③ 跨主机应用变量 -> 官方文档

相关文章

  • Ansible 跨主机变量引用

    示例:自动化将目标主机加入到 swarm 集群,成为工作节点 原理如下: ① 将任务执行的结果注册到变量,此变量的...

  • ansible跨主机传递变量

    https://docs.ansible.com/ansible/latest/modules/add_host_...

  • ansible-playbook 01 变量

    ansible 环境变量优先级 ansible 变量优先级 命令行指定变量 > yaml文件中的变量> 主机清单中...

  • Ansible_variables

    ansible中变量的优先级 extra vars (-e 选项指定的变量)最高inventory 主机清单中定义...

  • ansible变量的定义

    这里写一些常用的ansible变量定义的方法 1. ansible facts facts组件是用来收集被管理主机...

  • 如何在ansible的hostvars中使用变量作为主机

    我们知道ansible中的hostvars变量可以访问其他主机的变量,例如我目前在localhost上,我想访问c...

  • ansible命令模块

    ansible官方网站: https://docs.ansible.com模快的应用ansible 主机名称/主机...

  • 快速上手 Ansible

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 命令

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 主机清单配置文件

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

网友评论

    本文标题:Ansible 跨主机变量引用

    本文链接:https://www.haomeiwen.com/subject/tsftkftx.html