私は実動サーバーにコードを効果的にアップロードする方法を見つけようとしています。私のdevサーバはローカルマシン上にあるので、設定ファイルは異なります。理想的には、sFTPを使用し、変更されたファイルのみをアップロードしたコマンドラインクライアントを探したいと思います。プロダクションサーバーへのコードのアップロード
私は今日私の脳を捜したが、これに対する解決策をまだ見つけていない。私はアイデアやソフトウェアの推奨を大変感謝しています。
私は実動サーバーにコードを効果的にアップロードする方法を見つけようとしています。私のdevサーバはローカルマシン上にあるので、設定ファイルは異なります。理想的には、sFTPを使用し、変更されたファイルのみをアップロードしたコマンドラインクライアントを探したいと思います。プロダクションサーバーへのコードのアップロード
私は今日私の脳を捜したが、これに対する解決策をまだ見つけていない。私はアイデアやソフトウェアの推奨を大変感謝しています。
私はrsyncを調べます。これにより、変更されたファイルのみがアップロードされます。次に、コピーからの拡張子に基づいて設定ファイルを除外することができます。
私はgitを使用しており、この種のサーバーのフック機能があります。
輸送はssh経由です。デプロイはgit pushです。
git pushは、ユーザディレクトリにプライベートに保たれた裸のリポジトリに移動します。フックはcronのためにトークンを残します。別のユーザ用の別のcronタスクはトークンを取得し、gitはプライベートベアリポジトリをデプロイメントディレクトリにプルします。これは、いくつかのビットルーベゴールドバーグかもしれませんが、それは私のために働く。取得するには
配備ディレクトリは、裸のリポジトリとは区別されるため、このアプローチの副次的な利点は、配置ディレクトリにGitの差分を行い、興味深い何かが変更されているかどうかを確認することは可能です...
詳細は、サーバ上に空のリポジトリを作成してください(man git-init、--bare参照).git pullを使ってdevマシン上でチェックアウトし、すべてをコピーしてから元に戻すことができるname.gitディレクトリを作成しますサーバー。サーバー上で、name.git/hooks、post-commit、post-updateで "echo hello>/tmp/something"を実行してcronのトークンを残してください。 crontabでは、別のcronスクリプトがこのファイルを探し、見つかった場合はgit pullを実行します。他のことも行うことができます。互換性の調整が重要である場合