Определите версию PHP для модуля Ansible composer

#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. Я полностью упустил из виду эту опцию. Спасибо, это решение.