В OpenNebula группы используются для логического разделения пользователей и ресурсов.
По умолчанию пользователь видит только ресурсы, принадлежащие его группе. Доступ к ресурсам других групп возможен только при явном предоставлении прав через ACL или при использовании виртуальных центров обработки данных (VDC).
Группа определяет границу видимости и управления ресурсами. Более гибкое разделение инфраструктуры можно реализовать с помощью VDC, где каждой группе назначаются отдельные ресурсы (хосты, хранилища, сети).
35.2.1. Управление группами в консоли
Для управления группами используется утилита onegroup.
Просмотр списка групп:
$ onegroup list
ID NAME USERS VMS MEMORY CPU
1 users 1 0 / - 0M / - 0.0 / -
0 oneadmin 3 - - -
Команда создания новой группы:
$ onegroup create <имя_группы>
Например:
$ onegroup create ALT
ID: 100
Созданной группе был присвоен идентификатор 100, что позволяет отличать пользовательские группы от предопределённых (служебных) групп OpenNebula.
При создании группы автоматически настраивается базовое правило ACL, разрешающее пользователям группы создавать стандартные ресурсы (ВМ, образы, шаблоны).
Для назначения пользователей группам используется команда
oneuser chgrp:
$ oneuser chgrp -v oneuser ALT
Удаление из группы выполняется переводом пользователя обратно в группу users.
При создании группы можно указать специального администратора, который получит расширенные права только в рамках этой группы (в отличие от глобального администратора oneadmin).
Параметры команды
onegroup create:
-n, --name — имя группы;
-u, --admin_user — создать администратора группы;
-p, --admin_password — пароль администратора;
-d, --admin_driver — драйвер аутентификации (например, ldap);
-r, --resources — типы ресурсов, которые могут создавать пользователи группы (по умолчанию VM+IMAGE+TEMPLATE).
Пример:
$ onegroup create --name testgroup \
--admin_user testgroup-admin --admin_password somestr \
--resources TEMPLATE+VM
Эта команда создаст группу testgroup и пользователя testgroup-admin с правами администратора этой группы.
Любого существующего пользователя можно назначить администратором группы:
$ onegroup addadmin <ID_группы> <ID_пользователя>