From 78359193fe02c59009de9d586342cd30d0a4f6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Wed, 5 Mar 2025 17:38:11 +0300 Subject: [PATCH] fix1 --- Makefile | 9 +++++---- ansible_role/molecule/default/Dockerfile.j2 | 13 +++++++++++++ ansible_role/molecule/default/INSTALL.rst | 8 ++++++++ ansible_role/molecule/default/converge.yml | 5 +++++ ansible_role/molecule/default/create.yml | 11 +++++++++++ ansible_role/molecule/default/destroy.yml | 12 ++++++++++++ .../molecule/default/docker-compose.yml | 0 ansible_role/molecule/default/inventory/hosts | 2 ++ ansible_role/molecule/default/molecule.yml | 17 ++++------------- ansible_role/molecule/default/prepare.yml | 4 ++++ .../molecule/default/tests/test_default.py | 13 +++++++++++++ ansible_role/molecule/default/verify.yml | 4 ++++ 12 files changed, 81 insertions(+), 17 deletions(-) create mode 100644 ansible_role/molecule/default/Dockerfile.j2 create mode 100644 ansible_role/molecule/default/INSTALL.rst create mode 100644 ansible_role/molecule/default/converge.yml create mode 100644 ansible_role/molecule/default/create.yml create mode 100644 ansible_role/molecule/default/destroy.yml delete mode 100644 ansible_role/molecule/default/docker-compose.yml create mode 100644 ansible_role/molecule/default/inventory/hosts create mode 100644 ansible_role/molecule/default/prepare.yml create mode 100644 ansible_role/molecule/default/tests/test_default.py create mode 100644 ansible_role/molecule/default/verify.yml diff --git a/Makefile b/Makefile index 2015f03..028eb75 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,11 @@ shell: docker compose exec ansible-molecule bash +# Создание новой роли с помощью Molecule +create: + docker compose run --rm ansible-molecule sh -c "ansible-galaxy role init $(ROLE_NAME) && cd $(ROLE_NAME) && molecule init scenario + #docker compose run --rm ansible-molecule sh -c "molecule create" + # Запуск тестов Molecule test: docker compose run --rm ansible-molecule sh -c "molecule test" @@ -65,10 +70,6 @@ test: dependencies: docker compose run --rm ansible-molecule sh -c "ansible-galaxy role install -r /workspace/requirements.yml" -# Создание новой роли с помощью Molecule -create: - docker compose run --rm ansible-molecule sh -c "molecule create" - # Шифрование файла с помощью Ansible Vault encrypt: docker compose run --rm ansible-molecule sh -c "ansible-vault encrypt --vault-password-file /workspace/$(VAULT_PASSWORD_FILE) /workspace/role/$(FILE)" diff --git a/ansible_role/molecule/default/Dockerfile.j2 b/ansible_role/molecule/default/Dockerfile.j2 new file mode 100644 index 0000000..83e7814 --- /dev/null +++ b/ansible_role/molecule/default/Dockerfile.j2 @@ -0,0 +1,13 @@ +# Molecule managed + +{% if item.registry is defined %} +FROM {{ item.registry.url }}/{{ item.image }} +{% else %} +FROM {{ item.image }} +{% endif %} + +{% if item.dockerfile is defined %} +{% for line in item.dockerfile %} +{{ line }} +{% endfor %} +{% endif %} \ No newline at end of file diff --git a/ansible_role/molecule/default/INSTALL.rst b/ansible_role/molecule/default/INSTALL.rst new file mode 100644 index 0000000..d138f0f --- /dev/null +++ b/ansible_role/molecule/default/INSTALL.rst @@ -0,0 +1,8 @@ +Installation +============ + +To install Molecule, run the following command: + +.. code-block:: bash + + pip install molecule docker \ No newline at end of file diff --git a/ansible_role/molecule/default/converge.yml b/ansible_role/molecule/default/converge.yml new file mode 100644 index 0000000..07c6d35 --- /dev/null +++ b/ansible_role/molecule/default/converge.yml @@ -0,0 +1,5 @@ +--- +- name: Converge + hosts: all + roles: + - role: my_new_role \ No newline at end of file diff --git a/ansible_role/molecule/default/create.yml b/ansible_role/molecule/default/create.yml new file mode 100644 index 0000000..a29cdaa --- /dev/null +++ b/ansible_role/molecule/default/create.yml @@ -0,0 +1,11 @@ +--- +- name: Create + hosts: localhost + connection: local + tasks: + - name: Create molecule instance(s) + molecule_docker: + platform: "{{ item }}" + with_items: "{{ molecule_yml.platforms }}" + loop_control: + label: "{{ item.name }}" \ No newline at end of file diff --git a/ansible_role/molecule/default/destroy.yml b/ansible_role/molecule/default/destroy.yml new file mode 100644 index 0000000..4443cd7 --- /dev/null +++ b/ansible_role/molecule/default/destroy.yml @@ -0,0 +1,12 @@ +--- +- name: Destroy + hosts: localhost + connection: local + tasks: + - name: Destroy molecule instance(s) + molecule_docker: + platform: "{{ item }}" + state: absent + with_items: "{{ molecule_yml.platforms }}" + loop_control: + label: "{{ item.name }}" \ No newline at end of file diff --git a/ansible_role/molecule/default/docker-compose.yml b/ansible_role/molecule/default/docker-compose.yml deleted file mode 100644 index e69de29..0000000 diff --git a/ansible_role/molecule/default/inventory/hosts b/ansible_role/molecule/default/inventory/hosts new file mode 100644 index 0000000..bafbacc --- /dev/null +++ b/ansible_role/molecule/default/inventory/hosts @@ -0,0 +1,2 @@ +[all] +instance ansible_connection=docker \ No newline at end of file diff --git a/ansible_role/molecule/default/molecule.yml b/ansible_role/molecule/default/molecule.yml index cafb687..dd06b76 100644 --- a/ansible_role/molecule/default/molecule.yml +++ b/ansible_role/molecule/default/molecule.yml @@ -4,23 +4,14 @@ dependency: driver: name: docker platforms: - - name: web1 + - name: instance image: geerlingguy/docker-ubuntu2004-ansible:latest pre_build_image: true - groups: - - webservers - - name: db1 - image: geerlingguy/docker-ubuntu2004-ansible:latest - pre_build_image: true - groups: - - dbservers provisioner: name: ansible inventory: - group_vars: - webservers: - ansible_user: root - dbservers: - ansible_user: root + host_vars: + instance: + ansible_connection: docker verifier: name: ansible \ No newline at end of file diff --git a/ansible_role/molecule/default/prepare.yml b/ansible_role/molecule/default/prepare.yml new file mode 100644 index 0000000..f1fb2a0 --- /dev/null +++ b/ansible_role/molecule/default/prepare.yml @@ -0,0 +1,4 @@ +--- +- name: Prepare + hosts: all + tasks: [] \ No newline at end of file diff --git a/ansible_role/molecule/default/tests/test_default.py b/ansible_role/molecule/default/tests/test_default.py new file mode 100644 index 0000000..a471b81 --- /dev/null +++ b/ansible_role/molecule/default/tests/test_default.py @@ -0,0 +1,13 @@ +import os +import testinfra.utils.ansible_runner + +testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') + + +def test_hosts_file(host): + f = host.file('/etc/hosts') + + assert f.exists + assert f.user == 'root' + assert f.group == 'root' \ No newline at end of file diff --git a/ansible_role/molecule/default/verify.yml b/ansible_role/molecule/default/verify.yml new file mode 100644 index 0000000..04e2b30 --- /dev/null +++ b/ansible_role/molecule/default/verify.yml @@ -0,0 +1,4 @@ +--- +- name: Verify + hosts: all + tasks: [] \ No newline at end of file