如何解决如何将这个 ansible 任务安装 R 包从剧本转移到角色?
我正在使用 ansible 自动化我的 mac 设置,并取得了巨大的成功。我只是不知道如何将一项特定任务从我的剧本(它成功的地方)转移到一个角色。该任务依赖于一个模块(或者可能是一个角色:我从上下文中并不完全清楚):yutannihilation.module-cran(参见:https://github.com/yutannihilation/ansible-module-cran),它的工作是从 CRAN 安装两个 R 包。这是我的(成功的)剧本任务:
- hosts: mac
roles:
- yutannihilation.module-cran
environment:
PATH: /opt/brew/bin:{{ ansible_env.PATH }}
tasks:
- name: Install R packages
cran: name={{ item }} state=present
with_items:
- tuneR
- seewav
它工作正常的地方(成功安装了这两个包)。我现在已经创建了一个角色 av_dev,并且在角色/av_dev/tasks/main.yml 中我尝试了各种方法:这是唯一一种 ansible 不会出错的形式,但不幸的是它也没有安装包:
- name: Install AV dev R packages
include_role:
name: yutannihilation.module-cran
vars:
name: "{{ item }}"
state: present
environment:
PATH: /opt/brew/bin:{{ ansible_env.PATH }}
with_items:
- tuneR
- seewave
注意:只有这个任务没有达到我的预期:我创建了很多角色,有很多任务,这是我在内部无法获得与角色相同结果的唯一任务就像在我的剧本中一样。我假设(希望)可以从我的角色内部调用这个模块/角色;如果有人能告诉我怎么做,我将非常感激:毫无疑问,结果会更好地理解 ansible。非常感谢,
迈克
解决方法
没关系:我想通了:我把角色和模块搞混了。结果我根本不需要引用这个角色:
- name: Install AV dev R packages
cran: name={{ item }} state=present
with_items:
- tuneR
- seewave
environment:
PATH: "{{ homebrew_prefix }}/bin:{{ ansible_env.PATH }}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。