TrueNAS Catalogs: Настройка, обновление и устранение проблем с каталогами приложений | AdminWiki

TrueNAS Catalogs: Полное руководство по настройке и использованию каталогов приложений

29 января 2026 7 мин. чтения #apps catalog #docker #kubernetes #self-hosted #truenas #truenas scale #каталоги приложений #хранение данных

Представь, что твой TrueNAS SCALE — это огромный супермаркет программного обеспечения. TrueNAS Catalogs — это именно те полки и отделы, где ты находишь готовые к установке приложения: от медиасерверов вроде Plex до сложных DevOps-инструментов. В этой статье, как Senior DevOps Ментор, я покажу тебе, как полностью овладеть этой системой: от базовой настройки до решения сложных проблем с обновлением каталогов.

Что такое TrueNAS Apps Catalog и как он работает?

Давай разберем фундаментальные понятия. TrueNAS Apps Catalog (или просто truenas catalogs) — это репозиторий Helm-чартов, адаптированных для работы в экосистеме TrueNAS SCALE. По сути, это предварительно настроенные шаблоны развертывания приложений в контейнерах.

Важно: TrueNAS использует Kubernetes для оркестрации контейнеров, а Helm — как менеджер пакетов. Каталог — это просто удаленный репозиторий Helm-чартов, с которым взаимодействует веб-интерфейс TrueNAS.

Стандартные и пользовательские каталоги

По умолчанию в TrueNAS SCALE уже настроен официальный каталог от iXsystems. Но настоящая сила системы раскрывается, когда ты добавляешь свои источники.

Тип каталога URL репозитория Назначение
Официальный (iXsystems) https://github.com/truenas/charts.git Проверенные, стабильные приложения
Enterprise (требует лицензии) https://github.com/truenas/enterprise-charts.git Корпоративные приложения и инструменты
Пользовательский (Community) https://github.com/truecharts/catalog Огромная коллекция приложений от сообщества

Пошаговая настройка TrueNAS Catalogs

Теперь перейдем к практике. Я покажу тебе, как правильно настроить и расширить возможности твоего каталога приложений.

Шаг 1: Доступ к разделу управления каталогами

В веб-интерфейсе TrueNAS SCALE:

  1. Перейди в Apps в главном меню
  2. Нажми на кнопку Manage Catalogs
  3. Здесь ты увидишь список уже настроенных каталогов

Шаг 2: Добавление пользовательского каталога (TrueCharts)

TrueCharts — это самый популярный community-каталог. Добавим его:

Интерфейс TrueNAS
1. Нажми "Add Catalog"
2. Введи параметры:
   - Имя: truecharts
   - Репозиторий: https://github.com/truecharts/catalog
   - Ветка: main
   - Preferred Trains: enterprise, stable, incubator
3. Нажми "Save"
Внимание: При первом добавлении каталога TrueNAS загрузит все чарты. Это может занять несколько минут в зависимости от скорости интернета и размера каталога.

Шаг 3: Настройка пула для приложений

Перед установкой приложений необходимо настроить пул хранения:

CLI / Интерфейс
# Через веб-интерфейс:
1. Apps → Settings
2. Выбери или создай пул для приложений
3. Настрой пути:
   - Приложения: /mnt/apps_pool/ix-applications
   - Конфиги: /mnt/apps_pool/ix-applications/configs
4. Примени настройки

Обновление и синхронизация каталогов

Каталоги приложений требуют регулярного обновления. Вот как это делать правильно:

Ручное обновление каталога

Интерфейс TrueNAS
1. Apps → Manage Catalogs
2. Найди нужный каталог в списке
3. Нажми кнопку "Refresh" (иконка обновления)
4. Дождись завершения синхронизации

Автоматическое обновление через CLI

Для автоматизации можно использовать скрипт:

bash
#!/bin/bash
# Скрипт для автоматического обновления каталогов

# Функция обновления через midclt
refresh_catalog() {
    local catalog_name="$1"
    midclt call catalog.refresh "$catalog_name"
}

# Обновляем все каталоги
for catalog in $(midclt call catalog.query | jq -r '.[].label'); do
    echo "Обновляю каталог: $catalog"
    refresh_catalog "$catalog"
    sleep 5  # Пауза между обновлениями

done

echo "Все каталоги обновлены"

Решение распространенных проблем с каталогами

Проблема 1: Каталог не обновляется

Симптомы: Кнопка обновления не работает, приложения не появляются.

Диагностика через CLI
# Проверяем статус каталогов
midclt call catalog.query | jq '.[] | {label, state}'

# Смотрим логи синхронизации
tail -f /var/log/middleware.log | grep -i catalog

# Принудительно перезапускаем службу
midclt call service.restart "catalog"

Проблема 2: Ошибки при добавлении каталога

Частые причины и решения:

  • Нет доступа к GitHub: Проверь сетевые настройки и DNS
  • Неверный URL: Убедись, что репозиторий публичный и существует
  • Конфликт имен: Каталог с таким именем уже существует

Проблема 3: Приложения не устанавливаются

Решение: Проверь настройки пула приложений. Убедись, что выбранный пул имеет достаточно свободного места и правильно смонтирован.

Продвинутые техники работы с каталогами

Создание собственного каталога приложений

Если ты хочешь делиться своими конфигурациями или создавать кастомные развертывания:

Структура каталога
my-custom-catalog/
├── library/
│   ├── train1/
│   │   ├── app1/
│   │   │   ├── Chart.yaml
│   │   │   ├── values.yaml
│   │   │   └── templates/
│   │   └── app2/
│   └── train2/
├── icon.png
└── catalog.yaml
catalog.yaml
apiVersion: v1
name: my-custom-catalog
description: Мой собственный каталог приложений
version: "1.0.0"
icon: https://example.com/icon.png
maintainers:
  - name: Ваше Имя
    email: your@email.com
annotations:
  truenas.com/catalog-version: "1.0"

Использование каталогов в автоматических развертываниях

Для DevOps-практик можно автоматизировать установку приложений:

Python скрипт для автоматизации
#!/usr/bin/env python3
import requests
import json

class TrueNASApps:
    def __init__(self, host, api_key):
        self.host = host
        self.headers = {
            'Authorization': f'Bearer {api_key}',
            'Content-Type': 'application/json'
        }
    
    def install_app(self, catalog, train, app_name, config):
        """Установка приложения через API"""
        url = f"{self.host}/api/v2.0/app"
        payload = {
            "catalog": catalog,
            "train": train,
            "name": app_name,
            "config": config
        }
        
        response = requests.post(url, headers=self.headers, json=payload, verify=False)
        return response.json()

# Пример использования
nas = TrueNASApps("https://truenas.local", "your-api-key")
app_config = {
    "values": {
        "image": {
            "repository": "nginx",
            "tag": "latest"
        },
        "service": {
            "type": "ClusterIP",
            "port": 80
        }
    }
}

result = nas.install_app("truecharts", "stable", "nginx", app_config)
print(f"Результат установки: {result}")

Безопасность и лучшие практики

  • Проверяй источники: Добавляй только доверенные каталоги
  • Используй изолированные сети: Настройка сетевых политик для приложений
  • Регулярно обновляй: Обновляй не только каталоги, но и сами приложения
  • Бэкап конфигов: Регулярно экспортируй настройки приложений
  • Мониторинг ресурсов: Следи за использованием CPU, памяти и диска
Важное предупреждение: Community-каталоги (как TrueCharts) могут содержать приложения, которые не прошли полную проверку безопасности. Всегда проверяй настройки по умолчанию перед установкой в production-среде.

Часто задаваемые вопросы (FAQ)

Как часто нужно обновлять каталоги приложений?

Рекомендую обновлять каталоги раз в неделю. Для production-среды можно делать это реже (раз в месяц), но перед установкой новых приложений всегда обновляй каталог, чтобы получить актуальные версии.

Можно ли использовать несколько каталогов одновременно?

Да, TrueNAS поддерживает работу с несколькими каталогами одновременно. При установке приложения ты выбираешь, из какого каталога его брать. Это позволяет комбинировать официальные, enterprise и community-приложения.

Что делать, если каталог перестал работать после обновления TrueNAS?

Сначала попробуй удалить и заново добавить каталог. Если не помогает, проверь совместимость версий каталога с твоей версией TrueNAS. Некоторые community-каталоги могут отставать с поддержкой новых версий.

Как перенести приложения на другой пул?

1. Сделай бэкап конфигов приложений. 2. В настройках Apps измени корневой пул. 3. Переустанови приложения из бэкапов. Важно: некоторые данные могут храниться внутри контейнеров — их нужно мигрировать отдельно.

Заключение

Освоив работу с truenas catalogs, ты превращаешь свой NAS из простого хранилища данных в мощную платформу для развертывания приложений. Помни ключевые моменты:

  • Начинай с официального каталога, затем добавляй community-источники
  • Регулярно обновляй каталоги для получения актуальных версий приложений
  • Используй отдельный пул для приложений для изоляции и удобства управления
  • Освой CLI-инструменты для автоматизации рутинных задач

Система каталогов приложений — это живой, развивающийся механизм. Следи за обновлениями, участвуй в сообществе, и твой TrueNAS будет расти вместе с твоими потребностями.

Поделиться:
Сохранить гайд? В закладки браузера