使用Molecule测试Ansible Role
什么是Molecule
Molecule可以帮助开发人员在本地借助虚拟技术(Vagrant, Docker, Etc.)测试和运行Ansible Role。
可以参考一下官网的介绍。
如何安装
安装Molecule需要:
- Python>=3.8
- Ansible>=2.8
对于Python环境,推荐使用pyenv。它是一个非常不错的Python多版本管理工具。
你可以任意切换你想要的Python版本。
安装 pyenv
使用 pyenv installer 安装 pyenv
|
|
以下内容添加到 .bashrc
, .zshrc
|
|
重载 SHELL
|
|
确认安装是否成功
|
|
恭喜你,已经成功安装了pyenv。
安装Python
在安装Python之前,请先安装构建依赖。
对于MacOS:
|
|
其他系统请参照: pyenv suggested build environment
这里安装3.10.4版的Python
|
|
对于其他版本的Python,可以使用以下命令来查看。
|
|
安装Molecule
在安装Molecule之前,请先使用pyenv创建虚拟环境。
|
|
切换到创建的虚拟环境
|
|
使用以下命令会顺带着安装Ansible,所以不用单独再安装了。
这里请注意一下,由于新版本(>=3.6.0)的Molecule无法使用molecule login
命令。#3462
所以,这边选择安装3.5.2版本的Molecule。
|
|
确认安装的Molecule和Ansible
|
|
安装驱动
在安装驱动之前,请确保你的系统已经安装了Docker、Vagrant。
安装Docker驱动
|
|
安装Vagrant驱动
|
|
再次确认驱动是否安装成功
|
|
常用命令
创建Ansible Role
使用Molecule创建Ansible Role,可以生成Ansible Role的目录结构和文件,以及Molecule的目录结构和文件。
|
|
--driver-name
可以指定驱动:
- docker
- vagrant
对于驱动的选择,推荐使用docker
驱动。它占用资源更低,速度更快。
但是,如果你的role使用了systemd
, 那么最好使用vagrant
驱动。
运行Ansible Role
|
|
它会调用驱动创建instance并运行Ansible Role。
登录instance
使用以下命令来登录instance。
|
|
销毁instance
|
|
完整的命令列表
|
|
Molecule的目录结构
Molecule的配置文件在Role的molecule
目录中:
|
|
具体如何使用,请参照官方的说明文档: Getting Started Guide