PC上でのIaC環境の概要(GWアドベントカレンダー 4日目)

  • 投稿日:
  • by
  • カテゴリ:

この記事はGWアドベントカレンダーの4日目の記事です。

自宅のPCにIaC環境を構築中ですが、その環境について少し説明します。

使用するツール

1台の物理Linuxサーバ上にすべての環境を構築します。 仮想マシンはVagrant + Virtual Boxで構築します。 コンテナはDockerで構築します。 構築ツールとしてAnsibleを使います。 CI/CDを実現するためのツールとしてGitlab、Gitlab Runnerを使います。

Gitlab、Gitlab Runnerの構築

GitlabとGitlab RunnerはAnsibleを使って、仮想マシンから作成します。 本番用とテスト用があり、テスト用の構築は本番用のGitlabのバックアップデータを使ってリストアすることで本番と同じデータを持つようにしています。

物理Linuxサーバの構築

OSインストール後の各種設定類はAnsibleにまとめようと思っていますが、まだできていません。

AnsibleとVagrantの連携

Ansibleのプレイブック(Gitlabのパイプラインからの呼び出しや手動実行)によって、Vagrant経由で仮想マシンを作成することがあります。 しかし、AnsibleのInventory PluginとしてはVagrant用のものが正式にはありません。そのため、作成した仮想マシンに対してプレイブックを実行するためには何らかの方法を考える必要があります。 一つはInventory PluginもしくはScriptを作ること、もう一つは作成する仮想マシン情報をあらかじめインベントリファイルに記載しておくことが考えられます。 どちらの方法でも実現できそうですが、どのようにするか検討中です。

今後の展望

  • 物理Linuxサーバ構築用のパイプライン構築
  • Kubernetesを動かす。 その上で、各種アプリケーションを動かす予定です。