Ansible Role: Composer
Installs Composer, the PHP Dependency Manager, on any Linux or UNIX system.
Requirements
php
(version 5.4+) should be installed and working (you can use thegeerlingguy.php
role to install).git
should be installed and working (you can use thegeerlingguy.git
role to install).
Role Variables
Available variables are listed below, along with default values (see defaults/main.yml
):
composer_path: /usr/local/bin/composer
The path where composer will be installed and available to your system. Should be in your user's $PATH
so you can run commands simply with composer
instead of the full path.
composer_keep_updated: false
Set this to true
to update Composer to the latest release every time the playbook is run.
composer_home_path: '~/.composer'
composer_home_owner: root
composer_home_group: root
The COMPOSER_HOME
path and directory ownership; this is the directory where global packages will be installed.
composer_version: ''
You can install a specific release of Composer, e.g. composer_version: '1.0.0-alpha11'
. If left empty the latest development version will be installed. Note that composer_keep_updated
will override this variable, as it will always install the latest development version.
composer_version_branch: '--2'
You can choose which major branch of composer you wish to use. Default is --2
. Note that composer_keep_updated
will update the latest version available for this branch.
composer_global_packages: []
A list of packages to install globally (using composer global require
). If you want to install any packages globally, add a list item with a dictionary with the name
of the package and a release
, e.g. - { name: phpunit/phpunit, release: "4.7.*" }
. The 'release' is optional, and defaults to @stable
.
composer_add_to_path: true
If true
, and if there are any configured composer_global_packages
, the vendor/bin
directory inside composer_home_path
will be added to the system's default $PATH
(for all users).
composer_project_path: /path/to/project
Path to a composer project.
composer_add_project_to_path: false
If true
, and if you have configured a composer_project_path
, the vendor/bin
directory inside composer_project_path
will be added to the system's default $PATH
(for all users).
composer_github_oauth_token: ''
GitHub OAuth token, used to avoid GitHub API rate limiting errors when building and rebuilding applications using Composer. Follow GitHub's directions to Create a personal access token if you run into these rate limit errors.
php_executable: php
The executable name or full path to the PHP executable. This is defaulted to php
if you don't override the variable.
Staying on Composer 1
While projects are upgrading to support Composer 2, it may be helpful to run Composer 1 instead. To do that, set these variables:
composer_version_branch: ''
composer_version: '1.10.12'
Dependencies
None (but make sure you've installed PHP; the geerlingguy.php
role is recommended).
Example Playbook
- hosts: servers
roles:
- geerlingguy.composer
After the playbook runs, composer
will be placed in /usr/local/bin/composer
(this location is configurable), and will be accessible via normal system accounts.
License
MIT / BSD
Author Information
This role was created in 2014 by Jeff Geerling, author of Ansible for DevOps.