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
				
			- Добавлена автоматическая детекция ОС и настройка групп пользователя - Поддержка всех ОС из dockerfiles: Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS - Автоматический выбор групп: sudo для Ubuntu/Debian, wheel для RHEL-семейства - Обновлена документация с примерами для разных ОС - Добавлены тесты для проверки универсальности - Исправлены ошибки линтера в meta/main.yml Роль теперь работает на всех системах из dockerfiles без дополнительной настройки.
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Быстрый старт - Роль devops
 | ||
| 
 | ||
| ## Автор
 | ||
| Сергей Антропов  
 | ||
| Сайт: https://devops.org.ru
 | ||
| 
 | ||
| ## Что делает роль
 | ||
| 
 | ||
| Роль `devops` автоматически:
 | ||
| 1. ✅ Создает пользователя `devops`
 | ||
| 2. ✅ Генерирует безопасный пароль (30 символов)
 | ||
| 3. ✅ Настраивает SSH доступ по ключу
 | ||
| 4. ✅ Добавляет права sudo без пароля
 | ||
| 5. ✅ Создает домашнюю директорию
 | ||
| 6. ✅ Автоматически определяет ОС и настраивает группы
 | ||
| 7. ✅ Поддерживает все ОС из dockerfiles (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS)
 | ||
| 
 | ||
| ## Быстрый запуск
 | ||
| 
 | ||
| ### 1. Базовое использование
 | ||
| ```bash
 | ||
| ansible-playbook -i inventory/hosts.ini roles/deploy.yml
 | ||
| ```
 | ||
| 
 | ||
| ### 2. С SSH ключом из vault
 | ||
| ```bash
 | ||
| ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
 | ||
|   --ask-vault-pass \
 | ||
|   -e "devops_ssh_public_key={{ devops_ssh_keys.public_key }}"
 | ||
| ```
 | ||
| 
 | ||
| ### 3. Только роль devops
 | ||
| ```bash
 | ||
| ansible-playbook -i inventory/hosts.ini roles/devops/playbook.yml
 | ||
| ```
 | ||
| 
 | ||
| ## Проверка результата
 | ||
| 
 | ||
| После выполнения проверьте:
 | ||
| 
 | ||
| ```bash
 | ||
| # Проверка пользователя
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "id devops"
 | ||
| 
 | ||
| # Проверка sudo прав
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "sudo -l -U devops"
 | ||
| 
 | ||
| # Проверка SSH директории
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "ls -la /home/devops/.ssh/"
 | ||
| ```
 | ||
| 
 | ||
| ## Настройка SSH ключа
 | ||
| 
 | ||
| 1. Добавьте ваш SSH ключ в `vault/secrets.yml`:
 | ||
| ```yaml
 | ||
| devops_ssh_keys:
 | ||
|   public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
 | ||
| ```
 | ||
| 
 | ||
| 2. Запустите playbook с передачей ключа:
 | ||
| ```bash
 | ||
| ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
 | ||
|   --ask-vault-pass \
 | ||
|   -e "devops_ssh_public_key={{ devops_ssh_keys.public_key }}"
 | ||
| ```
 | ||
| 
 | ||
| ## Кастомизация
 | ||
| 
 | ||
| ### Изменить имя пользователя
 | ||
| ```yaml
 | ||
| vars:
 | ||
|   devops_user:
 | ||
|     name: "myuser"
 | ||
|     home: "/home/myuser"
 | ||
| ```
 | ||
| 
 | ||
| ### Изменить длину пароля
 | ||
| ```yaml
 | ||
| vars:
 | ||
|   devops_password:
 | ||
|     length: 40
 | ||
| ```
 | ||
| 
 | ||
| ### Добавить группы
 | ||
| ```yaml
 | ||
| vars:
 | ||
|   devops_user:
 | ||
|     groups: ["sudo", "docker", "wheel", "adm"]
 | ||
| ```
 | ||
| 
 | ||
| ## Безопасность
 | ||
| 
 | ||
| - 🔒 Пароль генерируется автоматически и не сохраняется в логах
 | ||
| - 🔑 SSH доступ только по ключу (если настроен)
 | ||
| - 🛡️ Пользователь добавлен в sudoers с правами NOPASSWD
 | ||
| - 📁 SSH директория имеет правильные права доступа (700)
 | ||
| 
 | ||
| ## Troubleshooting
 | ||
| 
 | ||
| ### Проблема: Пользователь не создан
 | ||
| ```bash
 | ||
| # Проверьте права sudo
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "sudo whoami"
 | ||
| ```
 | ||
| 
 | ||
| ### Проблема: SSH не работает
 | ||
| ```bash
 | ||
| # Проверьте права на SSH директорию
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "ls -la /home/devops/.ssh/"
 | ||
| ```
 | ||
| 
 | ||
| ### Проблема: Sudo не работает
 | ||
| ```bash
 | ||
| # Проверьте sudoers файл
 | ||
| ansible all -i inventory/hosts.ini -m shell -a "sudo visudo -c"
 | ||
| ```
 | ||
| 
 | ||
| ## Поддержка
 | ||
| 
 | ||
| - 📧 Email: через сайт https://devops.org.ru
 | ||
| - 📖 Документация: `roles/devops/README.md`
 | ||
| - 🧪 Тесты: `roles/devops/tests/test.yml`
 |