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
				
			- roles/ping/QUICKSTART.md - обновлены команды Makefile, добавлены новые возможности - roles/devops/QUICKSTART.md - обновлены команды, добавлена версия 2.0.0 - Добавлены примеры проверки результатов в контейнерах - Обновлены примеры использования с актуальными командами - Добавлены разделы про теги и дополнительные возможности Автор: Сергей Антропов Сайт: https://devops.org.ru
		
			
				
	
	
	
		
			5.8 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			5.8 KiB
		
	
	
	
	
	
	
	
Быстрый старт - Роль devops
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Версия: 2.0.0
Что делает роль
Роль автоматически:
- ✅ Создает пользователя devops
- ✅ Генерирует безопасный пароль (30 символов)
- ✅ Настраивает SSH доступ по ключу
- ✅ Добавляет права sudo без пароля
- ✅ Создает домашнюю директорию
- ✅ Автоматически определяет ОС и настраивает группы
- ✅ Поддерживает все ОС (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS)
Быстрый запуск
Тестирование роли
# Lint проверка
make role lint devops
# Тестирование с minimal preset
make role test minimal
# Тестирование конкретной роли
make role test devops
Базовое использование
# Запуск всех ролей через roles/deploy.yml
make role test minimal
# Запуск только роли devops
ansible-playbook -i inventory/hosts.ini roles/devops/playbook.yml
С SSH ключом из vault
# Создание 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 }}"
Проверка результата
В тестовых контейнерах
# Просмотр логов
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/
В продакшн окружении
# Проверка пользователя
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:
# Редактирование vault
make vault edit
# Имя файла: secrets
Добавьте SSH ключ:
devops_ssh_keys:
  public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
2. Запуск с SSH ключом
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"]
Использование в playbook
- 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
Проблема: Пользователь не создан
# Проверьте права sudo
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo whoami
Проблема: SSH не работает
# Проверьте права на SSH директорию
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) ls -la /home/devops/.ssh/
Проблема: Sudo не работает
# Проверьте sudoers файл
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo visudo -c
Теги
Роль поддерживает следующие теги:
- devops- основная функциональность
- user-management- управление пользователями
- security- настройки безопасности
- ssh- SSH конфигурация
- sudo- настройки sudo
Пример использования:
# Только создание пользователя
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