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

3.5 KiB
Raw Blame History

Быстрый старт - Роль 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. Базовое использование

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 ключа

  1. Добавьте ваш SSH ключ в vault/secrets.yml:
devops_ssh_keys:
  public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
  1. Запустите 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