Я не могу запустить команду симфони флекс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
@dbrumann, пожалуйста, проверьте подробные журналы
Будут ли выполняться какие-либо другие шаги композитора после этого? Может быть, composer install называется потом. Если symfony/flex еще не установлен, это может объяснить, почему команда отсутствует раньше, но становится доступной позже, когда вы подключаетесь по ssh и запускаете команду?
Установка композитора @dbrumann запускается до этого шага и работает, как ожидалось.




Пока я не могу запустить команду 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 и необходимости обновить наши сценарии развертывания. Ваше здоровье!
Вы уверены, что обе команды работают в одном рабочем каталоге? Вы пытались сбросить
app_composer_package_dir, чтобы проверить, совпадает ли он с тем, который вы использовали при ssh-подключении к хосту?