GitLab CIとMoleculeでRoleテスト自動化
はじめに Ansible には Role のテストを支援してくれる「Molecule」というツールがあります。今回は Molecule と GitLab CI を用いて Role のテスト自動化ができるように環境を整えていきます。 Molecule の詳細については、ひよこ大佐本こと「Ansible構築・運用ガイドブック」や「ソフトウェアデザイン 2020年6月号」に載っています。(Molecule 実践ガイドまだ?) 主に備忘録のため参照される場合は適宜読み替えてください。 作業内容 今回は「自宅ラボ」と称している仮想化基盤(ESXi)上の「作業用マシン(CentOS 7)」で moleculeコマンドの実行 GitLab Runnerコンテナの起動 GitLab CIでmolecule testの自動化 をできるようにします。なお前提として、作業用マシンにはdockerインストール済みで、GitLabは仮想化基盤上の別サーバに導入済みです。 環境構築 Moleculeインストール 作業用マシンでMoleculeのコマンドを実行できるようにします。Molecule 公式サイトに複数のインストール方法が載っていますが、今回はvirtualenv内にmoleculeコマンドをインストールします。 $ sudo python3 -m pip install virtualenv $ virtualenv molecule $ source molecule/bin/activate (molecule) $ python -m pip install "molecule[lint]" "docker" (molecule) $ molecule --version molecule 3.0.4 ansible==2.9.9 python==3.6 公式サイトではインストール時に--userオプションを付いていたのですが、自分の環境ではエラーが出てしまったので外しています(TODO: エラー原因調査)。また、pipでmoleculeをインストールするとansibleもついてきます。pipでansibleをインストールする場合はmoleculeに置き換えてもいいかもしれませんね。 Ansible Role作成 さきほどインストールした molecule コマンドを使って Ansible の Role を作成します。 ansible-galaxy コマンドと同様に、Role に必要なディレクトリのテンプレートを作成することができ、Molecule で使用する molecule ディレクトリも作成されます。 今回は「test-role」という名前の Role にしています。...