質問: ### 前提・実現したいこと https://deployer.org PHPのデプロイツール「Deployer」の導入を検討しています。 目的としては、今までデプロイ先にsshして、ソースを更新して、ベンダーを更新して、アセットをビルドして...だったのを仮想開発環境内でコマンド1つでデプロイできるようにしたいです。 ### 発生している問題・エラーメッセージ デプロイ自体は問題なくできているのですが、 `deploy:update_code` タスクの実行時に毎回GitHubアカウントの入力を求められます。 ``` ➤ Executing task deploy:update_code Failed to add the host to the list of known hosts (dev/null). Username for 'https://github.com': ``` アカウントの入力を省略できれば、本当にコマンド1つでデプロイが完了するので嬉しいです。 ### 試したこと リポジトリの設定で `Deploy keys` という項目があったので、公開鍵を突っ込んで見たのですが特に変化もなく。。 ### 補足情報(言語/FW/ツール等のバージョンなど) * Mac内にVagrantでCentOS7の環境を作っています。 * deployerはCentOS内でコマンドを実行しています。 * デプロイ先はAWS EC2サーバーにデプロイしてます。 * GitHubはプライベートリポジトリを使っています。
回答: 方法は2つあると思います。 1つ目は、GitHubにSSHキーを使って認証する方法です。 SSH鍵の登録方法などは、SSHの公開鍵を作成しGithubに登録する手順が参考になるかと ※SSHキーのパスフレーズはなしにしておくといいと思います。 ※deployerのrepositoryの設定は`git@github.com:xxx`にします。 2つ目は、GitHubにPersonal access tokensを使って認証する方法です。 トークンの作成方法は、Github で OAuth Token を利用して clone/submodule するとかが参考になるかと ※deployerのrepositoryの設定は、`https://:x-oauth-basic@github.com/xxx`にします ちなみに、自分もdeployerを使っており、2つ目の方法でやっています。セキュリティ的には1つ目の方がよいかもしれません。 **追記** deployerを実行するユーザがGitHubへのSSH秘密鍵を持っているなら、deployerのhost設定で`forwardAgent(true)`とすれば、SSHの鍵がデプロイユーザに渡されてそのままGitHubの認証に使うこともできます。 https://deployer.org/docs/hosts