Запуск composer dump-env prod через модуль ansible composer

Я не могу запустить команду симфони флексcomposer dump-env prod с помощью модуля Ansible Composer. Интересно, это вообще возможно? Моя задача выглядит так:

- name: Composer dump env for production
  composer:
      command: dump-env
      working_dir: "{{ app_composer_package_dir }}"
      arguments: prod
  become_user: "{{app_apache_user}}"
  become: yes

Ошибка, которую я получаю:

"stderr": "\n
\n [Symfony\Component\Console\Exception\CommandNotFoundException] \n There are no commands defined \"dump-env\".
\n

доступные подробные журналы:

fatal: [testhost.com]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "apcu_autoloader": false,
            "arguments": "prod",
            "classmap_authoritative": false,
            "command": "dump-env",
            "executable": null,
            "global_command": false,
            "ignore_platform_reqs": false,
            "no_dev": true,
            "no_plugins": false,
            "no_scripts": false,
            "optimize_autoloader": true,
            "prefer_dist": false,
            "prefer_source": false,
            "working_dir": "/var/www/source"
        }
    },
    "msg": "[Symfony\\Component\\Console\\Exception\\CommandNotFoundException] Command \"dump-env\" is not defined. help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]"
}
                                                          ",

Я попробовал модуль ansible command для прямого запуска команды, но получаю ту же ошибку.

Однако я могу запустить команду, подключившись к удаленному (centos) экземпляру по ssh:

sudo -u apache composer dump-env prod

Restricting packages listed in "symfony/symfony" to "4.3.*"
Successfully dumped .env files in .env.local.php

Вы уверены, что обе команды работают в одном рабочем каталоге? Вы пытались сбросить app_composer_package_dir, чтобы проверить, совпадает ли он с тем, который вы использовали при ssh-подключении к хосту?

dbrumann 16.07.2019 19:05

@dbrumann, пожалуйста, проверьте подробные журналы

sakhunzai 16.07.2019 19:21

Будут ли выполняться какие-либо другие шаги композитора после этого? Может быть, composer install называется потом. Если symfony/flex еще не установлен, это может объяснить, почему команда отсутствует раньше, но становится доступной позже, когда вы подключаетесь по ssh и запускаете команду?

dbrumann 16.07.2019 19:30

Установка композитора @dbrumann запускается до этого шага и работает, как ожидалось.

sakhunzai 16.07.2019 19:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
4
3 835
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пока я не могу запустить команду composer dump-env prod с помощью модуля Ansible Composer. Однако следующая задача с использованием модуля ansible command выполняется успешно, например

- name: Composer dump env for production
  command: "{{composer_install_path}}  --working-dir = {{ app_composer_package_dir }} dump-env prod"
  become_user: "{{app_apache_user}}"
  become: yes

что переводится как sth:

sudo -u apache /usr/local/bin/composer --working-dir=/var/www/source dump-env prod

Это очень помогло, мы обнаружили, что это то же самое для нас после обновления до Symfony 4 и необходимости обновить наши сценарии развертывания. Ваше здоровье!

RyanH 31.03.2021 17:06

Другие вопросы по теме