作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有角色 wp-vhost
它有一个作用,它取决于:
// roles/wp-vhost/meta/main.yml
---
dependencies:
- { role: nginx }
wp-vhost
,
nginx
角色也将运行。我知道这很好,这是一种理想的行为。
nginx
浪费了不必要的时间。角色,当我只想运行
wp-vhosts
中定义的任务时因为我知道
nginx
之前已经运行并为
wp-vhost
设置了必要的环境.
最佳答案
我这样做的方法是使用 Ansible tags并将它们应用于您的“wp-vhost”特定代码。
假设您的 wp-vhost
角色的主要剧本在 main.yml
,一个好的模式是将实际任务分拆成一个名为 wp-vhost.yml
之类的子剧本。 ,包含在 main.yml 中,因此非 nginx 代码获得了一个不会应用于 nginx 角色的标签。在这种情况下:
- include: wp-vhost.yml
tags: wp-vhost
dependencies
中提到的每个角色。像这样:
- role: nginx
tags: nginx
$ ansible-playbook --tags wp-vhost main.yml
$ ansible-playbook main.yml
- name: Set up base OS
include: base_os.yml
tags: base_os
- name: Ensure logs are rotated
include: logrotate.yml
tags: logrotate
- name: Create users and groups
include: users_groups.yml
tags: users_groups
- hosts: all
roles:
- role: nginx
tags: nginx
tasks:
- block:
- debug: msg=hello
- someaction: ...
tags: wp-vhosts
tags:
与
block:
对齐所以适用于该块中的所有任务。这比将剧本分成多个剧本更干净。
when:
条件
on the role invocation在wp-vhost角色依赖中,定义一个变量如
debug_mode
来控制这个。但是,与为每个角色调用或任务文件定义标签相比,这种调试/测试逻辑会使您的代码库变得困惑。
关于ansible - 运行 Ansible 角色而不运行角色元中定义的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40002801/
我是一名优秀的程序员,十分优秀!