I'm addicted to it, so it's a memo.
mol-test/
├── .travis.yml
├── .yamllint
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── molecule
│ └── default
│ ├── INSTALL.rst
│ ├── converge.yml
│ ├── create.yml
│ ├── destroy.yml
│ ├── molecule.yml
│ └── verify.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
molecule.yml
molecule.yml
---
dependency:
name: galaxy
driver:
name: docker
lint: |
set -e
yamllint .
ansible-lint
platforms:
- name: mol-server
image: centos:8
command: /sbin/init
tmpfs:
- /run
- /tmp
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
provisioner:
name: ansible
verifier:
name: ansible
When I try to execute molecule create, it is skipped
$ molecule create
INFO default scenario test matrix: dependency, create, prepare
INFO Running default > dependency
WARNING Skipping, missing the requirements file.
WARNING Skipping, missing the requirements file.
INFO Running default > create
INFO Sanity checks: 'docker'
PLAY [Create] ******************************************************************
TASK [Populate instance config dict] *******************************************
skipping: [localhost]
TASK [Convert instance config dict to a list] **********************************
skipping: [localhost]
TASK [Dump instance config] ****************************************************
skipping: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0
INFO Running default > prepare
WARNING Skipping, prepare playbook not configured.
When I check the molecule list, Created is true, but the container has not been created. Of course the molecule test also failed
$ molecule list
INFO Running default > list
╷ ╷ ╷ ╷ ╷
Instance Name │ Driver Name │ Provisioner Name │ Scenario Name │ Created │ Converged
╶───────────────┼─────────────┼──────────────────┼───────────────┼─────────┼───────────╴
mol-server │ docker │ ansible │ default │ true │ false
╵ ╵ ╵ ╵ ╵
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Starting with v3.1.0, the default driver will be delegated and create.yml
and destroy.yml
will be created automatically.
When testing with docker driver, it is OK if you delete these and execute.
$ rm molecule/default/create.yml
$ rm molecule/default/destroy.yml
$ molecule create
INFO default scenario test matrix: dependency, create, prepare
INFO Running default > dependency
WARNING Skipping, missing the requirements file.
WARNING Skipping, missing the requirements file.
INFO Running default > create
INFO Sanity checks: 'docker'
PLAY [Create] ******************************************************************
TASK [Log into a Docker registry] **********************************************
skipping: [localhost] => (item={'command': '/sbin/init', 'image': 'centos:8', 'name': 'mol-server', 'tmpfs': ['/run', '/tmp'], 'volumes': ['/sys/fs/cgroup:/sys/fs/cgroup:ro']})
TASK [Check presence of custom Dockerfiles] ************************************
ok: [localhost] => (item={'command': '/sbin/init', 'image': 'centos:8', 'name': 'mol-server', 'tmpfs': ['/run', '/tmp'], 'volumes': ['/sys/fs/cgroup:/sys/fs/cgroup:ro']})
TASK [Create Dockerfiles from image names] *************************************
changed: [localhost] => (item={'command': '/sbin/init', 'image': 'centos:8', 'name': 'mol-server', 'tmpfs': ['/run', '/tmp'], 'volumes': ['/sys/fs/cgroup:/sys/fs/cgroup:ro']})
TASK [Discover local Docker images] ********************************************
ok: [localhost] => ...
TASK [Build an Ansible compatible image (new)] *********************************
ok: [localhost] => (item=molecule_local/centos:8)
TASK [Create docker network(s)] ************************************************
TASK [Determine the CMD directives] ********************************************
ok: [localhost] => (item={'command': '/sbin/init', 'image': 'centos:8', 'name': 'mol-server', 'tmpfs': ['/run', '/tmp'], 'volumes': ['/sys/fs/cgroup:/sys/fs/cgroup:ro']})
TASK [Create molecule instance(s)] *********************************************
changed: [localhost] => (item=mol-server)
TASK [Wait for instance(s) creation to complete] *******************************
FAILED - RETRYING: Wait for instance(s) creation to complete (300 retries left).
changed: [localhost] => (item=...
PLAY RECAP *********************************************************************
localhost : ok=7 changed=3 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
INFO Running default > prepare
WARNING Skipping, prepare playbook not configured.
$ molecule list
INFO Running default > list
╷ ╷ ╷ ╷ ╷
Instance Name │ Driver Name │ Provisioner Name │ Scenario Name │ Created │ Converged
╶───────────────┼─────────────┼──────────────────┼───────────────┼─────────┼───────────╴
mol-server │ docker │ ansible │ default │ true │ false
╵ ╵ ╵ ╵ ╵
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5e92b9849742 molecule_local/centos:8 "/sbin/init" 20 seconds ago Up 19 seconds mol-server
I used it as a reference below. Cannot perform test with Docker driver of Ansible Molecule
Recommended Posts