当前位置: 首页 > article >正文

Ansible的module_defaults

环境

  • 管理节点:Ubuntu 22.04
  • 控制节点:CentOS 8
  • Ansible:2.15.6

module_defaults

如果某个module被多次调用,且每次调用时的参数也一样,则可以通过 module_defaults 为该module指定缺省参数,以简化操作。

---
- hosts: all
  module_defaults:
    debug:
      msg: "Default message"
  tasks:
    - name: task1
      debug:

    - name: task2
      debug:

运行结果如下:

TASK [task1] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "Default message"
}

TASK [task2] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "Default message"
}

注:对于 debug ,即使没有 msg ,也不会报错,默认会输出 Hello world!

module_defaults 可用在play、block、task级别。

当然,即使已有默认参数,也可以显式指定参数:

    - name: task3
      debug:
        msg: "task3 message"

运行结果如下:

TASK [task3] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "task3 message"
}

如果不想使用缺省参数,可以通过 <module>: {} 显式指明不使用缺省参数:

    - name: task4
      debug:
      module_defaults:
        debug: {}

运行结果如下:

TASK [task4] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "Hello world!"
}

注意:设置在play级别(以及使用了 include_roleimport_role 的block/task级别)的module default会作用到role里面。

另:在 module_defaults 中可以使用变量:

---
- hosts: all
  vars:
    var1: "Tom"
  module_defaults:
    debug:
      msg: "Hello {{ var1 }}"
  tasks:
    - name: task1
      debug:

    - name: task2
      set_fact:
        var1: "Jerry"

    - name: task3
      debug:

运行结果如下:

TASK [task1] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "Hello Tom"
}

TASK [task2] ***************************************************************************************
ok: [192.168.1.55]

TASK [task3] ***************************************************************************************
ok: [192.168.1.55] => {
    "msg": "Hello Jerry"
}

参考

  • https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_module_defaults.html

http://www.kler.cn/a/147315.html

相关文章:

  • Flink_DataStreamAPI_执行环境
  • 【软件测试】设计测试用例的万能公式
  • 《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配
  • 动态规划-完全背包问题——322.零钱兑换
  • 基于SpringBoot的旅游网站(程序+数据库+报告)
  • 【日常记录-Git】git log
  • 深兰科技“汉境”入选2023年湖北省人工智能十大优秀应用案例
  • 实时云渲染简要分析
  • Python爬虫入门课: 如何实现数据抓取 <文字 图片 音频 视频 文档..>
  • 通过JDBC连接MySQL实现表的插入和查看语句
  • IDEA断点调试
  • 双通道 12V 直流电机驱动芯片GC8548,12V,大电流,具有短地短电源保护功能,可替代LV8548/LV8549/ONSEMI
  • 浙江启用无人机巡山护林模式,火灾扑救效率高
  • uni-app 离线打包安卓Apk(小白上手)
  • Altium Designer学习笔记13
  • 初学Flink 学后总结
  • MYSQL基础知识之【添加数据,查询数据】
  • 微信小程序 服务端返回富文本,图片无法显示
  • java stream流的执行流程
  • 2019年9月26日: Go生态洞察:发布Go模块
  • java计算积分面积
  • 优化生产制造业流程,提升生产效率,选择ERP管理系统!
  • 单片机学习10——独立按键
  • 推荐6款本周 yyds 的开源项目
  • 国内外的ERP系统存在显著的差异,差在哪?
  • 【数据结构】二叉树之链式结构