実習の先生Jenkins


いよいよ6月終了の実習生活期間の勉強を終えました.
そのほか、Truffle、IPFS、Swam、Sonarqubeなどいろいろなプラットフォームを習ったことがありますが、内容が少ないので...これからこれらの技術が発展すれば、位置づけられるはずだ.
その後、ビットコイン構造およびその間に行われる卒業プロジェクトで使用される超レジャー構造2.2を宣伝する可能性がある.
これは最後の内容Jenkinsへの宣伝ですまずCI/CDとは何かを理解してみましょう.
対応する位置はNodeこれはjsベースのプロジェクトを展開するために実際に用いられる方法と考察を考慮すべきである.
1.CI/CD
CIとは?(Continuous Integration)
これは、開発者向けの自動化プロセスの1つであり、アプリケーションの変更時に自動的に構築およびテストされ、Github共有ライブラリに統合される継続的な統合を意味します.
2.CIツール
多くの開発者は、プログラムを開発する際に、バージョンの競合を防ぐために、共有領域のリポジトリに頻繁に作業をアップロードし、継続的な統合を実現します.
CIツールが登場する前に、通常は一定時間ごとに構築が実行されます.
主にこれらの行動があってこそCIと呼ぶことができる.
  • コードリポジトリ
  • 自動化バージョン
  • 自動化テスト
  • 一致コミット規則
  • アクションコミット
  • クイックバージョン
  • ステージ環境
  • Nightly構築環境
  • オープンCI結果
  • 自動配置
  • CDとは?(Continuous Delivery or Continuous Deploy)
    これは、ソフトウェアがいつでも確実に発売されることを保証するためです.継続的な導入、アプリケーションの変更により、共有リポジトリからユーザーが利用可能な環境に自動的に配布され、ユーザーのフィードバックが迅速に反映されます.
    ソフトウェアの迅速かつ定期的な構築、テスト、リリース、およびビジネス・アプリケーションへの増分更新の適用により、導入変更のコスト、時間、リスクが削減されます.
    短期間のソフトウェア配布とプロセス自動化.
    2. Jenkins
    ジェンキンスは、サブバージョン、gitなどのバージョン管理システムと組み合わせて使用し、コミットの検出時に自動化テストを含む構築を自動的に開始します.

  • メリット
  • プロジェクト標準コンパイル環境におけるコンパイルエラー検出
  • 自動化テスト
  • を実行
  • 静的コード解析が符号化仕様
  • に適合するかどうかを確認する.
  • コンフィギュレーションツールを使用して、ソース位置の変更によるパフォーマンスの変化を監視します.
  • 共同テスト環境導入
  • 500以上のプラグイン
  • 無料利用
  • カスタムオプション
  • 大量プラグイン
  • 多様なアプリケーション事例と豊富なレポート
  • リモートアクセスAPIは
  • を提供する

  • Docker + Jenkins Workflow
  • ソースGithub提出
  • JenkinsでDockerイメージ
  • を構築
  • で自動的に生成されたDockerイメージを使用して、テストサーバ上で
  • をテストします.
  • テストが完了したら、イメージ本番サーバに配備します.

  • ngrok:Secure Tunnels to localhostファイアウォール外接ローカルトンネルプログラム(ローカルテスト用)
  • ngrok http 3000 -- 127.0.0.1:3000
    1.インストール
    docker pull jenkins/jenkins:lts (일반 jenkins 이미지는 plugin 설치 안되는 에러)
    docker run -d -p 8080:8080 -v /home/deploy/jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts (-v 옵션 host 디렉토리:container 디렉토리 연결)
    (stop 상태에서는) docker start jenkins
    (터미널 접속 시) docker exec -it jenkins /bin/bash
    ジェンキンスサーバ8080を実行すると、推奨されるPluginインストールオプションとしてインストールされる.
    追加
  • Github plugin:JenkinsとGithub統合
  • グローバルSnake Notifier Plugin:作業通知の設定
  • 発行OverSSH:sshを使用して構築ファイル
  • を送信
  • 組み込みビルドステータスプラグイン:Githubリポジトリにビルドステータスバーを作成する
    -Managed Scripts: Node.スクリプトをインストールしてjsベースのサーバを配置します.
  • 2.設定
    1.Jenkinsホームページの設定
  • Jenkins管理>グローバルセキュリティの構成
  • Security Realm
    Jenkins独自のユーザーデータベースを確認します.ユーザーのサブスクリプションは、サブスクリプションが必要な場合にのみ許可されます.
  • Authorization
    Matrix-based securityを選択して、ユーザーとグループに付与するスーパータスクを選択します.(現在はユーザーの追加後に指定されています)
  • CSRF保護設定チェックを解放する必要があります.外部からJob
  • をトリガすることができる.
  • Jenkins管理>システム設定
  • Githubタブ
    Github生成のPerson Access Tokensの登録
    タグをコピーしてManage hooksを確認する
    Credentials Add > Jenkins
    Kind: Secret text, Secret: Personal access token, ID: Github ID
  • Publish Over SSH
    sshを使用してリモートサーバに配備します.
    配備のためには、Jenkins上のプロジェクトコードをscpを使用してNAVER Cloudサーバにコピーする必要があります.
  • NAVER Cloudサーバにおいてもssh鍵が生成される.
    ssh-keygen -t rsa
  • Jenkins(Docker)では、NAVER Cloudサーバをホストとし、NAVER Cloudサーバ上でその公開鍵を許可する鍵で
  • を登録する.
  • JenkinsサーバにNAVER Cloudサーバを登録するのは既知ホスト
    ssh-keyscan -H (NAVER CLOUD 서버)ip >> ~/.ssh/known_hosts
  • である.
  • Jenkinsによって生成された鍵のうち、NAVER Cloudサーバによって生成された認証鍵に公開鍵(id rsa.pub)が入力される.Jenkinsサーバ秘密鍵パス
    vi ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    chmod 644 ~/.ssh/id_rsa.pub  
    chmod 644 ~/.ssh/authorized_keys
    chmod 644 ~/.ssh/known_hosts

    SSHサーバに配備するSSHサーバ(現在はDocker内部でジェンキンスを使用しているため、内部ネットワークIP)
    構成
  • (配置パスが設定されていない場合は、ここで配置)
  • Slack
    Snak AppにJenkinsをインストールすると、Token Jenkins>システム設定>SnakeにToken
  • を登録します.
    2.Githubホームページを設定します.

  • Githubアカウントトークンの設定
    アカウント設定>開発者設定>個人アクセストークン>Generate new token>repo、admin:repo hookチェック後に作成

  • Github Hookの使用(プッシュ時自動構築)
  • GitHub pluginは手動モードと自動モードを提供し、JenkinsがGitHubのhookを受信できるようにした.
  • 手動モード:ユーザーがGit Repositoryに直接登録と使用を設定する.
  • オートモード:ユーザーのGitHub Outhトークンを使用してJenkinsがHooks&サービスを自動的に登録します.

  • Poll SCM使用時-X
  • 3.プロジェクトの作成
    プロジェクト作成後にリポジトリに接続するか(SSHを使用)、プロジェクト構成を行います.

  • Githubホームページ
    Github専用Repository Settings:SSHキー設定
    ssh-keygen
    cat /.ssh/id_rsa
    Option)Webhook設定:Repo>Settings>Webhook>http://JENKIN'S SERVER/github-webhook/ url、アクティブ.

  • Jenkins
    [ソース管理]タブで、Github Crementures-プライベートキーをIDとして保存します.(GithubリポジトリにPublick Keyが必要です.)この場合、リポジトリアドレスはsshアドレスとなります.

  • 誘発タブの構築

  • GITSCMポーリングのためにGithub hookトリガを選択します.(Webhookを使用する場合)

  • Poll SCM:Gitが見たブランチがコミットなどの変化を検出した場合、自動的に構築後に配置されます.
    15分ごとに構築タスクを実行:H/15**
    構築間隔は、すべての時間の30分前に10分:H(0-29)/10**
    毎週9時から16時まで(週末を除く)2時間ごとに構築を実行:H 9-16/2**1-5
    12月を除き、毎月1日と15日に1回の構築を実行します.HH 1、151-11*

  • Build:Execute管理スクリプトの使用:現在のスクリプト-APIの再起動
  • ファイル管理(Jenkins設定>管理ファイル>新規構成の追加)