Instale o drush usando o composer como usuário vadio

1

Estou usando o Vagrant com Ubuntu Trusty x64. Eu quero automatizar a instalação de certos pacotes, então usei o Ansible como fornecedora (sou iniciante). O Drush é um dos pacotes que eu quero instalar e a maneira recomendada para instalar o Drush é usar o Composer. Eu tenho o Composer instalado corretamente, mas não o Drush. Eu quero que ele seja instalado no diretório inicial do usuário vagabundo (onde os pacotes do compositor global estão instalados), mas ele é instalado no diretório inicial do usuário root.

Meu playbook.yml é assim:

- hosts: all
  gather_facts: yes
  sudo: yes

  roles:
   - composer
   - drush

A tarefa main.yml do meu drush se parece com isso:

---
- name: Install Drush
  remote_user: vagrant
  shell: composer global require drush/drush

A tarefa main.yml do meu compositor é semelhante a:

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

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

- name: Make Composer accessible globally
  shell: mv /tmp/composer.phar /usr/local/bin/composer creates=/usr/local/bin/composer

- name: Add Composer's global packages to path
  copy: src=composer_envvar.sh dest=/etc/profile.d

Onde o composer_envvar.sh contém o ff:

export PATH="~/.composer/vendor/bin:$PATH"

Deve haver uma maneira de dizer ansible para executar o comando composer como usuário vagabundo.

    
por Bryan CS 30.10.2015 / 11:45

1 resposta

3

Você consultou o comando do compositor do Ansible ?

Mas em vez de confiar no compositor para o Drush, agora você pode aproveitar o arquivo drush.phar que acompanha cada lançamento. É muito fácil e direto.

Aqui está uma tarefa de exemplo que verifica se o Drush está instalado e, se não, faz o download do arquivo phar, tornando-o executável e disponível em $PATH :

---
- name: Check if Drush is installed
  stat:
    path: "{{ drush_path }}"
  register: drush

- name: Check Drush version
  shell: drush --version | awk '{print $4}' | head -n1
  register: drush_version_check
  when: drush.stat.exists == true

- name: Install Drush globally
  get_url:
    url: https://github.com/drush-ops/drush/releases/download/{{ drush_version }}/drush.phar
    dest: "{{ drush_path }}"
  when: drush.stat.exists == false or drush_version_check.stdout != "{{ drush_version }}"

- name: Make Drush executable
  file:
    path: "{{ drush_path }}"
    mode: 0755
  when: drush.stat.exists == true or drush_version_check.stdout != "{{ drush_version }}"

Em seguida, insira drush_path: /usr/local/bin/drush em um arquivo vars.yml caso deseje alterar o $PATH em um ponto futuro no tempo. drush_version: 8.0.1 permite que você altere a versão a ser instalada quando o Drush for atualizado.

    
por 05.12.2015 / 12:15