Установка Composer и Drush

Drupal имеет спутника командной строки в форме Drush. Drush разрабатывается независимо от Drupal и предоставляет полный набор команд CLI для управления Drupal. Drush, как и большинство современных инструментов PHP, интегрируется с внешними зависимостями, определенными в файле composer.json, описывающем зависимости от Composer.

Мы могли бы просто загрузить Drupal и выполнить некоторую настройку в браузере вручную, но наша цель состоит в том, чтобы иметь полностью автоматизированную и идемпотентную установку Drupal. Итак, нам нужно установить Composer, затем Drush:

- name: Download Composer installer.
  get_url:
    url: https://getcomposer.org/installer
    dest: /tmp/composer-installer.php
    mode: 0755

- name: Run Composer installer.
  command: >
    php composer-installer.php
    chdir=/tmp
    creates=/usr/local/bin/composer

- name: Move Composer into globally-accessible location.
  shell: >
    mv /tmp/composer.phar /usr/local/bin/composer
    creates=/usr/local/bin/composer

Первые две команды загружают и запускают установщик на основе PHP, который генерирует архив приложения "composer.phar" PHP в /tmp. Затем этот архив копируется (с помощью shell команды - mv) в директорию /usr/local/bin/composer, поэтому мы можем использовать команду composer для установки всех зависимостей Drush. Последние команды последних двух задач срабатывают только в том случае, если файл /usr/local/bin/composer еще не существует (с помощью параметра creates).

Теперь мы установим Drush через git:

- name: Check out drush master branch.
  git:
    repo: https://github.com/drush-ops/drush.git
    dest: /opt/drush

- name: Install Drush dependencies with Composer.
  shell: >
    /usr/local/bin/composer install
    chdir=/opt/drush
    creates=/opt/drush/vendor/autoload.php

- name: Create drush bin symlink.
  file:
    src: /opt/drush/drush
    dest: /usr/local/bin/drush
    state: link

После загрузки Drush в /opt/drush мы используем Composer для установки всех необходимых зависимостей. В этом случае мы хотим, чтобы Ansible запустил composer install в каталоге /opt/drush , поэтому мы перейдем в этот каталог с помощью параметра chdir=/opt/drush. По окончанию процесса файл /opt/drush/vendor/autoload.php будет создан, поэтому мы используем параметр creates.

Наконец, мы создаем символическую ссылку от /usr/local/bin/drush к исполняемому файлу в /opt/drush/drush, поэтому мы можем вызвать команду drush в любом месте системы.

results matching ""

    No results matching ""