
Laravel5系の場合。
$ composer require laravelcollective/remote:5.* $ php artisan vendor:publish --provider="Collective\Remote\RemoteServiceProvider" Copied File [/vendor/laravelcollective/remote/config/remote.php] To [/config/remote.php] Publishing complete.
Laravelのバージョンと合わせること
config/app.php
'providers' => [
・・・
/*
* Package Service Providers...
*/
Bugsnag\BugsnagLaravel\BugsnagServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Collective\Remote\RemoteServiceProvider::class,
'aliases' => [ ... 'SSH' => Collective\Remote\RemoteFacade::class, ... ],
config/remote.php
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Remote Connection Name
|--------------------------------------------------------------------------
|
| Here you may specify the default connection that will be used for SSH
| operations. This name should correspond to a connection name below
| in the server list. Each connection will be manually accessible.
|
*/
'default' => 'production',
/*
|--------------------------------------------------------------------------
| Remote Server Connections
|--------------------------------------------------------------------------
|
| These are the servers that will be accessible via the SSH task runner
| facilities of Laravel. This feature radically simplifies executing
| tasks on your servers, such as deploying out these applications.
|
*/
'connections' => [
'production' => [
'host' => '',
'username' => '',
'password' => '',
'key' => '',
'keytext' => '',
'keyphrase' => '',
'agent' => '',
'timeout' => 10,
],
'proxy_master_srv' => [
'host' => env('PROXY_MASTER_SRV_HOST'),
'username' => env('PROXY_MASTER_SRV_USER'),
'password' => '',
'key' => base_path(env('PROXY_MASTER_SRV_KEY')),
'keytext' => '',
'keyphrase' => '',
'agent' => '',
'timeout' => 10,
],
],
/*
|--------------------------------------------------------------------------
| Remote Server Groups
|--------------------------------------------------------------------------
|
| Here you may list connections under a single group name, which allows
| you to easily access all of the servers at once using a short name
| that is extremely easy to remember, such as "web" or "database".
|
*/
'groups' => [
'web' => ['production'],
],
];
.env
PROXY_MASTER_SRV_HOST="xxx.xxx.xxx.xxx" PROXY_MASTER_SRV_USER="ec2-user" PROXY_MASTER_SRV_KEY=config/keys/proxy_master_srv.pem
config/keys/proxy_master_srv.pem
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAmG4uDBgiMuxPikFqkNu79Sm+Bhkj/rEG0CeKdV91z3NoKjm6Q2hmPuUP1hYv ・・・ jpziKFK/JsArUX46ExMZWva3Ea8sgcX/lIXrK3diChA+k74hu8N4S1QvwshYiMsfuu6T -----END RSA PRIVATE KEY-----
$ php artisan config:clear $ composer dumpa
$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.4.5 — cli) by Justin Hileman
>>> use SSH;
>>> SSH::into('proxy_master_srv')->run(['ls -laht']);
[ec2-user@xxx.xxx.xxx.xxx] (proxy_master_srv) total 12K
drwx------ 3 ec2-user ec2-user 74 Jun 19 06:00 .
drwx------ 2 ec2-user ec2-user 29 Jun 19 06:00 .ssh
drwxr-xr-x 3 root root 22 Jun 19 06:00 ..
-rw-r--r-- 1 ec2-user ec2-user 18 Jan 16 00:56 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user 193 Jan 16 00:56 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user 231 Jan 16 00:56 .bashrc
=> null

