🙌

Ansibleのテスト実行ツールMolecule導入~テスト実行

2021/02/21に公開

環境:CentOS8.2
Ansible:2.10.6
molecule:3.2.3

MoleculeはAnsibleのrolesのテストができるツールです。
構文確認、テスト環境の構築、実行確認、再度実行し冪等性確認、テスト環境の削除まで一式できます。

Ansibleのインストール方法はこちらに記載しています。
https://zenn.dev/tayura/articles/4eaccb0fe4c07d

今回はdockerを利用する手順のため、dockerのインストールが必要です。
dockerのインストールはこちらに記載しています。
https://zenn.dev/tayura/articles/a4e8682b195ff4

必要パッケージのインストール

sudo yum install -y gcc python3-pip python3-devel openssl-devel python3-libselinux

Moleculeのインストール

python3 -m pip install --user "molecule[docker,lint]"

※下記エラーが出た場合はpipのアップデートをする。

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-8nl91yu8/cryptography/

sudo pip3 install -U pip

プレイブックを作成する

molecule init role my-new-role --driver-name docker
cd my-new-role
tree

Moleculeのディレクトリがあるプレイブックが作成される。

[azureuser@ansible my-new-role]$ tree
.
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── molecule
│   └── default
│   ├── converge.yml
│   ├── molecule.yml
│   └── verify.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
└── main.yml

10 directories, 11 files

Moleculeでテストを実行する

molecule test

下記のような結果になっていればテストが実行できています。

PLAY RECAP *********************************************************************
localhost : ok=2 changed=2 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0

Discussion