以 vagrant 用户身份使用 composer 安装 drush

以 vagrant 用户身份使用 composer 安装 drush

我在 Ubuntu Trusty x64 上使用 Vagrant。我想自动安装某些软件包,因此我使用 Ansible 作为配置程序(我是初学者)。Drush 是我想要安装的软件包之一,安装 Drush 的推荐方法是使用 Composer。我已正确安装 Composer,但没有安装 Drush。我希望将其安装在 vagrant 用户的主目录(安装全局 composer 软件包的位置)上,但它安装在 root 用户的主目录中。

我的playbook.yml样子是这样的:

- hosts: all
  gather_facts: yes
  sudo: yes

  roles:
   - composer
   - drush

我的 drush 的main.yml任务如下:

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

我的作曲家的main.yml任务是这样的:

---
- 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

其中composer_envvar.sh包含 ff:

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

必须有一种方法可以告诉 ansible 以 vagrant 用户身份运行 composer 命令。

答案1

你调查过吗Ansible 的 composer 命令

但是,您现在不必依赖 Drush 的作曲家,而是可以利用drush.phar每个版本附带的文件。这非常简单直接。

下面是一个示例任务,它检查 Drush 是否已安装,如果未安装,则下载 phar 文件并使其可执行并在您的 中可用$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 }}"

然后放入drush_path: /usr/local/bin/drush一个vars.yml文件,以防您想$PATH在将来的某个时间点进行更改。drush_version: 8.0.1允许您在 Drush 更新时更改要安装的版本。

相关内容