Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否始终使用Ansible在单个主机上运行任务?_Ansible_Ansible Playbook - Fatal编程技术网

是否始终使用Ansible在单个主机上运行任务?

是否始终使用Ansible在单个主机上运行任务?,ansible,ansible-playbook,Ansible,Ansible Playbook,我正在编写一个从特定位置下载数据库转储的任务。它将始终在同一台主机上运行 因此,我在主要剧本中包括以下任务: 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 但我希望它从一个特定的主机而不是所有主机获取 任务是正确的方法吗?如

我正在编写一个从特定位置下载数据库转储的任务。它将始终在同一台主机上运行

因此,我在主要剧本中包括以下任务:

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
但我希望它从一个特定的主机而不是所有主机获取


任务是正确的方法吗?

如果您需要做的只是它只运行一次,而不是在每个主机上运行,您可以这样使用:

然后将从运行该任务的第一台主机运行该任务。如果您想专门针对特定主机,可以通过
委托_
进一步限制此操作:

---
   - 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

如果您只需要运行一次,而不是在您可以使用的每台主机上运行一次,则如下所示:

然后将从运行该任务的第一台主机运行该任务。如果您想专门针对特定主机,可以通过
委托_
进一步限制此操作:

---
   - 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

hosts
不是任务的有效属性
hosts
不是任务的有效属性