2

当我尝试使用Ansible 的 Composer 模块并将以下任务粘贴到我的 playbook.yml 文件中时,出现错误。

剧本.yml

- name: Composer Install Site Dependencies
  composer: command=install working_dir=/var/www/html

错误:

ERROR: composer is not a legal parameter in an Ansible task or handler
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

经过一番调查,我在命令行上运行了“anisble-doc --list”以查看可用的模块,而“composer”未列出。我正在运行 Ansible 1.5.4 版,我必须单独添加它吗?

4

1 回答 1

3

正如@user272735 在评论中指出的那样,这是一个未发布的模块——它计划发布在“积极开发”的 1.6 版本中。(诚​​然,它最初计划用于 1.4)您有几个选择:

  • 从最前沿安装 ansible。请参阅“从源代码运行”。(显然,这很可怕)
  • 忍者将文件修补到本地安装的树中。(显然,这很可怕)
  • 文件添加到本地 Ansible 存储库中。

正如“开发模块”所说,第四个选项是通过ANSIBLE_LIBRARYor指定你的库路径--module-path。但是,这会覆盖您的全局库/模块路径。除非您提供每个模块,否则这不是您想要做的。

添加到你的回购

我假设您的 repo 被命名为“ansible”并且设置正确,如下所示:

ansible/ ansible/roles/ ansible/group_vars/

在这种情况下,只需library在顶部添加一个目录(“最佳实践”对此进行了讨论,但不在预期部分中):

ansible/ ansible/roles/ ansible/group_vars/ ansible/library/

在那里,在composer那里添加文件。这使得它的路径/文件如下:

ansible/library/composer

请注意,它不是composer.py或其他任何东西。此外,它似乎不需要这个+x位,所以没有大惊小怪的担心。

一旦你这样做了,你就可以按照你的期望运行 Ansible 命令。作曲家模块就在那里。

于 2014-05-01T01:23:10.293 回答