我正在编写一个从特定位置下载数据库转储的任务。它将始终在同一主机上运行。
所以我在主要剧本中包括如下任务:
tasks:
include: tasks/dl-db.yml
任务的内容是:
---
- name: Fetch the Database
fetch: src=/home/ubuntu/mydb.sql.gz dest=/tmp/mydb.sql.bz fail_on_missing=yes
但是我希望它从单个特定主机获取而不是所有主机。
这项任务是否正确?
答案 0 :(得分:4)
如果你需要发生的只是它只运行一次而不是每个主机,你可以改为使用run_once
,如下所示:
---
- name: Fetch the Database
run_once: true
fetch: src=/home/ubuntu/mydb.sql.gz dest=/tmp/mydb.sql.bz fail_on_missing=yes
然后将从运行该任务的第一台主机运行。如果您想专门针对特定主机,可以使用delegate_to
进一步限制此项:
---
- name: Fetch the Database
run_once: true
delegate_to: node1
fetch: src=/home/ubuntu/mydb.sql.gz dest=/tmp/mydb.sql.bz fail_on_missing=yes