Ansible Composer模块缺失?

时间:2014-04-30 15:42:39

标签: composer-php ansible ansible-playbook

当我尝试使用Ansible's Composer module并将以下任务粘贴到我的playbook.yml文件中时,我收到错误。

playbook.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版,是否必须单独添加?

1 个答案:

答案 0 :(得分:3)

作为评论中指出的@ user272735,这是一个未发布的模块 - 它将针对1.6版本which is under "active development"发布。 (诚​​然,这是originally slated for 1.4)你有几个选择:

  • 从最前沿安装ansible。请参阅" running from source"。 (显然,这很可怕)
  • ninja-patch the file到您当地安装的树中。 (显然,这很可怕)
  • the file添加到您当地的Ansible仓库。

As" developing modules"说,第四个选项是通过ANSIBLE_LIBRARY--module-path指定您的图书馆路径。但是,这会覆盖您的全局库/模块路径。除非您提供每个模块,否则这不是您想要做的事情。

添加到您的仓库

我假设你的回购被命名为" ansible"并且是set up properly,就像这样:

ansible/ ansible/roles/ ansible/group_vars/

在这种情况下,只需在顶部添加library目录('最佳做法'讨论此但不在预期的部分中):

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

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

ansible/library/composer

请注意,它不是composer.py或其他任何内容。此外,它似乎不需要+x位,所以没有繁琐的担忧。

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