我们用git托管代码, 线上有多台服务器, 求代码自动部署同步所有服务器的方法;
希望提供较详细的方案信息, 谢谢!
このようなコードをデプロイしないでください。git pull では同期が保証されません。マシンでプルが失敗した場合はどうすればよいですか?コードをプルし、それをサーバーに段階的に同期するには、別のデプロイメント マシンを使用することをお勧めします。 ansible
まず第一に、オリジンのベア ライブラリをオンラインのサーバーに配置するのか、それともこれらのオンライン サーバーをオリジンからコードを複製するクライアントとして扱うのかを知りたいです。 第 2 に、オンライン サーバーは自動デプロイメントを実現するために次のことを行うことができます: 1. git にフック アクションを追加します。git がアクションを完了するたびに、対応するアクションをフックを通じて実行できます。2. Linux の corntab とシェル スクリプトを使用します。定期的にいくつかのチェックを行うか、定期的に git 更新を実行します。 3. ファイルを定期的に同期するには、引き続き 2 の方法 (上記の同期) を使用します。 これは私のアイデアです。
rsyncサーバーファイル同期
git を使用して学期中にサーバーの 1 つをデプロイしたので、他のすべてのサーバーは一方向 rsync を使用して現在のマシンと同期できます
カピストラーノ
teamcity または jenkins を使用してツールを自動的に構築し、構築されたファイルを各マシンにアップロードするスクリプトを作成します。
このようなコードをデプロイしないでください。git pull では同期が保証されません。マシンでプルが失敗した場合はどうすればよいですか?コードをプルし、それをサーバーに段階的に同期するには、別のデプロイメント マシンを使用することをお勧めします。 ansible
を使用できます。まず第一に、オリジンのベア ライブラリをオンラインのサーバーに配置するのか、それともこれらのオンライン サーバーをオリジンからコードを複製するクライアントとして扱うのかを知りたいです。
第 2 に、オンライン サーバーは自動デプロイメントを実現するために次のことを行うことができます: 1. git にフック アクションを追加します。git がアクションを完了するたびに、対応するアクションをフックを通じて実行できます。2. Linux の corntab とシェル スクリプトを使用します。定期的にいくつかのチェックを行うか、定期的に git 更新を実行します。 3. ファイルを定期的に同期するには、引き続き 2 の方法 (上記の同期) を使用します。
これは私のアイデアです。
rsyncサーバーファイル同期
git を使用して学期中にサーバーの 1 つをデプロイしたので、他のすべてのサーバーは一方向 rsync を使用して現在のマシンと同期できます
カピストラーノ
teamcity または jenkins を使用してツールを自動的に構築し、構築されたファイルを各マシンにアップロードするスクリプトを作成します。