Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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:作为角色依赖项运行playbook任务之一_Ansible - Fatal编程技术网

ansible:作为角色依赖项运行playbook任务之一

ansible:作为角色依赖项运行playbook任务之一,ansible,Ansible,假设我有一个角色名为a,另一个角色名为B。 我希望能够在角色a发生之前从角色B运行特定任务。 如果我把角色B作为角色a的依赖项,那么B的所有任务都将在a之前执行。 有什么想法吗?我同意@Bruce p的观点,如果你在a和B两个角色中都有一个共同的任务,你应该将它提取到自己单独的角色中。一般来说,将各种组件封装到角色中被认为是一种良好的做法,无论特定角色有多小 例如,如果您可以调用角色“Common”,当您同时运行这两个角色时,阅读您的剧本的人将能够将该步骤识别为公共配置/任务。可读性和可重用性非

假设我有一个角色名为a,另一个角色名为B。 我希望能够在角色a发生之前从角色B运行特定任务。 如果我把角色B作为角色a的依赖项,那么B的所有任务都将在a之前执行。
有什么想法吗?

我同意@Bruce p的观点,如果你在a和B两个角色中都有一个共同的任务,你应该将它提取到自己单独的角色中。一般来说,将各种组件封装到角色中被认为是一种良好的做法,无论特定角色有多小


例如,如果您可以调用角色“Common”,当您同时运行这两个角色时,阅读您的剧本的人将能够将该步骤识别为公共配置/任务。可读性和可重用性非常好

您将标记所需的任务,然后如中所示,您将:

roles:
  - { role: Role_B, port: 5000, tags: [ 'web', 'foo' ] }

我只想到使用标签,但我想这一点也不令人满意。我也认为标签是这里的关键,但我不知道如何使用它。如果我将一个标记添加到该特定任务中,我如何使ansible查找它?唯一的方法是在命令行上传递它
--标记“foo”
,但是除了角色B中的特定任务之外,角色a中的所有任务都需要该标记
foo
。这很难看。你可以把任务分成另一个角色,角色C,让C成为角色a和B的依赖项。