Windowsインスタンスへの継続的な展開

連続配信とは、多くの人がおそらく複数回聞いたことがあるでしょう。 このプロセスの重要なポイントの1つは、ビルドパイプライン(請負業者から顧客への「パイプライン」)の構築です。 そのためには、プロジェクトの組み立て、インフラストラクチャへの展開、テストなどのプロセスを自動化する必要があります。 そのようなタスクに最適なツールはJenkinsです。



アプリケーションの展開を自動化するための最も簡単なオプションは、sshを介してインフラストラクチャホストでJenkinsスクリプトを実行することです。 しかし、1つ(または複数)のWindowsがLinuxインスタンスのフリートに実行されていたらどうでしょうか? 「敵」ホストに展開する方法-カットの下を参照してください。





Linuxだけでなく(ほとんど)Windowsにデプロイするには、FreeSSHdをインストールして、サービスとして実行する必要があります。 次に、「freeSSHd設定」ウィンドウ(システムトレイから呼び出されます)で設定する必要があります。 すべての設定/機能を説明するのではなく、基本的なものだけを説明します。リモートコマンドの実行に必要なものです。 「ユーザー」タブで、ユーザー「jenkins」を追加し、次の設定を設定します。





[SSH]タブで:





「認証」タブで、公開鍵が保存されるパスを指定する必要があります。





展開のホストの準備ができました!



次に、Jenkinsホストでキーペアを生成し、キーの公開部分をfreeSSHd設定で指定されたWindowsインスタンスのディレクトリに配置する必要があります。

すべてが正しく設定されているかどうかを確認します(Jenkinsで):

# su jenkins - $ ssh jenkins@10.1.1.160 'cmd /c dir'
      
      





ファイルのリストを取得した場合、すべては問題ありません。



デプロイメントに直接渡します。 Jenkinsで新しいジョブを作成します(「新しいジョブ」をクリックします)。 次に、名前を設定し、「フリースタイルソフトウェアプロジェクトをビルドする」を選択します。 開いた編集ページの[ビルド]セクションで、[ビルドステップの追加]をクリックし、[シェルの実行]を選択します。

ここでは、アーティファクト(この場合はgitリポジトリから)を取得するbashスクリプトを記述し、それらをJenkinsホストからWindowsインスタンスにコピーして、cmdスクリプトを実行します。



 #!/bin/bash -x REPO=/path/to/local/repo/ cd $REPO git checkout git pull origin master #copy files: lftp -u jenkins,pl sftp://10.1.1.160 <<EOF mirror -R ./ bye EOF #start daemons: ssh jenkins@10.1.1.160 'cmd /c cd \DIRECTORY && script.cmd'
      
      







ここではすべてが簡単です。スクリプトはアーティファクトをダウンロードし、Windowsインスタンスにコピーし、必要なcmdスクリプトを実行します。



これらすべてのアクションの後、「Build Now」をクリックすると、アプリケーションがデプロイされるジョブがあります。



ご清聴ありがとうございました! 成功した配備!



All Articles