---
title: "Working with Drush"
date: "2024-02-14T06:18:38+00:00"
summary: "Streamline Drupal site management with Drush CLI tool. Learn installation, aliases setup, and remote access configuration for efficient development across environments."
image:
type: "page"
url: "/service-offerings/working-drush"
id: "e0d71d5a-9105-4a3f-b7e7-543721321458"
---

Drush is a command line (CLI) tool for interacting with a Drupal site locally or remotely. Drush is not globally available on China Managed Services and it should be deployed inside the Drupal codebase through composer.

Installation of Drush
---------------------

To install Drush, Acquia recommends adding it as a composer dependency to your Drupal codebase.

    composer require drush/drush:^10.0

This will install drush into the vendor/bin directory of your codebase root.

Important

This document assumes this is where your drush executable is found.

Drush aliases
-------------

Drush aliases help make it easier to access your sites on China Managed Services using drush. When your full provision is complete, you’ll receive an Acquia Support ticket with:

*   The IP addresses for your dev, test, and prod environments
    
*   Username for your unix/application user
    

Important

You’ll need to provide SSH public keys and originating IP addresses to the Support ticket so that your SSH access (and drush aliases) work correctly.

To configure remote access to your China Managed Services environments, create a <app>.site.yml drush alias file as shown in the following example:

    prod:
      host: <prod_ip_address>
      user: <app_user>
      root: /var/www/<app_user>/html/source/docroot/
      uri: http://www.<app_domain>.com.cn
      ssh:
        options: '-o ProxyJump=<app_user>@<bastion_ip_address> -o ForwardAgent=yes'
      paths:
        drush-script: '/var/www/<app_user>/html/source/vendor/bin/drush'
     test:
      host: <test_ip_address>
      user: <app_user>
      root: /var/www/<app_user>/html/source/docroot/
      uri: http://test.<app_domain>.com.cn
      paths:
        drush-script: '/var/www/<app_user>/html/source/vendor/bin/drush'
     dev:
      host: <dev_ip_address>
      user: <app_user>
      root: /var/www/<app_user>/html/source/docroot/
      uri: http://dev.<app_domain>.com.cn
      paths:
        drush-script: '/var/www/<app_user>/html/source/vendor/bin/drush'

Important

The production environment routes through a bastion server and uses the ProxyJump command to seamlessly jump through it.

Internal Jump Server
--------------------

If your organization requires you to proxy through a corporate jump server so that you can originate from an allowlisted IP, you can add this to your ssh config so that the above drush alias configuration still works.

    Host corporate.proxy
    ForwardAgent yes
    
    Host <dev_ip_address>
    ProxyJump corporate.proxy
    
    Host <test_ip_address>
    ProxyJump corporate.proxy
    
    Host <prod_ip_address>
    ProxyJump corporate.proxy