博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible-playbook 将某一个任务委托给其他主机delegate_to(学习笔记二十四)
阅读量:5948 次
发布时间:2019-06-19

本文共 914 字,大约阅读时间需要 3 分钟。

默认ansible的所有task是在我们的配置的管理机器上面运行的,当在一个独立的群集里面配置,那是适用的.而有一些情况是,某些任务运行的状态是需要传递给其他机器的,在同一个任务你需要在其他机器上执行,这时候你就许多要用task委托

使用delegate_to关键字便可以配置任务在其他机器上执行.其他模块还是在所有配置的管理机器上运行的,当到了这个关键字的任务就是使用委托的机器上运行.而facts还是适用于当前的host,下面我们演示一个例子,使用get_url模块去下载一个web集群的配置

---

  - name: Fetch configuration from all webservers

    hosts: webservers

    tasks:

      - name: Get config

        get_url: dest=configs/{

{ ansible_hostname }} force=yes url=http://{
{ ansible_hostname }}/diagnostic/config

        delegate_to: localhost

如果需要委托loaclhost执行任务,这里提供一个快捷的方式,只要使用local_action作为task的key便行.我们尝试使用这种方式来配置上面的例子,会更加简洁.

---    #1

  - name: Fetch configuration from all webservers    #2

    hosts: webservers    #3

    tasks:    #4

        - name: Get config

          local_action: get_url dest=configs/{

{ ansible_hostname }}.cfg url=http://{
{ ansible_hostname }}/diagnostic/config

委托不限于localhost,可以在你的inventory里面的任何host.下列一些场景适用使用委托

部署之前你希望从负载均衡里面把host移除

更改你的server时候更改dns的指向

创建一个iSCSI卷存储设备

使用一个外部服务器去检测一下服务

转载地址:http://kkdxx.baihongyu.com/

你可能感兴趣的文章
[译][摘录]HEVC编码中的多视域和3D扩展,第四部分:3D-HEVC编码技术
查看>>
BEM命名 css模块化解决方案
查看>>
使用Tower克隆gitLab项目
查看>>
前端js压缩图片并上传
查看>>
我的Java设计模式-工厂方法模式
查看>>
线程存储简介
查看>>
WEEX系列 我的第一个WEEX DEMO
查看>>
Deploy NodeJS Docker to QiO Edge Cloud using Kubernetes
查看>>
【Hadoop学习】HDFS基本原理
查看>>
关于解决IE8以下版本获取DOM节点的方法
查看>>
vue学习笔记(二)
查看>>
Flask四之模板
查看>>
要不, 我们从右往左书写数组?
查看>>
我的面试准备过程--LeetCode(更新中)
查看>>
【145天】尚学堂高淇Java300集视频精华笔记(103-104)
查看>>
如何在 React Native 中写一个自定义模块
查看>>
SegmentFault 2017 年社区周报 Vol.5
查看>>
JS用原型对象写的贪吃蛇,很粗糙的代码
查看>>
mac安装consul
查看>>
JavaScript深入之bind的模拟实现
查看>>