1.action
定义:定义任务执行的操作,通常对应一个模块或操作插件。
示例:
- name: 使用 ping 模块测试连接
ansible.builtin.ping:
2. any_errors_fatal
定义:强制在任何主机发生未处理任务错误时,终止所有主机的任务并结束当前 play。
示例:
- name: 强制错误传播
hosts: all
any_errors_fatal: true
tasks:
- name: 执行命令
command: /bin/false
3. args
定义:以字典形式传递参数到任务中。
示例:
- name: 使用 args 传递参数
ansible.builtin.command:
cmd: /usr/bin/echo
args:
chdir: /tmp
4. async,poll
定义:async异步运行任务,值为最大运行时间(秒); poll 设置检查事务执行完成的轮询间隔时间。(如下为5秒检测一次是否执行完成,完成将进行下一个任务)
示例:
- name: 异步运行任务
ansible.builtin.command: /bin/sleep 15
async: 30
poll: 5
5. become
定义:是否使用特权提升。
示例:
- name: 以 root 用户执行任务
command: whoami
become: true
6. changed_when
定义:覆盖任务的默认 changed
状态。
示例:
- name: 强制任务标记为未改变
ansible.builtin.command: /bin/true
changed_when: false
7. environment
定义:向任务提供环境变量。
示例:
- name: 设置环境变量
command: echo $MYVAR
environment:
MYVAR: HelloWorld
8. failed_when
定义:覆盖任务的默认 failed
状态。
示例:
- name: 强制任务失败
command: /bin/true
failed_when: true
9. ignore_errors
定义:忽略任务失败并继续执行后续任务。
示例:
- name: 忽略错误
command: /bin/false
ignore_errors: yes
10. loop
定义:对任务进行循环,每次迭代将当前值赋予 item
。
示例:
- name: 循环示例
command: echo "{{ item }}"
loop:
- one
- two
- three
11. register
定义:存储任务返回的数据到变量中。
示例:
- name: 注册变量
command: whoami
register: result
- name: 打印变量
debug:
msg: "当前用户是 {{ result.stdout }}"
12. remote_user
定义:指定连接目标主机时使用的用户。
示例:
- name: 使用特定用户执行任务
hosts: all
remote_user: myuser
tasks:
- name: 检查主机
ansible.builtin.ping:
13. tags
定义:为任务添加标签,以便从命令行选择性运行任务。
示例:
- name: 添加标签
hosts: all
tasks:
- name: 只运行带有标签的任务
command: echo "Hello"
tags:
- hello
# 运行命令时指定标签
# ansible-playbook playbook.yml --tags hello
14. timeout
定义:设置任务的执行超时时间,超时将中断任务。
示例:
- name: 设置超时
command: /bin/sleep 30
timeout: 10
15. vars
定义:定义任务中的变量。
示例:
- name: 定义变量
vars:
greeting: "Hello, World!"
tasks:
- name: 打印变量
debug:
msg: "{{ greeting }}"
16. when
定义:条件表达式,决定是否运行任务。
示例:
- name: 只有在条件满足时执行
command: echo "条件满足"
when: ansible_facts['os_family'] == "Debian"