如何在一个烦人的任务中获取当前角色名称 [英] How to get current role name in an ansible task

查看:45
本文介绍了如何在一个烦人的任务中获取当前角色名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在ansible任务yaml文件中获取当前角色名称?

How can I get the current role name in an ansible task yaml file?

我想做这样的事情

---
# role/some-role-name/tasks/main.yml

- name: Create a directory which is called like the current role name
  action: file
          path=/tmp/"{{ role_name }}"
          mode=0755
          state=directory

此任务的结果应该是服务器上的目录/tmp/some-role-name

The result of this task should be a directory /tmp/some-role-name on the server

推荐答案

Ansible 2.2开始:

{{role_name}}

截至 Ansible 2.1 :

{{role_path|basename}}

旧版本:

在当前版本的Ansible中无法执行此操作,以下是一些可能更适合您的选项:

There is no way to do this in the current version of Ansible, here are a couple options that might work for you instead:

1)使用set_fact将role_name var设置为您的task/main.yml文件中第一个任务的角色名称

1) Use set_fact to set a role_name var to the name the of role as the first task in your tasks/main.yml file

- set_fact: role_name=some-role-name

2)将名称传递给您的角色

2) Pass a parameter to your role that has the name

- roles:
  - role: some-role-name
    role_name: some-role-name

这篇关于如何在一个烦人的任务中获取当前角色名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆