ERROR: composer is not a legal parameter in an Ansible task or handler

ERROR: composer is not a legal parameter in an Ansible task or handler

您好,我一直在尝试安装 ansible 运行 composer install 以将 composer.json 中的所有内容安装到 laravel 文件中。但我收到此错误 错误:作曲家不是 Ansible 任务或处理程序中的合法参数 我不确定是什么原因造成的。以下是我的剧本内容。

---
- name: Install PHP5+
  apt: name={{ item }} update_cache=yes state=latest
  with_items:
    - git
    - mcrypt
    - php5-cli
    - php5-curl
    - php5-fpm
    - php5-intl
    - php5-json
    - php5-mcrypt
    - php5-sqlite
    - sqlite3
  notify:
    - Reload Nginx
- name: install composer
  shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  args:
    creates: /usr/local/bin/composer
- composer:
    command: install
    working_dir: /path/to/project

现在,如果我执行 vagrant provision,我会得到 Composer 不是合法参数。基本上我只是想 运行 composer 并告诉 composer 在我的 composer json

中安装所有依赖项

http://docs.ansible.com/ansible/composer_module.html

我通常只使用 Ansible Galaxy 中的角色,例如 geerlingguy.composer 来满足此类要求。

根据 Ansible Docscomposer 模块可从 Ansible 1.6 获得,但需要在可执行路径上预安装 composer。

如果您使用安装程序(来自 geerlingguy.composer tasks/main.yml),安装 Composer 通常是一个多步骤过程。

  • 检查是否安装了 Composer。
  • 下载 Composer 安装程序(使用 Ansible get_url)。
  • 运行 Composer 安装程序(通过 PHP 可执行文件)。
  • 将 Composer 移动到全局可访问的位置。
  • 将 Composer 更新到最新版本(如果已配置)。
  • 确保 composer 目录存在。
  • 为 Composer 添加 GitHub OAuth 令牌(如果已配置)。

或者,您可以下载最新版本,https://getcomposer.org/composer.phar 或标记版本使其可执行并将其移动到适当的目录中。