首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于包含的剧本和角色中的标记的不可接受的限制任务

基于包含的剧本和角色中的标记的不可接受的限制任务
EN

Stack Overflow用户
提问于 2018-03-22 15:31:40
回答 2查看 3.1K关注 0票数 1

我管理一个相当大的网站相当复杂。我们使用ansible进行部署;大多数部署都很好,我们只需将剧本和角色包含在主游戏手册中,它的工作就像一种魅力。

大师的剧本看上去像下面的东西

  • PlayBook 大师
    • 包括具有vars/config特定于部署最新版本的部署剧本
    • 部署剧本包括与SW 相关的特定角色。
      • 角色具有适当标记的任务。

我们的问题是,我们不能传递标签,同时将剧本包含在主游戏手册中。有点像

  • 包括: task1.yml标记: t1

如果它是从命令行调用的,而不使用主播放work中的标记,则此操作非常好。

-i主机master_playbook.yml -t t1

任何可能的解决方案的建议都是有帮助的。

EN

回答 2

Stack Overflow用户

发布于 2018-03-23 10:55:00

这不是一件容易实现的事情。

简单的方法:您可以重构您的角色,使其具有独立的任务文件,如:

代码语言:javascript
复制
tasks/main.yml (that import job1 and job2)
tasks/job1.yml
tasks/job2.yml

然后用这个

代码语言:javascript
复制
- include_role:
    name: myrole
    tasks_from: job1.yml

只包含job1任务。

难的方法:您可以制作一个回调插件,通过set_play_contextv2_playbook_on_play_start处理程序的组合,动态修改执行上下文,从变量中获取所需的标记。有一篇关于这个这里的帖子,但它是俄文的。

票数 1
EN

Stack Overflow用户

发布于 2018-07-09 19:03:12

要回答Konstantin关于为什么要这样做的问题,最好的做法是包含不同的任务文件并将它们包含在main.yml中。在任务文件中,您可以有two+任务,尽管可以/应该标记每个任务,但有一种强烈的情况是,您希望运行文件中的所有任务,而不仅仅是该文件中的一个任务。能够标记包含文件的任务提供了能够运行/测试您的剧本的粒度。

$ansible- -u a_user -i inventory/ts_host.yml剧本-test.yml -t test:template_file

playbook-test.yml

  • 主机: crash_n_burn_poc角色:
    • test_role

test_role

main.yml

测试任务文件

  • 包括: copy_test_file.yml 标签:"test","test:copy_file“
  • 包括: template_test_file.yml标签:"test","test:template_file“

下面是剧本的输出。

$ansible- -u a_user -i inventory/ts_host.yml剧本-test.yml -t test:template_file

播放****************************************************************************************************************** crash_n_burn_poc

任务收集事实******************************************************************************************************************* ok: linuxdev.nut

任务************************************************************************************************************** test_role : template test_role changed: linuxdev.nut

播放重述*********************************************************************************************************************** linuxdev.nut : ok=2 changed=1 unreachable=0 failed=0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49432636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档