diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index cc40f80..9d06ace 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -20,7 +20,7 @@ platforms: - /tmp - /run - name: ubuntu - image: "inecs/ansible:ubuntu" + image: "oobex/ansible:ubuntu" privileged: true pre_build_image: true volumes: diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml new file mode 100644 index 0000000..a8aa9f6 --- /dev/null +++ b/molecule/default/verify.yml @@ -0,0 +1,132 @@ +--- +# Проверка работы systemd, docker и docker-compose в образах +# Автор: Сергей Антропов +# Сайт: https://devops.org.ru + +- name: Verify systemd, docker and docker-compose services + hosts: all + gather_facts: true + tasks: + - name: Display OS information + debug: + msg: "Тестирование на {{ ansible_distribution }} {{ ansible_distribution_version }}" + + - name: Check if systemd is available and running + systemd: + name: systemd + state: started + register: systemd_status + failed_when: false + + - name: Display systemd status + debug: + msg: "Systemd статус: {{ 'Доступен и запущен' if systemd_status is succeeded else 'Недоступен или не запущен' }}" + + - name: Check systemd version + command: systemd --version + register: systemd_version + failed_when: false + changed_when: false + + - name: Display systemd version + debug: + msg: "Версия systemd: {{ systemd_version.stdout_lines[0] if systemd_version.stdout_lines else 'Не определена' }}" + + - name: Check if docker service exists + stat: + path: /usr/bin/docker + register: docker_binary + + - name: Check if docker service exists (alternative path) + stat: + path: /usr/local/bin/docker + register: docker_binary_alt + + - name: Display docker binary status + debug: + msg: "Docker binary: {{ 'Найден в /usr/bin/docker' if docker_binary.stat.exists else ('Найден в /usr/local/bin/docker' if docker_binary_alt.stat.exists else 'Не найден') }}" + + - name: Check docker version + command: docker --version + register: docker_version + failed_when: false + changed_when: false + + - name: Display docker version + debug: + msg: "Версия Docker: {{ docker_version.stdout if docker_version.stdout else 'Docker не установлен' }}" + + - name: Check if docker daemon is running + command: docker info + register: docker_info + failed_when: false + changed_when: false + + - name: Display docker daemon status + debug: + msg: "Docker daemon: {{ 'Запущен' if docker_info is succeeded else 'Не запущен или недоступен' }}" + + - name: Check if docker-compose binary exists + stat: + path: /usr/local/bin/docker-compose + register: docker_compose_binary + + - name: Check if docker-compose binary exists (alternative path) + stat: + path: /usr/bin/docker-compose + register: docker_compose_binary_alt + + - name: Check if docker compose plugin exists + command: docker compose version + register: docker_compose_plugin + failed_when: false + changed_when: false + + - name: Display docker-compose status + debug: + msg: "Docker Compose: {{ 'Найден как binary' if docker_compose_binary.stat.exists or docker_compose_binary_alt.stat.exists else ('Найден как plugin' if docker_compose_plugin is succeeded else 'Не найден') }}" + + - name: Display docker-compose version + debug: + msg: "Версия Docker Compose: {{ docker_compose_plugin.stdout if docker_compose_plugin is succeeded else 'Docker Compose не установлен' }}" + + - name: Test docker functionality + command: docker run --rm hello-world + register: docker_test + failed_when: false + changed_when: false + + - name: Display docker test result + debug: + msg: "Тест Docker: {{ 'Успешно' if docker_test is succeeded else 'Ошибка - ' + docker_test.stderr }}" + + - name: Check systemd services status + command: systemctl list-units --type=service --state=running + register: running_services + failed_when: false + changed_when: false + + - name: Display running services count + debug: + msg: "Количество запущенных сервисов: {{ running_services.stdout_lines | length }}" + + - name: Check for docker-related systemd services + command: systemctl list-units --type=service | grep -i docker + register: docker_services + failed_when: false + changed_when: false + + - name: Display docker services + debug: + msg: "Docker сервисы: {{ docker_services.stdout_lines if docker_services.stdout_lines else 'Не найдены' }}" + + - name: Final summary + debug: + msg: | + ======================================== + РЕЗУЛЬТАТЫ ПРОВЕРКИ ОБРАЗА {{ ansible_distribution }}: + ======================================== + Systemd: {{ '✓ Работает' if systemd_status is succeeded else '✗ Не работает' }} + Docker: {{ '✓ Установлен и работает' if docker_info is succeeded else '✗ Не установлен или не работает' }} + Docker Compose: {{ '✓ Доступен' if (docker_compose_binary.stat.exists or docker_compose_binary_alt.stat.exists or docker_compose_plugin is succeeded) else '✗ Недоступен' }} + ========================================