Files
DevOpsLab/roles/devops/QUICKSTART.md
Сергей Антропов c1655d2674
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
chore: обновлена версия проекта с 2.0.0 на 3.0.0
- Обновлена версия в README.md
- Обновлена версия во всех файлах docs/
- Обновлена версия в dockerfiles/README.md
- Обновлена версия в roles/*/QUICKSTART.md
- Подготовка к версии 3.0.0 с Kubernetes поддержкой

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-26 01:36:54 +03:00

228 lines
5.8 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
**Версия:** 3.0.0
## Что делает роль
Роль автоматически:
1. ✅ Создает пользователя `devops`
2. ✅ Генерирует безопасный пароль (30 символов)
3. ✅ Настраивает SSH доступ по ключу
4. ✅ Добавляет права sudo без пароля
5. ✅ Создает домашнюю директорию
6. ✅ Автоматически определяет ОС и настраивает группы
7. ✅ Поддерживает все ОС (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS)
## Быстрый запуск
### Тестирование роли
```bash
# Lint проверка
make role lint devops
# Тестирование с minimal preset
make role test minimal
# Тестирование конкретной роли
make role test devops
```
### Базовое использование
```bash
# Запуск всех ролей через roles/deploy.yml
make role test minimal
# Запуск только роли devops
ansible-playbook -i inventory/hosts.ini roles/devops/playbook.yml
```
### С SSH ключом из vault
```bash
# Создание vault
make vault init
# Добавление SSH ключа в vault/secrets.yml
# Затем запуск с vault паролем
ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
--ask-vault-pass \
-e "devops_ssh_public_key={{ devops_ssh_keys.public_key }}"
```
## Проверка результата
### В тестовых контейнерах
```bash
# Просмотр логов
docker logs $(docker ps -aq --filter "network=labnet" | head -1)
# Вход в контейнер
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) bash
# Проверка пользователя
id devops
sudo -l -U devops
ls -la /home/devops/.ssh/
```
### В продакшн окружении
```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. Добавление ключа в vault
Создайте/отредактируйте `vault/secrets.yml`:
```bash
# Редактирование vault
make vault edit
# Имя файла: secrets
```
Добавьте SSH ключ:
```yaml
devops_ssh_keys:
public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
```
### 2. Запуск с SSH ключом
```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"]
```
### Использование в playbook
```yaml
- hosts: all
become: true
vars:
devops_user:
name: "admin"
groups: ["sudo", "docker"]
devops_password:
length: 40
roles:
- devops
```
## Безопасность
- 🔒 Пароль генерируется автоматически и не сохраняется в логах
- 🔑 SSH доступ только по ключу (если настроен)
- 🛡️ Пользователь добавлен в sudoers с правами NOPASSWD
- 📁 SSH директория имеет правильные права доступа (700)
- 🔐 Пароль содержит минимум 4 символа каждого типа
## Поддерживаемые ОС
- ✅ Ubuntu 20.04, 22.04, 24.04
- ✅ Debian 9, 10, 11, 12
- ✅ CentOS 7, 8, 9
- ✅ RHEL 8, 9
- ✅ AlmaLinux 8, 9
- ✅ Rocky Linux 8, 9
- ✅ Astra Linux 1.7
- ✅ ALT Linux P9
- ✅ RED OS 9
## Troubleshooting
### Проблема: Пользователь не создан
```bash
# Проверьте права sudo
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo whoami
```
### Проблема: SSH не работает
```bash
# Проверьте права на SSH директорию
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) ls -la /home/devops/.ssh/
```
### Проблема: Sudo не работает
```bash
# Проверьте sudoers файл
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo visudo -c
```
## Теги
Роль поддерживает следующие теги:
- `devops` - основная функциональность
- `user-management` - управление пользователями
- `security` - настройки безопасности
- `ssh` - SSH конфигурация
- `sudo` - настройки sudo
Пример использования:
```bash
# Только создание пользователя
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags devops
# Только SSH настройка
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags ssh
```
## Дополнительная информация
- 📖 Полная документация: `roles/devops/README.md`
- 🧪 Тесты: `roles/devops/tests/test.yml`
- 📝 Примеры: `roles/devops/examples.yml`
---
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru