test-server2
This commit is contained in:
@@ -81,6 +81,13 @@ docker compose logs -f # Логи контейнеров
|
||||
|
||||
## 🐛 Устранение неполадок
|
||||
|
||||
### Ollama сервис не запускается:
|
||||
```bash
|
||||
# Если видите ошибку "permission denied" для /nonexistent
|
||||
chmod +x fix-ollama.sh
|
||||
sudo ./fix-ollama.sh
|
||||
```
|
||||
|
||||
### GPU не найден:
|
||||
```bash
|
||||
nvidia-smi # Проверка драйверов
|
||||
|
||||
57
fix-ollama.sh
Normal file
57
fix-ollama.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Fix script for Ollama service permission issues
|
||||
|
||||
echo "🔧 Исправление проблем с сервисом Ollama..."
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Stop the service
|
||||
echo "Остановка сервиса Ollama..."
|
||||
sudo systemctl stop ollama
|
||||
|
||||
# Fix user home directory
|
||||
echo "Исправление домашней директории пользователя aiserver..."
|
||||
sudo usermod -d /opt/ai-server aiserver
|
||||
|
||||
# Create proper Ollama directory
|
||||
echo "Создание правильной директории для Ollama..."
|
||||
sudo mkdir -p /opt/ai-server/.ollama
|
||||
sudo chown -R aiserver:aiserver /opt/ai-server/.ollama
|
||||
sudo chmod 755 /opt/ai-server/.ollama
|
||||
|
||||
# Update systemd service
|
||||
echo "Обновление systemd сервиса..."
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
# Start the service
|
||||
echo "Запуск сервиса Ollama..."
|
||||
sudo systemctl start ollama
|
||||
|
||||
# Wait a moment
|
||||
sleep 5
|
||||
|
||||
# Check status
|
||||
if sudo systemctl is-active --quiet ollama; then
|
||||
echo -e "${GREEN}✅ Ollama сервис успешно запущен!${NC}"
|
||||
|
||||
# Test connection
|
||||
if curl -s http://localhost:11434 >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✅ Ollama API доступен${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ Ollama API пока недоступен (может потребоваться время)${NC}"
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}❌ Ошибка запуска Ollama сервиса${NC}"
|
||||
echo "Логи:"
|
||||
sudo journalctl -u ollama --no-pager -l | tail -10
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 Исправление завершено!${NC}"
|
||||
echo "Теперь можете использовать: ai-start, ai-status"
|
||||
@@ -178,10 +178,15 @@ install_ollama() {
|
||||
|
||||
# Создание пользователя для сервиса
|
||||
if ! id "$SERVICE_USER" &>/dev/null; then
|
||||
useradd -r -s /bin/false -d /nonexistent $SERVICE_USER
|
||||
useradd -r -s /bin/false -d /opt/ai-server -m $SERVICE_USER
|
||||
usermod -aG docker $SERVICE_USER
|
||||
log_success "Пользователь $SERVICE_USER создан"
|
||||
fi
|
||||
|
||||
# Создание домашней директории Ollama
|
||||
mkdir -p /opt/ai-server/.ollama
|
||||
chown -R $SERVICE_USER:$SERVICE_USER /opt/ai-server/.ollama
|
||||
log_success "Директория Ollama создана"
|
||||
}
|
||||
|
||||
# Настройка systemd сервиса для Ollama
|
||||
@@ -233,14 +238,14 @@ install_models() {
|
||||
log_step "Установка модели $DEFAULT_MODEL..."
|
||||
log_info "Это может занять несколько минут в зависимости от скорости интернета..."
|
||||
|
||||
# Установка модели от имени пользователя сервиса
|
||||
sudo -u $SERVICE_USER ollama pull $DEFAULT_MODEL
|
||||
# Установка модели от имени пользователя сервиса с правильной переменной окружения
|
||||
sudo -u $SERVICE_USER OLLAMA_HOME=/opt/ai-server/.ollama ollama pull $DEFAULT_MODEL
|
||||
|
||||
log_success "Модель $DEFAULT_MODEL установлена"
|
||||
|
||||
# Список доступных моделей
|
||||
log_info "Доступные модели:"
|
||||
sudo -u $SERVICE_USER ollama list
|
||||
sudo -u $SERVICE_USER OLLAMA_HOME=/opt/ai-server/.ollama ollama list
|
||||
}
|
||||
|
||||
# Создание рабочей директории
|
||||
|
||||
@@ -18,6 +18,7 @@ Environment="OLLAMA_MAX_LOADED_MODELS=2"
|
||||
Environment="OLLAMA_FLASH_ATTENTION=1"
|
||||
Environment="CUDA_VISIBLE_DEVICES=0"
|
||||
Environment="OLLAMA_GPU_OVERHEAD=0.2"
|
||||
Environment="OLLAMA_HOME=/opt/ai-server/.ollama"
|
||||
WorkingDirectory=/opt/ai-server
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
@@ -26,7 +27,6 @@ StandardError=journal
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/ai-server
|
||||
|
||||
# Resource limits for RTX 2060
|
||||
|
||||
@@ -27,7 +27,7 @@ show_menu() {
|
||||
|
||||
list_models() {
|
||||
echo -e "${PURPLE}📦 Установленные модели:${NC}"
|
||||
sudo -u aiserver ollama list
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
|
||||
echo ""
|
||||
|
||||
if command -v nvidia-smi &> /dev/null; then
|
||||
@@ -50,7 +50,7 @@ install_recommended() {
|
||||
desc="${descriptions[$i]}"
|
||||
|
||||
echo -e "${BLUE}Устанавливаю: $model - $desc${NC}"
|
||||
sudo -u aiserver ollama pull "$model"
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama pull "$model"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ $model установлена${NC}"
|
||||
@@ -73,7 +73,7 @@ install_custom() {
|
||||
echo -e "${BLUE}Установка модели: $model_name${NC}"
|
||||
echo -e "${YELLOW}Это может занять несколько минут...${NC}"
|
||||
|
||||
sudo -u aiserver ollama pull "$model_name"
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama pull "$model_name"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ Модель $model_name успешно установлена${NC}"
|
||||
@@ -84,7 +84,7 @@ install_custom() {
|
||||
|
||||
remove_model() {
|
||||
echo -e "${PURPLE}📦 Доступные модели для удаления:${NC}"
|
||||
sudo -u aiserver ollama list
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
|
||||
echo ""
|
||||
|
||||
echo -e "${YELLOW}Введите название модели для удаления:${NC}"
|
||||
@@ -99,7 +99,7 @@ remove_model() {
|
||||
read -r confirm
|
||||
|
||||
if [[ $confirm =~ ^[Yy]$ ]]; then
|
||||
sudo -u aiserver ollama rm "$model_name"
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama rm "$model_name"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ Модель $model_name удалена${NC}"
|
||||
@@ -113,7 +113,7 @@ remove_model() {
|
||||
|
||||
test_model() {
|
||||
echo -e "${PURPLE}📦 Доступные модели:${NC}"
|
||||
sudo -u aiserver ollama list
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
|
||||
echo ""
|
||||
|
||||
echo -e "${YELLOW}Введите название модели для тестирования:${NC}"
|
||||
@@ -127,7 +127,7 @@ test_model() {
|
||||
echo -e "${BLUE}Тестирование модели: $model_name${NC}"
|
||||
echo -e "${YELLOW}Задаю тестовый вопрос...${NC}"
|
||||
|
||||
sudo -u aiserver ollama run "$model_name" "Привет! Как дела? Ответь кратко."
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama run "$model_name" "Привет! Как дела? Ответь кратко."
|
||||
}
|
||||
|
||||
show_vram_usage() {
|
||||
|
||||
@@ -85,7 +85,7 @@ if systemctl is-active --quiet ollama; then
|
||||
|
||||
# List models
|
||||
echo " 📦 Установленные модели:"
|
||||
sudo -u aiserver ollama list 2>/dev/null | tail -n +2 | while read -r line; do
|
||||
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list 2>/dev/null | tail -n +2 | while read -r line; do
|
||||
if [[ -n "$line" ]]; then
|
||||
model_name=$(echo "$line" | awk '{print $1}')
|
||||
model_size=$(echo "$line" | awk '{print $2}')
|
||||
|
||||
Reference in New Issue
Block a user