null

Пакетная система IPS в Solaris 11 : нано-howto

Операционная система Solaris 11 появилась уже очень давно, однако, все еще возникают вопросы по особенностям ее администрирования, особенно тех подсистем, которые "в корне" поменялись  по сравнению с предыдущими версиями Solaris. Возможно, с этим связаны относительные различия с подходами администрирования, применяемых в других системах семейства *nix, а также довольно  "громоздкая" документация разработчика ОС.

Хотелось бы начать с пакетной системы IPS, которая пришла на смену SVR4-системы. Перечислю наиболее частые задачи, которые возникают при работе с IPS.

Создание локального репозитория :

I. Конфигурация локального репозитория (локальный доступ с возможностью совместного использования другими хостами по NFS)

1. При помощи образа репозитория (загруженного, например, с http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html)

2. Монтируем образ :
# mount -F hsfs /iso_dir/sol-11_1-repo-full.iso /mnt

3. Конфигурация доступа клиента
# pkg set-publisher -G ‘*’ -g file:///mnt/repo solaris

II. Конфигурация репозитория при помощи http-сервиса
1. Создаем (опционально) отдельную файловую систему с компрессией для хранения файлов репозитория   
# zfs create -o compression=on fs_for_IPS

2. Монтируем образ :
# mount -F hsfs /var/tmp/sol-11_1-repo-full.iso /mnt

3. Копируем содержимое образа на созданную файловую систему :
# rsync -aP /mnt/repo /path_to_IPS_dir (для этих целей также подходят tar, cpio)

4. Конфигурируем SMF-сервис svc:/application/pkg/server
Указываем путь к файловой системе (по умолчанию /var/pkgrepo) :
# svccfg -s application/pkg/server setprop pkg/inst_root=path_to_IPS_dir/repo

Обновляем конфигурацию, запускаем, проверяем исправность сервиса
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
# svcs application/pkg/server

Конфигурация доступа к репозиторию на "клиенте" :
Удаляем все ранее сконфигурированные URL (ключ -G ‘*) и указываем новый путь
# pkg set-publisher -G ‘*’ -g http://my_ips_server.mydomain.com/ solaris

При конфигурации доступа к support-репозиторию Oracle по ключу и сертификату, необходимо дополнительно указать  "-k" и "-c" с указанием путей их расположения, соответсвенно.

Работа с пакетами IPS локального образа системы
 
Поиск пакета/групп пакетов
# pkg search query
где query - простое, к примеру "wireshark", или структурированное выражение (вида "pkg_name:action_name:index:token" ), к примеру "info.classification:X11" используемое для поиска пакета/группы пакетов. Поддерживаются ' или " кавычки, символы "*" и "?".
Ключи "-l" или "-r"  задают область поиска - локальный образ или репозиторий, соответсвенно.   

Листинг устанавливаемого "содержимого" пакета :
# pkg contents pkg_name

Установка/обновление пакета
# pkg install pkg_name

Полезные ключи :
-nv  : "имитация" установки пакета/группы, оценка возможных изменений в системе
--backup-be-name name : создать именованную резервную копию загрузочного окружения (BE) перед установкой  пакета/группы
--be-name name: установка пакета/группы в указанное окружение (BE)
-g : позволяет указать принудительно путь или URI репозитория, с которого будет установлен пакет
 
Обновление системы :

Уточнение версии текущего IPS-образа системы (а также версии установленного Support Repository Update (SRU))
# pkg info entire

Список доступных обновлений для пакетов
 # pkg list -u

Список всех доступных версий пакетов, включая те, что не могут быть установлены в данной версии образа по разным причинам.
# pkg list -af

Установка обновления пакета/группы/всего образа
# pkg update [pkg_name] (или pkg install pkg_name)

Запуск "pkg update" без указания имени пакета/группы приводит к обновлению всего образа.
Ключи, связанные с BE, аналогичны имеющимся у install (см.выше)

Откат содержимого файлов к исходному состоянию (на момент установки)
# pkg revert path_to_file

Работа с загрузочными окружениями (BE)

Листинг доступных окружений
# beadm list
Флаги в столбце "Active"
N -текущее активное окружение
R -окружение станет активным после перезагрузки
Ключ "-a" дополняет вывод списком снэпшотов для имеющихся загрузочных окружений

Создание нового окружения (последовательное создание снэпшота текущего окружения и создание нового на его основе) :
# beadm create newbe_name

Создание снэпшота для окружения
# beadm create be_name@snapshot_name

Создание окружения на основе снэпшота
# beadm create -e be_name@snapshot_name newbe_name

Монтирование неактивного окружения
# beadm mount newbe_name /path

"Размонтирование" неактивного окружения
# beadm unmount newbe_name

Активация окружения (будет активным после перезагрузки)
# beadm activate newbe_name

Удаление окружения
# beadm destroy be_name

Продолжение следует...

Коротко о себе:

Работаю в компании TUNE-IT в качестве инженера и преподавателя.

В сферу профессиональных интересов входит все,  что связано с "большими" и не очень серверами и СХД от Sun Microsystems/Oracle и кластерами на их основе, но по долгу службы занимаюсь чаще всего их диагностикой и ремонтом... 

Делюсь опытом и  наработанными навыками в рамках курсов по  соответствующим направлениям.