Laravel AWS SSH
, (*1)
Laravel AWS SSH Client for Log Tailing and Other using Instance ID's and Elastic Beanstalk Applications Names/Environments., (*2)
Purpose
I found a need to want to SSH and tail logs from my EC2 Instances and Elastic Beanstalk Applications. I figured this would be an easier way to do so when working within a Laravel project thanks to Laravel 4.1 and the remoting functionality., (*3)
Long Term Goals
Eventually I'll create a SSH-type Facade that allows for being able to SSH into EC2 instances (or Elastic Beanstalk instances) and run commands through it., (*4)
Installation
With composer, simply add "atyagi/laravel-aws-ssh": "dev-master"
to your composer.json., (*5)
Once composer update
is ran, add, (*6)
'Atyagi\LaravelAwsSsh\Providers\LaravelAwsSshServiceProvider',
, (*7)
to the providers array in app/config.php
., (*8)
At this point, you should see eb:tail
and ec2:tail
available for use., (*9)
Versions
- dev-master -- Stable release version
- dev-dev -- Generally stable, but still the main development branch
- tags -- see Packagist (https://packagist.org/packages/atyagi/laravel-aws-ssh) for specific tagged versions. Most releases to master get tagged.
Usage
Run Artisan commands as follows:, (*10)
Elastic Beanstalk
For tailing Elastic Beanstalk environments logs:, (*11)
php artisan eb:tail [-u|--user[="..."]] [--keyFile[="..."]] env logFile
, (*12)
where:
- u
is the user to SSH as (defaults to config value)
- keyFile
is the key file location (defaults to key path value in config)
- env
is the Environment name
- logFile
is the absolute path of the log file location, (*13)
EC2
For tailing logs on EC2 Instances:, (*14)
php artisan ec2:tail [-u|--user[="..."]] [--keyFile[="..."]] instanceId logFile
, (*15)
where:
- u
is the user to SSH as (defaults to config value)
- keyFile
is the key file location (defaults to key path value in config)
- instanceId
is the EC2 Instance ID
- logFile
is the absolute path of the log file location, (*16)
Configuration
/*
|--------------------------------------------------------------------------
| AWS Credentials
|--------------------------------------------------------------------------
|
| AWS Access Key, Secret Key, and Region.
| Note that 'us-east-1' will be used if none is provided
|
*/
'aws' => array(
'access_key' => '', //AWS Access Key
'secret_key' => '', //AWS Secret Key
'region' => '', //AWS Region to use in querying
),
/*
|--------------------------------------------------------------------------
| Defaults for SSH
|--------------------------------------------------------------------------
|
| Default info for SSH commands
|
*/
'ssh_defaults' => array(
'default_user' => '', //Default SSH User
'default_key_path' => '', //Default SSH Key Path
),