Molecule

Permet d’éffectuer des tests sur les playbooks ansibles développés. Les playbooks peuvent etres lancés dans differents environnements (docker, Vagrant, LXC)

Molecule necessite soit python 2.7 soit python >=3.6

sudo apt-get install -y python-pip libssl-dev
pip install molecule docker docker-py

la maniere la plus simple etant de creer un role avec molecule

molecule init role --driver-name docker --role-name molecule-demo

ceci va creer un role avec les repertoires et fichiers correspondants, ainsi que le repertoire molecule

contenant lui meme de sous repertoires

molecule
└── default
	├── Dockerfile.j2
	├── INSTALL.rst
	├── molecule.yml
	├── playbook.yml
	└── tests
		├── pycache
		│   └── test_default.cpython-37-PYTEST.pyc
		├── test_default.py
		└── test_default.pyc

Les fichiers (dont le dockerfile) sont automatiquement générés

---
driver:
  name: docker
 
platforms:
  - name: instance
    image: williamyeh/ansible:centos7
    privileged: true
    published_ports:
      - 0.0.0.0:8080:8080/tcp
    volume_mounts:
      - "/sys/fs/cgroup:/sys/fs/cgroup:rw"
    command: "/usr/sbin/init"
 
provisioner:
  name: ansible
 
scenario:
  name: default
  test_sequence:
    - syntax
    - create
    - prepare
    - converge
    - idempotence
    - verify
    - destroy

le repertoire test contient les test a effectuer sur le conteneur une fois le deploiement effectué, ils s’écrivent en Python

import requests
 
def test_url():
    r = requests.get('http://0.0.0.0:8080/login')
    assert r.status_code == 200

/usr/local/lib/python3.7/site-packages/molecule/provisioner/ansible/playbooks/docker $ create.ynl set no_log: false

wiki/molecule.txt · Dernière modification: 2019/11/26 09:40 par root
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5