開発して、本番環境にDeployのたびにsshログインしてmigrateとかするのが面倒…というか忘れるので、Deployerというのを使った。
インストール
composerからインストール
LaravelアプリケーションDirectoryでComposerでインストール。
$ php -d memory_limit=-1 ~/bin/composer require deployer/deployer --dev
なんか、開発Vagrantがしょぼいのかメモリエラーが出るので -dオプションが必要になってる…
設定ファイル deploy.phpを作る
$ vendor/bin/dep init
すると対話形式の後、deploy.phpができる。既にあるgitリポジトリからremoteを察知してくれるみたい。便利
設定
hostsの部分があるけど、
<?php // Hosts inventory('deploy/hosts.yml'); // host('project.com') // ->set('deploy_path', '~/{{application}}');
としてyamlファイルにまとめる。
ssh
sshに関するところだけ
staging: hostname:example.com user: itoh multiplexing: true sshOptions: port: 2222 UserKnownHostsFile: /dev/null StrictHostKeyChecking: no IdentityFile: /home/vagrant/.ssh/id_rsa_example
これで、itoh@example.com:2222に専用の/home/vagrant/.ssh/id_rsa_exampleキーで入る。その際にFingerPrintはチェックしないし保存も/dev/nullにする(保存しない)。
とりあえずDeploy
なんかあったら怖いのでteststagingって作ってみてテストしてみる。
$ ./vendor/bin/dep deploy teststaging
なるほど、デプロイサーバーからgitで取ってくる必要があるのね。