如何通过salt state.apply提供$ HOME或$ COMPOSER_HOME选项?

时间:2018-11-01 19:32:05

标签: php composer-php devops salt-stack

我正在尝试通过Salt安装作曲家。这是我正在使用的composer.sls:

get-composer:
 cmd.run:
    - name: 'CURL=`which curl`; $CURL -sS https://getcomposer.org/installer | php'
    - unless: test -f /usr/local/bin/composer
    - cwd: /root/

install-composer:
  cmd.wait:
    - name: mv /root/composer.phar /usr/local/bin/composer
    - cwd: /root/
    - watch:
      - cmd: get-composer

我正在这样运行它:

salt 'webserver' state.apply composer

我得到的错误说(部分):

stdout:
              All settings correct for using Composer
              The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly
Summary for webserver
------------
Succeeded: 0 (changed=1)
Failed:    2

现在这是我在苦苦挣扎中遇到的问题。

Composer Salt formula documentation page上说:

Installed ... composer_home=u'/root'

$COMPOSER_HOME是选项之一。如何提供此选项?我只是在文档中找不到它。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并且能够通过在env变量下定义COMPOSER_HOME来解决此问题,如下所示:

get-composer:
  cmd.run:
    - name: 'CURL=`which curl`; $CURL -sS https://getcomposer.org/installer | php'
    - unless: test -f /usr/local/bin/composer
    - cwd: /var/www/
    - env:
      - COMPOSER_HOME : /var/www

install-composer:
  cmd.wait:
    - name: mv /var/www/composer.phar /usr/local/bin/composer
    - cwd: /var/www/
    - watch:
      - cmd: get-composer