环境
- 管理节点: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"
}
如果不想使用缺省参数,可以通过 : {}
显式指明不使用缺省参数:
- name: task4
debug:
服务器托管网 module_defaults:
debug: {}
运行结果如下:
TASK [task4] ***************************************************************************************
ok: [192.168.1.55] => {
"msg": "Hello world!"
}
注意:设置在play级别(以及使用了 include_role
或 import_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.fwqtg.net
相关推荐: 面试题大揭秘:怎么使用自定义端口运行Spring应用?
大家好,我是小米!今天我们要聊的话题是一道常见的面试题:怎么使用自定义端口运行Spring应用?这可是每个Java后端开发者都可能会遇到的问题哦!废话不多说,咱们直接进入主题。 Spring应用的默认端口 首先,让我们回顾一下Spring应用的默认端口。大多数…