Files
DevOpsLab/roles/devops/QUICKSTART.md
Сергей Антропов 7232bd6756
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
feat: сделана роль devops универсальной для всех ОС
- Добавлена автоматическая детекция ОС и настройка групп пользователя
- Поддержка всех ОС из dockerfiles: Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS
- Автоматический выбор групп: sudo для Ubuntu/Debian, wheel для RHEL-семейства
- Обновлена документация с примерами для разных ОС
- Добавлены тесты для проверки универсальности
- Исправлены ошибки линтера в meta/main.yml

Роль теперь работает на всех системах из dockerfiles без дополнительной настройки.
2025-10-25 20:24:43 +03:00

123 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Быстрый старт - Роль 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`