#php #ansible #composer-php
#php #ansible #композитор-php
Вопрос:
Я запускаю следующую задачу в некотором сценарии развертывания для PHP-приложения:
- name: Update composer dependencies
composer:
command: update
working_dir: "{{ release_path }}/src"
ignore_platform_reqs: true
В целевой системе используется версия CLI PHP 7.3
, но есть также /usr/bin/php7.2
двоичный файл, который я хочу использовать.
Как я могу использовать модуль composer и запускать с ним определенную версию PHP … или мне нужно запустить это через модуль оболочки следующим образом?
- name: Update composer dependencies
shell: "/usr/bin/php7.2 composer update"
args:
chdir: "{{ release_path }}/src"
Комментарии:
1. На моем конце
/usr/bin/composer
это исполняемый файл и имеет she-bang#!/usr/bin/php
. Я бы проверил,/usr/bin/php
указывает ли эта символическая ссылка на правильный двоичный файл php (ls -l /usr/bin/php
). После этого вы можете запускать оболочкуcomposer
непосредственно из своего скрипта ansible, и все другие инструменты, вызывающие php, также будут использовать правильную версию.2. @MichaelD. Спасибо за это, но это не вариант. Значение по умолчанию
php
должно указывать на текущую версию php 7.3. Я просто хочу запустить эту конкретную команду с другой версией php.
Ответ №1:
Согласно Ansible doc для Composer, существует опция для указания исполняемого файла php, который требуется использовать.
Итак, вы можете использовать что-то вроде приведенного ниже для вашего случая
- name: Update composer dependencies
composer:
command: update
working_dir: "{{ release_path }}/src"
ignore_platform_reqs: true
executable: /usr/bin/php7.2
Комментарии:
1. Я полностью упустил из виду эту опцию. Спасибо, это решение.