Ansible 可转换角色的分子测试-如何构造以避免重复
我想通过Ansible 可转换角色的分子测试-如何构造以避免重复,ansible,molecule,Ansible,Molecule,我想通过molecular测试很多角色,我是molecular初学者 如果我在每个角色中创建一个分子场景,就会有大量重复的代码 有没有一种模式是人们用来避免在许多角色中使用相同的Dockerfile.j2,molecular.yml,等等 也许是某种组合(通过依赖项注入),或者如果这不可行,是某种继承 $ molecule init role -r stackoverflow --> Initializing new role stackoverflow... Initialized ro
molecular
测试很多角色,我是molecular
初学者
如果我在每个角色中创建一个分子场景,就会有大量重复的代码
有没有一种模式是人们用来避免在许多角色中使用相同的Dockerfile.j2
,molecular.yml
,等等
也许是某种组合(通过依赖项注入),或者如果这不可行,是某种继承
$ molecule init role -r stackoverflow
--> Initializing new role stackoverflow...
Initialized role in /private/tmp/stackoverflow successfully.
$ tree stackoverflow
stackoverflow
├── README.md
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── molecule
│ └── default
│ ├── Dockerfile.j2
│ ├── INSTALL.rst
│ ├── molecule.yml
│ ├── playbook.yml
│ └── tests
│ ├── test_default.py
│ └── test_default.pyc
├── tasks
│ └── main.yml
└── vars
└── main.yml
8 directories, 12 files
在
molecular.yml
文件中,您可以指定从何处获取Dockerfile.js
。因此,您可以在父文件夹中拥有一个docker配置文件,并在所有角色之间共享该文件。例如:
driver:
name: docker
platforms:
- name: instance
image: ubuntu:18.04
dockerfile: ../common/Dockerfile.j2
有关的更多信息,请参阅官方文档
您还可以在角色之间共享文件,如create.yml
、destroy.yml
或prepare.yml
,并在molecular.yml
中指定正确的路径
provisioner:
name: ansible
playbooks:
create: ../common/create.yml
destroy: ../common/destroy.yml
converge: playbook.yml
有关的更多信息,请参阅官方文档
此外,您可以在同一角色的不同场景之间共享剧本和测试
verifier:
name: testinfra
directory: ../resources/tests/
lint:
name: flake8
有关官方文件的更多信息
我不知道有什么简单的机制可以跨不同的角色共享molecular.yml
文件。不过,这会很有用