ftpやsshを使用してWebプロジェクトを展開する方法を知りました。Jenkins:ファイルの削除や移動を含むFTP/SSH展開
私たちは現在、これを処理できる自己製作システムを持っていますが、私はJenkinsに切り替える必要があります。
パブリッシングプラグインがあり、ビルド成果物のアップロードに関してはうまく機能していることは知っています。しかし、ファイルの削除や移動はできません。
私の問題に関して何かヒント、ヒント、アイデアはありますか?
ftpやsshを使用してWebプロジェクトを展開する方法を知りました。Jenkins:ファイルの削除や移動を含むFTP/SSH展開
私たちは現在、これを処理できる自己製作システムを持っていますが、私はJenkinsに切り替える必要があります。
パブリッシングプラグインがあり、ビルド成果物のアップロードに関してはうまく機能していることは知っています。しかし、ファイルの削除や移動はできません。
私の問題に関して何かヒント、ヒント、アイデアはありますか?
Publish Over SSHプラグインを使用すると、sshを使用してリモートサーバーにコマンドを送信できます。これは非常にうまく動作し、新しいバージョンを展開する前にいくつかのファイルを移動/削除していますが、この方法を使用しても何の問題もありませんでした。
アイテムの削除と移動を処理する最も簡単な方法は、 'Publish over'の拡張子の1つを使用して新しいリリースを展開する前に、サーバー上のすべてを削除することです。私は実際には、展開されたバージョンがあなたが望むバージョンであることを知る唯一の方法だと言います。より多くのバージョニングシステムスタイルの動作が必要な場合は、バージョニングシステムを使用するか、rsyncを使用してその一部をカバーする必要があります。
ご要望がきわめて厳しい場合は、独自の条項を作成して削除をマークし、別のスクリプト(Liquibaseなどを使用してデータベースを変更する場合と同じように)を実行することができます。
ところで:私は、 'publish over ...'拡張を使用してビルドした後にライブサイトを自動的に更新しないことをお勧めします。実際にライブサイトを更新したい場合は、Promoted Builds Pluginに依存してほぼ完全に自動化されていますが、少し安全性が増します。
あなたのアドバイスをいただきありがとうございます、私はプロモートビルドのプラグインを確認します。とにかく、ちょっとCSSを変えたり、スクリプトのバグを修正したりして、完全なウェブサイトをアップロードする必要があるのはどうして私には意味がありません。どういうわけか、私はこの問題を抱えている唯一の人だと思うし、他の人が自らのウェブサイトプロジェクトを賢明なホスティング(ssh/git)に配備するか、自動配備を使用していない。 – 4eyes
単純なlftpミラースクリプトを使用して、Jenkinsのビルドアクションとして、削除されたファイルを削除し、変更をリモートFTPサーバーにアップロードするという簡単な解決策を思いつきました。 Lftp Manual Page
簡潔に言うと、jenkinsユーザーディレクトリ〜/ .netrcに設定ファイルを作成し、FTP資格情報を入力します。
machine ftp.remote-host.com
login mySuperSweetUsername
password mySuperSweetPassword
次に「Execのシェルは、」スクリプトにlftpを実行するためのアクションを構築する追加lftpのスクリプトdeploy.lftpを作成し、.gitレポ
set ftp:list-options -a
set cmd:fail-exit true
open ftp.remote-host.com
mirror --reverse --verbose --delete --exclude .git/ --exclude deploy.lftp --ignore-time --recursion=always
のルートにドロップします。
lftp -f deploy.lftp
lftpのスクリプトが
私はどのようにWordPressサイト用に私はを説明した記事を書きました。私はFTP経由でのみアクセスできました。この記事では、FTPからGitに同期する方法と、Jenkinsを使用してFTPに構築して展開する方法について説明します。このアプローチは完璧ではありませんが、機能します。変更されたファイルのみをアップロードし、gitリポジトリから削除されたホストからファイルを削除します(その逆もあります)。
ありがとう、それはおそらく私のsshサーバで私を助けるでしょう。しかし、移動/削除するには? Gitはそれをよく知っていますが、これをデプロイのワークフローにどのように統合するのでしょうか? – 4eyes
移動/削除に関心のあるファイルが既にgitにある場合は、デプロイメントサーバでレポをクローンし、gitコマンドラインを使用してssh経由の公開を使用して変更を取得できます。これは、コンパイルまたはチェックする必要がない静的ファイルがある場合は、展開が必要な場合に適した方法です。あなたがソースコードと静的ファイルのために別々のreposを持っているなら、おそらく最もうまくいくでしょう。 – pushy
ありがとうございます。私たちのプロジェクトは、PHP(TYPO3)ベースのソフトウェアを開発する際に、すべて「静的」なファイルです。 gitを使って移動/削除されたファイルを取得できることは知っていますが、実際には私たち自身の単純なphingベースの配備システムで行っています。私はちょうど驚いています。きれいで効率的なftp/sshデプロイメントをカバーするプラグインはないようです。私は、他の企業がどのようにWebプロジェクトを展開しているのだろうと思っていますが、FTPを使用していませんか?または、ライブサーバ上でsshやgitを使ってカスタム化されたホスティングをもっと高価にすることはできますか? – 4eyes