--- # ============================================================================= # SITE - Основной playbook для тестирования Ansible ролей # ============================================================================= # Универсальный playbook для тестирования Ansible ролей # Автор: Сергей Антропов # Сайт: https://devops.org.ru # # Этот файл отвечает за: # 1. Обновление пакетов в контейнерах при запуске тестов # 2. Установку common tools для корректной работы тестов # 3. Подготовку окружения для тестирования ролей # 4. Запуск всех ролей из директории roles/ - name: Подготовка окружения для тестирования hosts: all become: true tasks: # Создание tmp директории для Ansible - name: Create Ansible tmp directory file: path: /tmp/.ansible-tmp state: directory mode: '0755' owner: root group: root tags: - setup - tmp # Обновление кеша пакетов для Debian/Ubuntu - name: Update package cache (Debian/Ubuntu) apt: update_cache: true cache_valid_time: 3600 when: ansible_os_family == 'Debian' changed_when: false tags: - setup - update # Обновление кеша пакетов для RHEL/CentOS/AlmaLinux/Rocky - name: Update package cache (RHEL/CentOS/AlmaLinux/Rocky) yum: update_cache: true when: ansible_os_family == 'RedHat' changed_when: false tags: - setup - update # Обновление кеша пакетов для Alt Linux - name: Update package cache (Alt Linux) command: apt-get update when: ansible_os_family == 'Altlinux' changed_when: false failed_when: false tags: - setup - update # Обновление кеша пакетов для Astra Linux - name: Update package cache (Astra Linux) command: apt-get update when: ansible_os_family == 'Astra Linux' changed_when: false failed_when: false tags: - setup - update # Установка common tools для всех ОС (ЗАКОММЕНТИРОВАНО) # - name: Install common tools (Debian/Ubuntu) # apt: # name: # - curl # - jq # - ca-certificates # - iproute2 # - iputils-ping # - procps # - net-tools # - vim # - wget # - unzip # - git # state: present # update_cache: false # when: ansible_os_family == 'Debian' # tags: # - setup # - tools # - name: Install common tools (RHEL/CentOS/AlmaLinux/Rocky) # yum: # name: # - curl # - jq # - ca-certificates # - iproute # - iputils # - procps-ng # - net-tools # - vim # - wget # - unzip # - git # state: present # when: ansible_os_family == 'RedHat' # tags: # - setup # - tools # - name: Install common tools (Alt Linux) # command: apt-get install -y curl jq ca-certificates iproute2 iputils procps net-tools vim wget unzip git # when: ansible_os_family == 'Altlinux' # changed_when: false # failed_when: false # tags: # - setup # - tools # - name: Install common tools (Astra Linux) # command: apt-get install -y curl jq ca-certificates iproute2 iputils procps net-tools vim wget unzip git # when: ansible_os_family == 'Astra Linux' # changed_when: false # failed_when: false # tags: # - setup # - tools # Установка Python для Ansible (если не установлен) - name: Install Python (Debian/Ubuntu) apt: name: - python3 - python3-pip - python3-venv state: present when: ansible_os_family == 'Debian' tags: - setup - python # Установка Python 3.8+ для RHEL/CentOS/Rocky/AlmaLinux - name: Install Python 3.8+ (RHEL/CentOS/Rocky/AlmaLinux) yum: name: - python3 - python3-pip state: present when: ansible_os_family == 'RedHat' tags: - setup - python - name: Install Python (RHEL/CentOS/AlmaLinux/Rocky) yum: name: - python3 - python3-pip state: present when: ansible_os_family == 'RedHat' tags: - setup - python - name: Install Python (Alt Linux) command: apt-get install -y python3 python3-pip when: ansible_os_family == 'Altlinux' changed_when: false failed_when: false tags: - setup - python - name: Install Python (Astra Linux) command: apt-get install -y python3 python3-pip when: ansible_os_family == 'Astra Linux' changed_when: false failed_when: false tags: - setup - python # Создание пользователя для тестирования (ЗАКОММЕНТИРОВАНО) # - name: Create test user # user: # name: testuser # shell: /bin/bash # create_home: yes # state: present # tags: # - setup # - user # Настройка sudo для тестового пользователя (ЗАКОММЕНТИРОВАНО) # - name: Configure sudo for test user # lineinfile: # path: /etc/sudoers # line: "testuser ALL=(ALL) NOPASSWD:ALL" # state: present # validate: 'visudo -cf %s' # tags: # - setup # - sudo # Создание директории для тестов (ЗАКОММЕНТИРОВАНО) # - name: Create test directory # file: # path: /tmp/ansible-test # state: directory # mode: '0755' # owner: testuser # group: testuser # tags: # - setup # - directory - import_playbook: ../../roles/deploy.yml