You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1114 lines
24 KiB

6 days ago
# Модуль decort_account
## Обзор модуля
Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом:
- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину))
- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно))
- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины))
- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить))
- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа))
- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать))
- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты))
- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам))
- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд))
- **изменить описание** (см. [параметр description](#description) и [примеры](#изменить-описание))
- **изменить зону по умолчанию** (см. [параметр default_zone_id](#default_zone_id) и [примеры](#изменить-зону-по-умолчанию))
## Параметры модуля
Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
<table>
<tr>
<th colspan="6">Параметр</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
<a name="access_emails">
access_emails
</a>
</td>
<td>
(bool)
</td>
<td>
Выключение/включение отправки пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам.
</td>
</tr>
<tr>
<td colspan="6">
<a name="acl">
acl
</a>
</td>
<td>
(dict)
</td>
<td>
Целевые права доступа.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mode
</td>
<td>
(str)
<br>Значения:
<br><code>match</code>
<br><code>revoke</code>
<br><code>update</code>
<br>Default: <code>update</code>
</td>
<td>
Режим изменения прав доступа для указанных пользователей.
<br><code>match</code> - привести в соответствие для указанных
пользователей, удалить предоставленные для других.
<br><code>revoke</code> - отозвать для указанных пользователей,
если предоставлены.
<br><code>update</code> - привести в соответствие для указанных
пользователей, оставить без изменения предоставленные для
других.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
users
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих права доступа пользователей.
<br>Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
rights
</td>
<td>
(str)
<br>Значения:
<br><code>R</code>
<br><code>RCX</code>
<br><code>ARCXDU</code>
<br>Default: <code>R</code>
</td>
<td>
Права доступа.
<br>При <code>mode: revoke</code> не используется.
<br>При <code>mode: match</code> и <code>mode: update</code>
права <code>ARCXDU</code> считаются соответствующими
правам <code>CXDRAU</code>.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
id
</td>
<td>
(str)
</td>
<td>
Идентификатор пользователя.
<br>Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="6">
<a name="default_zone_id">
default_zone_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор зоны по умолчанию.
</td>
</tr>
<tr>
<td colspan="6">
<a name="description">
description
</a>
</td>
<td>
(str)
</td>
<td>
Целевое описание
</td>
</tr>
<tr>
<td colspan="6">
id
</td>
<td>
(int)
</td>
<td>
Идентификатор целевого аккаунта.
<br>Обязательный параметр, если не задан параметр
<code>name</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="name">
name
</a>
</td>
<td>
(str)
</td>
<td>
Имя целевого аккаунта.
<br>Может быть альтернативой параметру <code>id</code>,
за исключением случая, когда необходимо получить
информацию о безвозвратно удалённом объекте.
<br>Если задан совместно с параметром <code>id</code>,
то используется для переименования (целевое имя).
</td>
</tr>
<tr>
<td colspan="6">
<a name="quotas">
quotas
</a>
</td>
<td>
(dict)
</td>
<td>
Целевые квоты.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
cpu
</td>
<td>
(int)
</td>
<td>
Количество виртуальных процессоров.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
disks_size
</td>
<td>
(int)
</td>
<td>
Объём дисков в ГБ.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
ext_traffic
</td>
<td>
(int)
</td>
<td>
Объём трафика внешних сетей.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
gpu
</td>
<td>
(int)
</td>
<td>
Количество графических процессоров.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
public_ip
</td>
<td>
(int)
</td>
<td>
Количество внешних IP-адресов.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
</tr>
<tr>
<td></td>
<td colspan="5">
ram
</td>
<td>
(int)
</td>
<td>
Объём оперативной памяти в МБ.
<br><code>-1</code> - удалить квоту.
</td>
</tr>
<tr>
<td colspan="6">
<a name="sep_pools">
sep_pools
</a>
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих доступные пулы СХД.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
sep_id
</td>
<td>
(int)
</td>
<td>
Идентификатор системы хранения данных.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
pool_names
</td>
<td>
(list)
</td>
<td>
Список названий пулов системы хранения данных.
</td>
</tr>
<tr>
<td colspan="6">
<a name="state">
state
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>absent</code>
<br><code>absent_permanently</code>
<br><code>confirmed</code>
<br><code>disabled</code>
<br><code>present</code>
<br>Default: <code>present</code>
</td>
<td>
Целевое состояние.
<br><code>absent</code> - удалён в корзину, безвозвратно удалён
или не существует. Если существует и не удалён, то будет удалён
в корзину.
<br><code>absent_permanently</code> - безвозвратно удалён или
не существует. Если существует и не удалён или удалён в корзину,
то будет безвозвратно удалён.
<br> При значениях <code>absent</code> и <code>absent_permanently</code>
использование других параметров модуля, вызывающих изменение объекта,
не допускается.
<br><code>confirmed</code> - включён. Если выключен, то будет включён.
Если удалён в корзину, то будет восстановлен из корзины.
<br><code>disabled</code> - выключен. Если включён, то будет выключен.
Если удалён в корзину, то будет восстановлен из корзины и выключен.
<br><code>present</code> - существует и не удалён. Если удалён в
корзину, то будет восстановлен из корзины.
</td>
</tr>
</table>
## Возвращаемые значения
Модуль **decort_account** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами:
<table>
<tr>
<th colspan="6">
Ключ
</th>
<th>
Тип
<br>данных
</th>
<th>
Описание
</th>
</tr>
<tr>
<td colspan="6">
acl
</td>
<td>
list
</td>
<td>
Список словарей, описывающих доступы пользователей.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
canBeDeleted
</td>
<td>
bool
</td>
<td>
Может ли быть удалён.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
emails
</td>
<td>
list
</td>
<td>
Адреса эл. почты.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
explicit
</td>
<td>
bool
</td>
<td>
Видимость аккаунта.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
guid
</td>
<td>
str
</td>
<td>
Идентификатор.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
right
</td>
<td>
str
</td>
<td>
Права.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
status
</td>
<td>
str
</td>
<td>
Статус.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
type
</td>
<td>
str
</td>
<td>
Тип.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
userGroupId
</td>
<td>
str
</td>
<td>
Идентификатор пользователя или группы пользователей.
</td>
</tr>
<tr>
<td colspan="6">
company
</td>
<td>
str
</td>
<td>
Название компании.
</td>
</tr>
<tr>
<td colspan="6">
companyurl
</td>
<td>
str
</td>
<td>
URL компании.
</td>
</tr>
<tr>
<td colspan="6">
computeFeatures
</td>
<td>
list
</td>
<td>
Список дополнительных возможностей гипервизора, доступных ВМ.
</td>
</tr>
<tr>
<td colspan="6">
computes_amount
</td>
<td>
dict
</td>
<td>
Количество ВМ по состоянию.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
started
</td>
<td>
int
</td>
<td>
Количество запущенных ВМ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
stopped
</td>
<td>
int
</td>
<td>
Количество остановленных ВМ.
</td>
</tr>
<tr>
<td colspan="6">
cpu_allocation_parameter
</td>
<td>
str
</td>
<td>
Режим выделения ЦП.
</td>
</tr>
<tr>
<td colspan="6">
cpu_allocation_ratio
</td>
<td>
str
</td>
<td>
Коэффициент для режима выделения ЦП.
</td>
</tr>
<tr>
<td colspan="6">
createdBy
</td>
<td>
str
</td>
<td>
Идентификатор пользователя, который создал.
</td>
</tr>
<tr>
<td colspan="6">
createdTime
</td>
<td>
int
</td>
<td>
Unix-время создания.
</td>
</tr>
<tr>
<td colspan="6">
createdTime_readable
</td>
<td>
str
</td>
<td>
Дата и время создания.
</td>
</tr>
<tr>
<td colspan="6">
deactivationTime
</td>
<td>
int
</td>
<td>
Unix-время выключения.
</td>
</tr>
<tr>
<td colspan="6">
deactivationTime_readable
</td>
<td>
str
</td>
<td>
Дата и время выключения.
</td>
</tr>
<tr>
<td colspan="6">
defaultZoneId
</td>
<td>
int
</td>
<td>
Идентификатор зоны по умолчанию.
</td>
</tr>
<tr>
<td colspan="6">
deletedBy
</td>
<td>
str
</td>
<td>
Идентификатор пользователя, который удалил.
</td>
</tr>
<tr>
<td colspan="6">
deletedTime
</td>
<td>
int
</td>
<td>
Unix-время удаления.
</td>
</tr>
<tr>
<td colspan="6">
deletedTime_readable
</td>
<td>
str
</td>
<td>
Дата и время удаления.
</td>
</tr>
<tr>
<td colspan="6">
description
</td>
<td>
str
</td>
<td>
Описание.
</td>
</tr>
<tr>
<td colspan="6">
displayname
</td>
<td>
str
</td>
<td>
Отображаемое имя.
</td>
</tr>
<tr>
<td colspan="6">
id
</td>
<td>
int
</td>
<td>
Идентификатор.
</td>
</tr>
<tr>
<td colspan="6">
name
</td>
<td>
str
</td>
<td>
Имя.
</td>
</tr>
<tr>
<td colspan="6">
resourceLimits
</td>
<td>
dict
</td>
<td>
Квоты на ресурсы.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_C
</td>
<td>
int
</td>
<td>
Количество виртуальных процессоров.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_D
</td>
<td>
int
</td>
<td>
Объём диска в ГБ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_DM
</td>
<td>
int
</td>
<td>
Объём дисков в ГБ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_I
</td>
<td>
int
</td>
<td>
Количество внешних IP-адресов.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_M
</td>
<td>
float
</td>
<td>
Объём оперативной памяти в МБ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
CU_NP
</td>
<td>
int
</td>
<td>
Объём трафика внешних сетей.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
gpu_units
</td>
<td>
int
</td>
<td>
Количество графических процессоров.
</td>
</tr>
<tr>
<td colspan="6">
sendAccessEmails
</td>
<td>
bool
</td>
<td>
Отправка пользователям на эл. почту уведомлений о предоставлении доступа.
</td>
</tr>
<tr>
<td colspan="6">
status
</td>
<td>
str
</td>
<td>
Статус.
</td>
</tr>
<tr>
<td colspan="6">
uniqPools
</td>
<td>
list
</td>
<td>
Список доступных пулов СХД.
</td>
</tr>
<tr>
<td colspan="6">
updatedTime
</td>
<td>
int
</td>
<td>
Unix-время обновления.
</td>
</tr>
<tr>
<td colspan="6">
updatedTime_readable
</td>
<td>
str
</td>
<td>
Дата и время обновления.
</td>
</tr>
<tr>
<td colspan="6">
vins
</td>
<td>
list
</td>
<td>
Список идентификаторов внутренних сетей на уровне аккаунта.
</td>
</tr>
<tr>
<td colspan="6">
vinses_amount
</td>
<td>
int
</td>
<td>
Количество внутренних сетей.
</td>
</tr>
<tr>
<td colspan="6">
zoneIds
</td>
<td>
list
</td>
<td>
Идентификаторы доступных зон.
</td>
</tr>
</table>
## Примеры использования
### Удалить
#### В корзину
```
- name: Example
hosts: localhost
tasks:
- name: Delete account
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
state: absent
```
#### Безвозвратно
```
- name: Example
hosts: localhost
tasks:
- name: Delete account
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
state: absent_permanently
```
### Восстановить из корзины
```
- name: Example
hosts: localhost
tasks:
- name: Restore account from recycle bin
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
state: present
```
### Выключить/включить
#### Выключить
```
- name: Example
hosts: localhost
tasks:
- name: Disable account
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
state: disabled
```
#### Включить
```
- name: Example
hosts: localhost
tasks:
- name: Enable account
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
state: confirmed
```
### Изменить права доступа
#### Отозвать
```
- name: Example
hosts: localhost
tasks:
- name: Revoke user access rights
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
acl:
mode: revoke
users:
- id: "{{ user1_id }}"
- id: "{{ user2_id }}"
```
#### Обновить
```
- name: Example
hosts: localhost
tasks:
- name: Update user access rights
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
acl:
mode: update
users:
- id: "{{ user1_id }}"
rights: R
- id: "{{ user2_id }}"
rights: RCX
```
#### Привести в соответствие
```
- name: Example
hosts: localhost
tasks:
- name: Match user access rights
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
acl:
mode: match
users:
- id: "{{ user1_id }}"
rights: ARCXDU
- id: "{{ user2_id }}"
rights: RCX
```
### Переименовать
```
- name: Example
hosts: localhost
tasks:
- name: Rename account
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
name: "{{ account_new_name }}"
```
### Изменить квоты
#### На объём дисков
```
- name: Example
hosts: localhost
tasks:
- name: Update account quota of disks size
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
quotas:
disks_size: 500
```
#### На количество внешних IP-адресов
```
- name: Example
hosts: localhost
tasks:
- name: Update account quota of public IP amount
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
quotas:
public_ip: 10
```
### Выключить/включить отправку уведомлений о предоставлении доступа к ресурсам
#### Выключить
```
- name: Example
hosts: localhost
tasks:
- name: Disable sending access emails
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
access_emails: false
```
#### Включить
```
- name: Example
hosts: localhost
tasks:
- name: Enable sending access emails
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
access_emails: true
```
### Изменить доступные пулы СХД
```
- name: Example
hosts: localhost
tasks:
- name: Change available sep pools
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
sep_pools:
- sep_id: 1
pool_names:
- pool1
```
### Изменить описание
```
- name: Example
hosts: localhost
tasks:
- name: Change description
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
description: New account description
```
### Изменить зону по умолчанию
```
- name: Example
hosts: localhost
tasks:
- name: Change default zone
decort_account:
# Параметры для авторизации упущены
id: "{{ account_id }}"
default_zone_id: 8
```