Jeinkins/Dockerコマンドを使用してAWS EC 2サーバに配備
この実践には、2つのAWS EC 2インスタンスが使用されます.
1つは、実際に導入されたworker-instance(
もう1つはjenkinsをインストールしたjenkins-inspaceです.
カスタム
AWS EC 2インスタンスのインストール方法は、このブログでご覧ください.
https://velog.io/@mooh 2 j/AWS-サーバ環境-AWS-EC 2の作成
プロジェクトルートディレクトリにDockerfileを作成してdockerイメージを実行します.
Dockerfile
https://spring.io/guides/gs/spring-boot-docker/
ubuntu(
正しい取り付け方法は必ず
https://docs.docker.com/engine/install/debian/
インストール方法はこのブログを参照できます.
https://velog.io/@mooh 2 j/AWS-EC 2-Docker-インストール
JenkinsをインスタンスとするCI/CDシステムをインストールします.
もちろんdockerを使用してjenkinsをインストールできますが、ここでは
AWS EC 2インスタンスにjenkinsをインストールする方法については、このブログを参照してください.
https://velog.io/インストール@mooh 2 jj/jenkins-AWS-EC 2
https://archives.jenkins-ci.org/plugins/publish-over-ssh/latest/
このページにアクセスしてダウンロードし、手動でインストールします.
Jenkins管理>
ファイルを選択し、
インストールが完了すると、
Jenkins管理から
一番下は
ジェンキンスは、work-instanceに配置用の設定を登録するために、ジェンキンスに秘密鍵と公開鍵を作成する必要があります.
次の命令を下すと出てきた.
確認もあります.
ジェンキンス公開鍵(
次いでjenkins−instancedml秘密鍵(
そして、次の4つのフォームにも情報を入れます. Name:使用するSSHサーバの名前を入力します. ホスト名:実際に接続するリモートサーバip、接続パスを入力します.ex)パブリックIPv 4アドレス:3.37.87.X Username:接続するリモート・サーバのユーザー名. リモート・ディレクトリ:リモート・サーバに接続されているディレクトリ. 💥できない場合は、このようなエラーメッセージが表示される可能性があります.
この場合、
もしかすると、
ジェンキンスがSSHサーバに配備したjarファイルをdockerとして実行
DockerHubに画像を登録します.
Gitに登録されている項目名をそのまま入れました
また、shell入力のコマンド
解決策はこのブログの下部を見てください.
https://velog.io/インストール@mooh 2 jj/jenkins-AWS-EC 2
💥dockerインストール後/var/run/docker.sock発生
SSHで配備jarファイルを送信する準備ができました.
次のJenkins Itemをクリックし、
ここで、NameにはWorkerインスタンス名が含まれています.
Execコマンドには、次のコマンドが含まれます.
結果が成功すると、このような画面が表示されます.
worker-instanceのurlで確認できます.
❗エラーが発生した場合は、ログファイルを作成することをお勧めします.
https://junghwanta.tistory.com/45?category=857298
ソース:https://github.com/mooh2jj/cpu-bound-application-1.git
1つは、実際に導入されたworker-instance(
mooh2jj/cpu-bound-application-1
)です.もう1つはjenkinsをインストールしたjenkins-inspaceです.
カスタム
8080포트
およびHTTP 80포트
も、それぞれのネットワークインバウンドルールに追加される.AWS EC 2インスタンスのインストール方法は、このブログでご覧ください.
https://velog.io/@mooh 2 j/AWS-サーバ環境-AWS-EC 2の作成
導入するプロジェクトDockerfile
プロジェクトルートディレクトリにDockerfileを作成してdockerイメージを実行します.
mooh2jj/cpu-bound-application-1
ドックファイルDockerfile
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
springfoot dockerガイドを参照してくださいhttps://spring.io/guides/gs/spring-boot-docker/
work-instanceにdockerをインストールする
ubuntu(
Debian버전
)にdockerをインストールするには、次のコマンドに従います.正しい取り付け方法は必ず
docker 가이드문서
で確認して取り付けてください.https://docs.docker.com/engine/install/debian/
インストール方法はこのブログを参照できます.
https://velog.io/@mooh 2 j/AWS-EC 2-Docker-インストール
jenkinsインスタンスにjenkinsをインストールする
JenkinsをインスタンスとするCI/CDシステムをインストールします.
もちろんdockerを使用してjenkinsをインストールできますが、ここでは
인스턴스에 바로 jenkins를 설치하는 방식
を使用します.AWS EC 2インスタンスにjenkinsをインストールする方法については、このブログを参照してください.
https://velog.io/インストール@mooh 2 jj/jenkins-AWS-EC 2
publish-of-sshを手動でインストール
publish-over-ssh
を手動で取り付ける必要があります.(現在プラグインとしてインストールできません)https://archives.jenkins-ci.org/plugins/publish-over-ssh/latest/
このページにアクセスしてダウンロードし、手動でインストールします.
Jenkins管理>
플러그인 관리
>고급
>플러그인 올리기
ファイルを選択し、
올리기
ボタンを押します.インストールが完了すると、
Jenkins管理から
시스템 설정
に入ります.一番下は
publish-over-ssh
フォーム画面です.Jenkins秘密鍵&公開鍵の作成
1)jenkins秘密鍵の生成&公開鍵
ジェンキンスは、work-instanceに配置用の設定を登録するために、ジェンキンスに秘密鍵と公開鍵を作成する必要があります.
次の命令を下すと出てきた.
# `ssh-keygen -t rsa`가 안될 때 다음 명령어로
ssh-keygen -t rsa -b 4096 -m PEM
💥注意)秘密鍵(id_rsa
)の最初の段落のアルファベットは大文字でなければなりません.確認もあります.
cd .ssh
vi id_rsa.pub
2)jenkins公開鍵worker-instaspums登録
ジェンキンス公開鍵(
id_rsa.pub
)をworker-instanceの.ssh/authorized_keys
に追加します.# worker-instacne에서 ~/.ssh 권한설정
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# jenkins-instance의 공개키를 worker-instance 인증키에 등록
vi ~/.ssh/authorized_keys
3)jenkins秘密鍵を使用してpublish-of-sshフォーム画面にworker-instanceをSSHサーバとして登録する
次いでjenkins−instancedml秘密鍵(
id_rsa
)の内容をコピーする. cat ~/.ssh/id_rsa
publish-over-sshフォーム画面のKey
画面にコピー貼り付けを行います.そして、次の4つのフォームにも情報を入れます.
whoami
命令語から分かる.pwd
命令語から分かる.# error 문구
jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config
この場合、
id_rsa
id_rsa.pub
は正しく入力されていません.ちゃんとコピーして貼り付けておけばいいです.もしかすると、
ssh-keygen -t rsa
コマンド言語がインストールされているかどうか見てみましょう.この命令より.ssh-keygen -t rsa -b 4096 -m PEM
のはずです.DockerHubイメージの登録
ジェンキンスがSSHサーバに配備したjarファイルをdockerとして実行
DockerHubに画像を登録します.
Gitに登録されている項目名をそのまま入れました
mooh2jj/cpu-bound-application-1
また、shell入力のコマンド
sudo 명령을 젠킨스에서 시도하려면 권한
を付与しなければならない.解決策はこのブログの下部を見てください.
https://velog.io/インストール@mooh 2 jj/jenkins-AWS-EC 2
💥dockerインストール後/var/run/docker.sock発生
permission denied
このブログを参照してください.https://velog.io/@mooh 2 j/AWS-EC 2-Docker-インストール Jenkins Itemの構成
SSHで配備jarファイルを送信する準備ができました.
次のJenkins Itemをクリックし、
Freestyle project
ボタンを押します.빌드 후 조치
に入ります.ここで、NameにはWorkerインスタンス名が含まれています.
Execコマンドには、次のコマンドが含まれます.
nohup docker run -p 8080:80 mooh2jj/cpu-bound-application-1 > /dev/null 2>&1 &
Build Now
をクリックし、コンソール出力で確認します.結果が成功すると、このような画面が表示されます.
worker-instanceのurlで確認できます.
❗エラーが発生した場合は、ログファイルを作成することをお勧めします.
/dev/null
をnohub.out
に変更すると、ログの問題を確認できます.sudo nohup docker run -p 8080:8080 mooh2jj/docker-jenkins-github-test > nohup.out 2>&1 &
このように見ることができます# 꼬리부터 보는 명령어
cd ~
tail -f nohup.out
リファレンス
https://junghwanta.tistory.com/45?category=857298
ソース:https://github.com/mooh2jj/cpu-bound-application-1.git
Reference
この問題について(Jeinkins/Dockerコマンドを使用してAWS EC 2サーバに配備), 我々は、より多くの情報をここで見つけました https://velog.io/@mooh2jj/젠킨스-자동배포하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol