Files
DevOpsLab/roles/devops/QUICKSTART.md
Сергей Антропов 30b69ce0ec
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 и оптимизирована структура проекта
- Создана роль 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 файлов
  * Добавлены инструкции по безопасности
2025-10-25 20:06:08 +03:00

3.3 KiB
Raw Blame History

Быстрый старт - Роль devops

Автор

Сергей Антропов
Сайт: https://devops.org.ru

Что делает роль

Роль devops автоматически:

  1. Создает пользователя devops
  2. Генерирует безопасный пароль (30 символов)
  3. Настраивает SSH доступ по ключу
  4. Добавляет права sudo без пароля
  5. Создает домашнюю директорию

Быстрый запуск

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