RancherとGitLabでCI/CD環境と運用環境を構築した

GitLabのCI/CD環境をオンプレミスで構築したときの記録です。コードのコミットをトリガーに、ビルド、Dockerイメージの作成、Dockerレジストリへの登録を自動化しました。デプロイはRancherのGUIで行えます。

はじめに

GitLabのCI/CD環境と運用環境をRancherを使ってオンプレミスで構築したときに考察したことや構築手順を書きます。 クラウドサービスは使用せず、すべて内部構築しました。 個人や小規模チーム向けの環境です。

目的

次の流れを自動化します。

  1. GitLabにコードをコミット(手作業)
  2. コミットをトリガーにして自動的に単体テストやビルドを実行
  3. ビルド結果からDockerイメージを作成してプライベートレジストリに登録
  4. Rancherを使ってプライベートレジストリに登録されたイメージをデプロイ(手作業)

方針

次のような方針で構築しました。

  • すべてを内部ネットワーク内に構築する
  • 外部からのアクセスは考慮しない(禁止する)
  • メンテナンスや故障によるダウンタイムは許容する(多重化などの対策はしない)
  • データを失うことが無いように対策する

構成

ハードウェア

  • ルーター
  • NAS
  • サーバーマシン

OS

サーバー

  • DNS
  • Rancher2.x
  • GitLabCommunity Edition

    • GitLab Runner
    • GitLab Container Registry

内容

内容の詳細は個別の記事に書いています。

以下のリンクを上から順番に読んで頂くと時系列になっていますが、飛ばして読んで頂いてもある程度独立した内容になっています。

ハードウェアとネットワーク

参考までに、今回の構成でハードウェアとネットワークを構築するまでに考慮したことを書いています。

サーバーマシンにOSとRancherをインストール

今回の用途では、サービスはすべてDockerコンテナで稼働させます。 Dockerコンテナのオーケストレーションツールとして、GUIで管理できるRancherを選択しました。

ホストOSに求めることはほぼDockerの稼働だけなので、OSにはDockerコンテナの稼働に特化したRancherOSを選択しました。

次は、サーバーマシンにRancherOSをインストールして、Rancherのインストールとシングルノード環境を構築する手順です。

GitLabのCI/CD環境をRancherで構築

GitLabのCI/CD環境とバックアップタスクをRancherで構築しました。 次は、その手順です。