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