Some checks failed
		
		
	
	Ansible Testing / lint (push) Has been cancelled
				
			Ansible Testing / test (default) (push) Has been cancelled
				
			Ansible Testing / test (minimal) (push) Has been cancelled
				
			Ansible Testing / test (performance) (push) Has been cancelled
				
			Ansible Testing / deploy-check (push) Has been cancelled
				
			- Закомментирована установка common tools для всех ОС (Debian/Ubuntu, RHEL/CentOS, Alt Linux, Astra Linux) - Закомментировано создание пользователя testuser - Закомментирована настройка sudo для testuser - Закомментировано создание директории /tmp/ansible-test Это ускорит выполнение тестов, так как не будет устанавливать дополнительные пакеты и создавать пользователей.
		
			
				
	
	
		
			217 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | ||
| # Универсальный 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
 |