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
- Создана роль devops с функциями: * Создание пользователя devops * Генерация безопасного пароля (30 символов) * Настройка SSH доступа по ключу * Добавление в sudoers без пароля * Полная документация и тесты - Оптимизирована структура проекта: * Удален Dockerfile из корня (сборка из dockerfiles/ansible-controller) * Заменены внешние образы на локальные ansible-controller * Обновлен Makefile для использования локальных образов * Зашифрован vault/secrets.yml с помощью ansible-vault - Добавлена документация: * Руководство по работе с vault (docs/vault-guide.md) * Подробная документация роли devops * Примеры использования и тесты - Улучшена безопасность: * Все секреты зашифрованы * Обновлен .gitignore для vault файлов * Добавлены инструкции по безопасности
121 lines
3.3 KiB
Markdown
121 lines
3.3 KiB
Markdown
# Быстрый старт - Роль devops
|
||
|
||
## Автор
|
||
Сергей Антропов
|
||
Сайт: https://devops.org.ru
|
||
|
||
## Что делает роль
|
||
|
||
Роль `devops` автоматически:
|
||
1. ✅ Создает пользователя `devops`
|
||
2. ✅ Генерирует безопасный пароль (30 символов)
|
||
3. ✅ Настраивает SSH доступ по ключу
|
||
4. ✅ Добавляет права sudo без пароля
|
||
5. ✅ Создает домашнюю директорию
|
||
|
||
## Быстрый запуск
|
||
|
||
### 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`
|