ansible galaxy角色的命令/模块名称与内置runit模块冲突

时间:2018-08-15 20:52:25

标签: ansible

我正在尝试使用ansible-galaxy(https://github.com/gotansible/runit)角色来协助runit服务监视器。

从他们的自述文件中,我想到了这作为我的任务:

- name: runit gunicorn
  #this command/module(? not sure about term) is provided by gotansible.runit
  runit:
    command: "gunicorn websec.wsgi -c /etc/gunicorn/gunicorn.conf"
    state: up
  tags:
    - failing

但是当我运行剧本时,我得到了:

 FAILED! => {"changed": false, 
 "msg": "Unsupported parameters for (runit) module: command 
 Supported parameters include: dist, enabled, name, service_dir, service_src, state"}

当您查看内置的runit模块支持https://docs.ansible.com/ansible/2.5/modules/runit_module.html

时,这很有意义

是否有办法将ansible指向gotansible.runit的模块,而不是Ansible的内置模块?

都不是

- name: runit gunicorn
  gotansible.runit:

- name: runit gunicorn
  gotansible_runit:

似乎有很大帮助。

这只是一些快速的实验,我可能会避免使用这个看起来似乎从未维护过的角色。但是我很好奇如何处理名称冲突。 https://github.com/ksator/junos-automation-with-ansible/blob/master/README.md例如说他们重命名了一些模块以避免名称冲突。

1 个答案:

答案 0 :(得分:0)

角色必须这样打电话

hosts: server
roles:
  - { role: gotansible.runit }

https://github.com/gotansible/runit主页上所述。

您需要将参数传递给角色,您可以这样做

hosts: server
roles:
  - { role: gotansible.runit, state: once, name: foo }

有空的时候

- runit:
    name: foo
    state: started

您正在整理runit内置模块

有关https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html上角色的更多信息