错误:composer不是Ansible任务或处理程序中的合法参数

错误:composer不是Ansible任务或处理程序中的合法参数,ansible,ansible-2.x,vagrant-provision,Ansible,Ansible 2.x,Vagrant Provision,嗨,我一直在尝试让ansible run composer安装,以便在我的laravel文件中安装composer.json中的所有内容。但是我得到了这个错误:composer不是Ansible任务或处理程序中的合法参数,我不确定是什么导致了这个错误。下面是我剧本的内容 --- - name: Install PHP5+ apt: name={{ item }} update_cache=yes state=latest with_items: - git - mcryp

嗨,我一直在尝试让ansible run composer安装,以便在我的laravel文件中安装composer.json中的所有内容。但是我得到了这个错误:composer不是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
现在,如果我做流浪规定,我得到的作曲家不是一个法律参数。基本上,我只是想运行composer并告诉composer在我的composer json中安装所有依赖项


我通常只使用Ansible Galaxy的角色,例如用于此类需求

根据,Ansible 1.6提供了
composer
模块,但要求composer预先安装在可执行路径上

如果使用安装程序(从geerlingguy.Composer tasks/main.yml)安装Composer,通常需要多个步骤

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

或者,您可以下载最新版本,或者使用标记的版本使其可执行,并将其移动到适当的目录中。

看来我的Ansible版本确实是较低的版本。我有1.5个字母。我在一个.sh文件中预安装了我的ansible,并在vagrant启动时运行它。我修复了这个问题,并在安装ansible之前先进行了apt get更新,以确保ansible是最新版本,现在我可以运行composer安装。感谢您指出作曲家的版本avaialble@MadzmarUllang如果您使用的是Ansible 1.5,为什么要在问题上加上?@Alister,因为一开始我不知道该版本是问题所在,我以为我已经安装了最新的Ansible,即2.0