From aa3f84095f938250686bd9980497983d1fe1904d Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Tue, 3 Sep 2024 09:20:19 +0300 Subject: [PATCH] 5.6.0 --- CHANGELOG.md | 12 +- README.md | 2 +- library/decort_user_info.py | 342 ++ module_utils/decort_utils.py | 272 +- wiki/5.6.0/Home.md | 23 + wiki/5.6.0/введение.md | 182 + wiki/5.6.0/модуль-decort_account.md | 939 ++++ .../5.6.0/модуль-decort_account_info.md | 3831 +++++++++++++++++ wiki/5.6.0/модуль-decort_bservice.md | 92 + wiki/5.6.0/модуль-decort_disk.md | 177 + wiki/5.6.0/модуль-decort_group.md | 105 + wiki/5.6.0/модуль-decort_jwt.md | 53 + wiki/5.6.0/модуль-decort_k8s.md | 108 + wiki/5.6.0/модуль-decort_kvmvm.md | 106 + wiki/5.6.0/модуль-decort_lb.md | 893 ++++ wiki/5.6.0/модуль-decort_osimage.md | 132 + wiki/5.6.0/модуль-decort_pfw.md | 76 + wiki/5.6.0/модуль-decort_rg.md | 200 + wiki/5.6.0/модуль-decort_user_info.md | 1297 ++++++ wiki/5.6.0/модуль-decort_vins.md | 120 + wiki/Home.md | 1 + 21 files changed, 8956 insertions(+), 7 deletions(-) create mode 100644 library/decort_user_info.py create mode 100644 wiki/5.6.0/Home.md create mode 100644 wiki/5.6.0/введение.md create mode 100644 wiki/5.6.0/модуль-decort_account.md create mode 100644 wiki/5.6.0/модуль-decort_account_info.md create mode 100644 wiki/5.6.0/модуль-decort_bservice.md create mode 100644 wiki/5.6.0/модуль-decort_disk.md create mode 100644 wiki/5.6.0/модуль-decort_group.md create mode 100644 wiki/5.6.0/модуль-decort_jwt.md create mode 100644 wiki/5.6.0/модуль-decort_k8s.md create mode 100644 wiki/5.6.0/модуль-decort_kvmvm.md create mode 100644 wiki/5.6.0/модуль-decort_lb.md create mode 100644 wiki/5.6.0/модуль-decort_osimage.md create mode 100644 wiki/5.6.0/модуль-decort_pfw.md create mode 100644 wiki/5.6.0/модуль-decort_rg.md create mode 100644 wiki/5.6.0/модуль-decort_user_info.md create mode 100644 wiki/5.6.0/модуль-decort_vins.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 667ca8c..e7f7b9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,15 @@ -# Список изменений в версии 5.5.0 +# Список изменений в версии 5.6.0 ## Обновления -### Модуль decort_account +### Глобальные | Идентификатор
задачи | Описание | | --- | --- | -| BANS-482
BANS-483
BANS-484
BANS-485
BANS-486 | Добавлен новый модуль **decort_account**, который позволяет выполнять следующие действия над аккаунтом:
• удалить в корзину
• удалить безвозвратно
• восстановить из корзины
• выключить/включить
• изменить права доступа
• изменить имя
• изменить квоты
• выключить/включить отправку пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам | +| BANS-111 | Реализовано информативное сообщение при ошибке SSL. | + +### Модуль decort_user_info + +| Идентификатор
задачи | Описание | +| --- | --- | +| BANS-487
BANS-489
BANS-490
BANS-491
BANS-493
BANS-494
BANS-499
BANS-500 | Добавлен новый модуль **decort_user_info**, который позволяет получить следующую информацию о пользователе:
• основная информация
• доступные аккаунты
• используемые и зарезервированные ресурсы
• аудиты
• доступные методы API
• поиск доступных объектов по строке | diff --git a/README.md b/README.md index bfb54e2..ed406bb 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ | Версия платформы | Версия модулей Ansible | | :---: | :---: | -| 4.0.0 | 5.5.x, 5.4.x, 5.3.x | +| 4.0.0 | 5.6.x, 5.5.x, 5.4.x, 5.3.x | | 3.8.8, 3.8.9 | 5.2.6 | | 3.8.7 | 5.2.5 | | 3.8.6 | 5.2.4 | diff --git a/library/decort_user_info.py b/library/decort_user_info.py new file mode 100644 index 0000000..6a5addc --- /dev/null +++ b/library/decort_user_info.py @@ -0,0 +1,342 @@ +#!/usr/bin/python + +# Copyright: ... +# ... + +DOCUMENTATION = r''' +--- +module: decort_user_info + +version_added: "2.16" + +description: See L(Module Documentation,https://repository.basistech.ru/BASIS/decort-ansible/wiki/Home). +''' + +# EXAMPLES = r''' +# ''' + +# RETURN = r''' +# ''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.decort_utils import DecortController + + +class DecortUserInfo(DecortController): + def __init__(self): + super().__init__(AnsibleModule(**self.amodule_init_args)) + self.check_amodule_args() + + @property + def amodule_init_args(self) -> dict: + return self.pack_amodule_init_args( + argument_spec=dict( + accounts=dict( + type='dict', + options=dict( + deleted=dict( + type='bool', + default=False, + ), + filter=dict( + type='dict', + options=dict( + rights=dict( + type='str', + choices=[ + e.value + for e in self.AccountUserRights + ], + ), + id=dict( + type='int', + ), + name=dict( + type='str', + ), + status=dict( + type='str', + choices=[ + e.value for e in self.AccountStatus + ], + ), + ), + ), + pagination=dict( + type='dict', + options=dict( + number=dict( + type='int', + default=1, + ), + size=dict( + type='int', + required=True, + ), + ), + ), + resource_consumption=dict( + type='bool', + default=False, + ), + sorting=dict( + type='dict', + options=dict( + asc=dict( + type='bool', + default=True, + ), + field=dict( + type='str', + choices=[ + e.value + for e in self.AccountSortableField + ], + required=True, + ), + ), + ), + ), + ), + api_methods=dict( + type='bool', + default=False, + ), + audits=dict( + type='dict', + options=dict( + filter=dict( + type='dict', + options=dict( + api_method=dict( + type='str', + ), + status_code=dict( + type='str', + ), + time=dict( + type='dict', + options=dict( + start=dict( + type='dict', + options=dict( + unix=dict( + type='int', + ), + date_time=dict( + type='str', + ), + ), + mutually_exclusive=[ + ('unix', 'date_time'), + ], + ), + end=dict( + type='dict', + options=dict( + unix=dict( + type='int', + ), + date_time=dict( + type='str', + ), + ), + mutually_exclusive=[ + ('unix', 'date_time'), + ], + ), + ), + ), + ), + ), + pagination=dict( + type='dict', + options=dict( + number=dict( + type='int', + default=1, + ), + size=dict( + type='int', + required=True, + ), + ), + ), + ), + ), + objects_search=dict( + type='str', + ), + resource_consumption=dict( + type='bool', + default=False, + ), + ), + supports_check_mode=True, + ) + + def check_amodule_args(self): + """ + Additional validation of Ansible Module arguments. + This validation cannot be implemented using + Ansible Argument spec. + """ + + check_error = False + + match self.aparams['audits']: + case {'filter': {'time': + {'start': {'date_time': str() as dt_str}} + } + }: + if self.dt_str_to_sec(dt_str=dt_str) is None: + self.message(self.MESSAGES.str_not_parsed(string=dt_str)) + check_error = True + match self.aparams['audits']: + case {'filter': {'time': + {'end': {'date_time': str() as dt_str}} + } + }: + if self.dt_str_to_sec(dt_str=dt_str) is None: + self.message(self.MESSAGES.str_not_parsed(string=dt_str)) + check_error = True + + if check_error: + self.exit(fail=True) + + @property + def mapped_accounts_args(self) -> None | dict: + """ + Map the module argument `accounts` to + arguments dictionary for the method + `DecortController.user_accounts`. + """ + + input_args = self.aparams['accounts'] + if not input_args: + return input_args + + mapped_args = {} + + mapped_args['deleted'] = input_args['deleted'] + + mapped_args['resource_consumption'] = ( + input_args['resource_consumption'] + ) + + input_args_filter = input_args['filter'] + if input_args_filter: + input_args_filter_rights = input_args_filter['rights'] + if input_args_filter_rights: + mapped_args['account_user_rights'] = ( + self.AccountUserRights(input_args_filter_rights) + ) + + mapped_args['account_id'] = input_args_filter['id'] + + mapped_args['account_name'] = input_args_filter['name'] + + input_args_filter_status = input_args_filter['status'] + if input_args_filter_status: + mapped_args['account_status'] = ( + self.AccountStatus(input_args_filter_status) + ) + + input_args_pagination = input_args['pagination'] + if input_args_pagination: + mapped_args['page_number'] = input_args_pagination['number'] + mapped_args['page_size'] = input_args_pagination['size'] + + input_args_sorting = input_args['sorting'] + if input_args_sorting: + mapped_args['sort_by_asc'] = input_args_sorting['asc'] + + input_args_sorting_field = input_args_sorting['field'] + if input_args_sorting_field: + mapped_args['sort_by_field'] = ( + self.AccountSortableField(input_args_sorting_field) + ) + + return mapped_args + + @property + def mapped_audits_args(self): + """ + Map the module argument `audits` to + arguments dictionary for the method + `DecortController.user_audits`. + """ + + input_args = self.aparams['audits'] + if not input_args: + return input_args + + mapped_args = {} + + input_args_filter = input_args['filter'] + if input_args_filter: + mapped_args['api_method'] = input_args_filter['api_method'] + mapped_args['http_status_code'] = input_args_filter['status_code'] + + match input_args_filter['time']: + case {'start': {'unix': int() as start_unix_time}}: + mapped_args['start_unix_time'] = start_unix_time + case {'start': {'date_time': str() as start_dt_str}}: + mapped_args['start_unix_time'] = self.dt_str_to_sec( + dt_str=start_dt_str + ) + match input_args_filter['time']: + case {'end': {'unix': int() as end_unix_time}}: + mapped_args['end_unix_time'] = end_unix_time + case {'end': {'date_time': str() as end_dt_str}}: + mapped_args['end_unix_time'] = self.dt_str_to_sec( + dt_str=end_dt_str + ) + + input_args_pagination = input_args['pagination'] + if input_args_pagination: + mapped_args['page_number'] = input_args_pagination['number'] + mapped_args['page_size'] = input_args_pagination['size'] + + return mapped_args + + def run(self): + self.get_info() + self.exit() + + def get_info(self): + self.facts = self.user_whoami() + self.id = self.facts['name'] + + user_get = self.user_get(id=self.id) + for key in ['emailaddresses', 'data']: + self.facts[key] = user_get[key] + + if self.aparams['accounts']: + self.facts['accounts'] = self.user_accounts( + **self.mapped_accounts_args, + ) + + if self.aparams['resource_consumption']: + self.facts.update(self.user_resource_consumption()) + + if self.aparams['audits']: + self.facts['audits'] = self.user_audits(**self.mapped_audits_args) + + if self.aparams['api_methods']: + self.facts['api_methods'] = self.user_api_methods(id=self.id) + + + search_string = self.aparams['objects_search'] + if search_string: + self.facts['objects_search'] = self.user_objects_search( + search_string=search_string, + ) + + +def main(): + DecortUserInfo().run() + + +if __name__ == '__main__': + main() diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index 12ea26a..3e9f346 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -28,15 +28,19 @@ Requirements: - DECORT cloud platform version 3.8.6 or higher """ +from datetime import datetime +from enum import Enum import json -from typing import Callable, Iterable +import re +from typing import Any, Callable, Iterable +import time + import jwt import netaddr -import time import requests - from ansible.module_utils.basic import AnsibleModule, env_fallback + class DecortController(object): """DecortController is a utility class that holds target controller context and handles API requests formatting based on the requested authentication type. @@ -161,7 +165,38 @@ class DecortController(object): VM_RESIZE_DOWN = 1 VM_RESIZE_UP = 2 + class AccountStatus(Enum): + CONFIRMED = 'CONFIRMED' + DELETED = 'DELETED' + DESTROYED = 'DESTROYED' + DESTROYING = 'DESTROYING' + DISABLED = 'DISABLED' + + class AccountSortableField(Enum): + createdTime = 'createdTime' + deletedTime = 'deletedTime' + id = 'id' + name = 'name' + status = 'status' + updatedTime = 'updatedTime' + + class AccountUserRights(Enum): + R = 'R' + RCX = 'RCX' + ARCXDU = 'ARCXDU' + CXDRAU = 'CXDRAU' + class MESSAGES: + @staticmethod + def ssl_error(url: None | str = None): + url_text = f' while connecting to {url}' if url else '' + return ( + f'An SSL error occurred{url_text}.' + f' If your platform is using a self-signed' + f' SSL certificate, see description for' + f' parameter `verify_ssl` in the modules docs.' + ) + @staticmethod def obj_not_found(obj: str, id: None | int = None) -> str: with_id = f' with ID={id}' if id else '' @@ -251,6 +286,10 @@ class DecortController(object): f' for the {obj} with ID={id}.' ) + @staticmethod + def str_not_parsed(string: str): + return f'The string "{string}" cannot be parsed.' + @staticmethod def method_in_check_mode(method_name: str, method_args: tuple, method_kwargs: dict) -> str: @@ -408,8 +447,36 @@ class DecortController(object): new_f.__name__ = orig_f.__name__ return new_f + @staticmethod + def dt_str_to_sec(dt_str) -> None | int: + """ + Convert the datetime string to the Unix-time int. + The format of `dt_str`: `yyyymmddhhmmss` with the ability + to use any delimiter between digit groups (for example: + `yyyy-mm-dd hh:mm:ss`). + """ + + re_pattern = re.compile( + r'^(?P\d{4}).?(?P\d{2})' + r'.?(?P\d{2}).?(?P\d{2})' + r'.?(?P\d{2}).?(?P\d{2})$' + ) + + re_match = re_pattern.match(dt_str) + if not re_match: + return + + datetime_args = {k: int(v) for k, v in re_match.groupdict().items()} + + return int(datetime(**datetime_args).timestamp()) + @staticmethod def sec_to_dt_str(sec: int, str_format: str = '%Y-%m-%d_%H-%M-%S') -> str: + """ + Convert the Unix-time int to the datetime string of the format + from `str_format`. + """ + if sec: return time.strftime(str_format, time.gmtime(sec)) return '' @@ -556,6 +623,9 @@ class DecortController(object): # catch requests.exceptions.ConnectionError to handle incorrect oauth2_url case try: token_get_resp = requests.post(token_get_url, data=req_data, verify=self.verify_ssl) + except requests.exceptions.SSLError: + self.message(self.MESSAGES.ssl_error(url=token_get_url)) + self.exit(fail=True) except requests.exceptions.ConnectionError as errco: self.result['failed'] = True self.result['msg'] = "Failed to connect to '{}' to obtain JWT access token: {}".format(token_get_url, errco) @@ -620,6 +690,9 @@ class DecortController(object): try: api_resp = requests.post(req_url, headers=req_header, verify=self.verify_ssl) + except requests.exceptions.SSLError: + self.message(self.MESSAGES.ssl_error(url=req_url)) + self.exit(fail=True) except requests.exceptions.ConnectionError: self.result['failed'] = True self.result['msg'] = "Failed to connect to '{}' while validating JWT".format(req_url) @@ -665,6 +738,9 @@ class DecortController(object): try: api_resp = requests.post(req_url, data=req_data, verify=self.verify_ssl) + except requests.exceptions.SSLError: + self.message(self.MESSAGES.ssl_error(url=req_url)) + self.exit(fail=True) except requests.exceptions.ConnectionError: self.result['failed'] = True self.result['msg'] = "Failed to connect to '{}' while validating legacy user".format(req_url) @@ -746,6 +822,9 @@ class DecortController(object): params=arg_params, headers=http_headers, verify=self.verify_ssl) + except requests.exceptions.SSLError: + self.message(self.MESSAGES.ssl_error(url=req_url)) + self.exit(fail=True) except requests.exceptions.ConnectionError: self.result['failed'] = True self.result['msg'] = "Failed to connect to '{}' when calling DECORT API.".format(api_resp.url) @@ -784,6 +863,193 @@ class DecortController(object): self.amodule.fail_json(**self.result) return None + @waypoint + def user_whoami(self) -> dict: + """ + Implementation of functionality of the API method + `/system/usermanager/whoami`. + """ + + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/system/usermanager/whoami', + arg_params={}, + ) + + return api_resp.json() + + @waypoint + def user_get(self, id: str) -> dict: + """ + Implementation of functionality of the API method + `/cloudapi/user/get`. + """ + + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/cloudapi/user/get', + arg_params={ + 'username': id, + }, + ) + + return api_resp.json() + + @waypoint + def user_accounts( + self, + account_id: None | int = None, + account_name: None | str = None, + account_status: None | AccountStatus = None, + account_user_rights: None | AccountUserRights = None, + deleted: bool = False, + page_number: int = 1, + page_size: None | int = None, + resource_consumption: bool = False, + sort_by_asc=True, + sort_by_field: None | AccountSortableField = None, + ) -> list[dict]: + """ + Implementation of the functionality of API methods + `/cloudapi/account/list`, + `/cloudapi/account/listDeleted` and + `/cloudapi/account/listResourceConsumption`. + """ + + sort_by = None + if sort_by_field: + sort_by_prefix = '+' if sort_by_asc else '-' + sort_by = f'{sort_by_prefix}{sort_by_field.value}' + + api_params = { + 'by_id': account_id, + 'name': account_name, + 'acl': account_user_rights.value if account_user_rights else None, + 'page': page_number if page_size else None, + 'size': page_size, + 'sortBy': sort_by, + 'status': account_status.value if account_status else None, + } + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name={ + False: '/restmachine/cloudapi/account/list', + True: '/restmachine/cloudapi/account/listDeleted', + }[deleted], + arg_params=api_params, + ) + + accounts = api_resp.json()['data'] + + if resource_consumption and not deleted: + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name=( + '/restmachine/cloudapi/account/listResourceConsumption' + ), + arg_params={}, + ) + accounts_rc_list = api_resp.json()['data'] + accounts_rc_dict = {a['id']: a for a in accounts_rc_list} + for a in accounts: + a_id = a['id'] + a['resource_consumed'] = accounts_rc_dict[a_id]['Consumed'] + a['resource_reserved'] = accounts_rc_dict[a_id]['Reserved'] + + for a in accounts: + a['createdTime_readable'] = self.sec_to_dt_str(a['createdTime']) + a['deletedTime_readable'] = self.sec_to_dt_str(a['deletedTime']) + a['updatedTime_readable'] = self.sec_to_dt_str(a['updatedTime']) + + return accounts + + @waypoint + def user_resource_consumption(self) -> dict[str, dict]: + """ + Implementation of the functionality of API method + `/cloudapi/user/getResourceConsumption`. + """ + + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/cloudapi/user/getResourceConsumption', + arg_params={}, + ) + api_resp_json = api_resp.json() + + return { + 'resource_consumed': api_resp_json['Consumed'], + 'resource_reserved': api_resp_json['Reserved'], + } + + @waypoint + def user_audits(self, + api_method: None | str = None, + http_status_code: None | int = None, + start_unix_time: None | int = None, + end_unix_time: None | int = None, + page_number: int = 1, + page_size: None | int = None) -> dict[str, Any]: + """ + Implementation of the functionality of API method + `/cloudapi/user/getAudit`. + """ + + api_params = { + 'call': api_method, + 'statuscode': http_status_code, + 'timestampAt': start_unix_time, + 'timestampTo': end_unix_time, + 'page': page_number if page_size else None, + 'size': page_size, + } + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/cloudapi/user/getAudit', + arg_params=api_params, + ) + + audits = api_resp.json()['data'] + + for a in audits: + a['Time_readable'] = self.sec_to_dt_str(a['Time']) + + return audits + + @waypoint + def user_api_methods(self, id: str) -> dict: + """ + Implementation of the functionality of API method + `/cloudapi/user/apiList`. + """ + + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/cloudapi/user/apiList', + arg_params={ + 'userId': id + }, + ) + + return api_resp.json() + + @waypoint + def user_objects_search(self, search_string: str) -> list[dict]: + """ + Implementation of the functionality of API method + `/cloudapi/user/search`. + """ + + api_resp = self.decort_api_call( + arg_req_function=requests.post, + arg_api_name='/restmachine/cloudapi/user/search', + arg_params={ + 'text': search_string, + }, + ) + + return api_resp.json() + ################################### # Compute and KVM VM resource manipulation methods ################################### diff --git a/wiki/5.6.0/Home.md b/wiki/5.6.0/Home.md new file mode 100644 index 0000000..2835851 --- /dev/null +++ b/wiki/5.6.0/Home.md @@ -0,0 +1,23 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью app_id и app_secret](./введение.md#пример-авторизации-с-помощью-app_id-и-app_secret) + - [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token) +1. Ansible модули DECORT: + - [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными машинами + - [Модуль decort_osimage](./модуль-decort_osimage.md) - управление образами + - [Модуль decort_disk](./модуль-decort_disk.md) - управление дисками + - [Модуль decort_pfw](./модуль-decort_pfw.md) - управление правилами переадресации портов + - [Модуль decort_rg](./модуль-decort_rg.md) - управление ресурсными группами + - [Модуль decort_vins](./модуль-decort_vins.md) - управление внутренними сетями + - [Модуль decort_jwt](./модуль-decort_jwt.md) - получение авторизационного токена + - [Модуль decort_bservice](./модуль-decort_bservice.md) - управление базовыми службами + - [Модуль decort_group](./модуль-decort_group.md)- управление группами базовой службы + - [Модуль decort_k8s](./модуль-decort_k8s.md) - управление кластерами Kubernetes + - [Модуль decort_lb](./модуль-decort_lb.md) - управление балансировщиками нагрузки + - [Модуль decort_account_info](./модуль-decort_account_info.md) - получение информации об аккаунте + - [Модуль decort_account](./модуль-decort_account.md) - управление аккаунтами + - [Модуль decort_user_info](./модуль-decort_user_info.md) - получение информации о пользователе \ No newline at end of file diff --git a/wiki/5.6.0/введение.md b/wiki/5.6.0/введение.md new file mode 100644 index 0000000..d7b4129 --- /dev/null +++ b/wiki/5.6.0/введение.md @@ -0,0 +1,182 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 2.16.5 or higher +- Python 3.10.12 or higher +- PyJWT 1.7.1 Python module or higher +- requests Python module +- netaddr Python module +- DECORT cloud platform version 4.0.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо: +- либо разместить директории **library** и **module_utils** в одной директории с плейбуками +- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например: +``` +[defaults] +library=./library +module_utils=./module_utils +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для подключения к контроллеру + облачной платформы DECORT в режиме authenticator: oauth2. + Данный параметр является обязательным для указанного режима. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, который используется для подключения к + контроллеру облачной платформы DECORT в режиме + authenticator: oauth2. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно в + playbook. Если параметр не задан в playbook, то модуль будет + использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
oauth2 +
jwt +
+ Режим аутентификации при подключении к контроллеру облачной платформы + DECORT. Обязательный параметр. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режиме + authenticator: oauth2. Данный параметр является + обязательным для указанного режима. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью app_id и app_secret + +``` +- name: Example + hosts: localhost + tasks: + - name: Auth with app_id and app_secret + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: oauth2 + controller_url: "{{ controller_url }}" + oauth2_url: "{{ oauth2_url }}" +``` + +### Пример авторизации с помощью JSON Web Token + +``` +- name: Example + hosts: localhost + tasks: + - name: Auth with JWT + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + authenticator: jwt + controller_url: "{{ controller_url }}" + jwt: "{{ jwt }}" +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_account.md b/wiki/5.6.0/модуль-decort_account.md new file mode 100644 index 0000000..11a3656 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_account.md @@ -0,0 +1,939 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + access_emails + + + (bool) + + Выключение/включение отправки пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам. +
+ + acl + + + (dict) + + Целевые права доступа. +
+ mode + + (str) +
Значения: +
match +
revoke +
update +
Default: update +
+ Режим изменения прав доступа для указанных пользователей. +
match - привести в соответствие для указанных + пользователей, удалить предоставленные для других. +
revoke - отозвать для указанных пользователей, + если предоставлены. +
update - привести в соответствие для указанных + пользователей, оставить без изменения предоставленные для + других. +
+ users + + (list) + + Список словарей, описывающих права доступа пользователей. +
Обязательный параметр. +
+ rights + + (str) +
Значения: +
R +
RCX +
ARCXDU +
Default: R +
+ Права доступа. +
При mode: revoke не используется. +
При mode: match и mode: update + права ARCXDU считаются соответствующими + правам CXDRAU. +
+ id + + (str) + + Идентификатор пользователя. +
Обязательный параметр. +
+ id + + (int) + + Идентификатор целевого аккаунта. +
Обязательный параметр, если не задан параметр + name. +
+ + name + + + (str) + + Имя целевого аккаунта. +
Может быть альтернативой параметру id, + за исключением случая, когда необходимо получить + информацию о безвозвратно удалённом объекте. +
Если задан совместно с параметром id, + то используется для переименования (целевое имя). +
+ + quotas + + + (dict) + + Целевые квоты. +
+ cpu + + (int) + + Количество виртуальных процессоров. +
-1 - удалить квоту. +
+ disks_size + + (int) + + Объём дисков в ГБ. +
-1 - удалить квоту. +
+ ext_traffic + + (int) + + Объём трафика внешних сетей. +
-1 - удалить квоту. +
+ gpu + + (int) + + Количество графических процессоров. +
-1 - удалить квоту. +
+ public_ip + + (int) + + Количество внешних IP-адресов. +
-1 - удалить квоту. +
+ ram + + (int) + + Объём оперативной памяти в МБ. +
-1 - удалить квоту. +
+ + state + + + (str) +
Значения: +
absent +
absent_permanently +
confirmed +
disabled +
present +
Default: present +
+ Целевое состояние. +
absent - удалён в корзину, безвозвратно удалён + или не существует. Если существует и не удалён, то будет удалён + в корзину. +
absent_permanently - безвозвратно удалён или + не существует. Если существует и не удалён или удалён в корзину, + то будет безвозвратно удалён. +
При значениях absent и absent_permanently + использование других параметров модуля, вызывающих изменение объекта, + не допускается. +
confirmed - включён. Если выключен, то будет включён. + Если удалён в корзину, то будет восстановлен из корзины. +
disabled - выключен. Если включён, то будет выключен. + Если удалён в корзину, то будет восстановлен из корзины и выключен. +
present - существует и не удалён. Если удалён в + корзину, то будет восстановлен из корзины. +
+ +## Возвращаемые значения + +Модуль **decort_account** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ acl + + list + + Список словарей, описывающих доступы пользователей. +
+ canBeDeleted + + bool + + Может ли быть удалён. +
+ right + + str + + Права. +
+ status + + str + + Статус. +
+ type + + str + + Тип. +
+ userGroupId + + str + + Идентификатор пользователя или группы пользователей. +
+ company + + str + + Название компании. +
+ companyurl + + str + + URL компании. +
+ computeFeatures + + list + + Список дополнительных возможностей гипервизора, доступных ВМ. +
+ computes_amount + + dict + + Количество ВМ по состоянию. +
+ started + + int + + Количество запущенных ВМ. +
+ stopped + + int + + Количество остановленных ВМ. +
+ cpu_allocation_parameter + + str + + Режим выделения ЦП. +
+ cpu_allocation_ratio + + str + + Коэффициент для режима выделения ЦП. +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deactivationTime + + int + + Unix-время выключения. +
+ deactivationTime_readable + + str + + Дата и время выключения. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ displayname + + str + + Отображаемое имя. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ resourceLimits + + dict + + Квоты на ресурсы. +
+ CU_C + + int + + Количество виртуальных процессоров. +
+ CU_D + + int + + Объём диска в ГБ. +
+ CU_DM + + int + + Объём дисков в ГБ. +
+ CU_I + + int + + Количество внешних IP-адресов. +
+ CU_M + + float + + Объём оперативной памяти в МБ. +
+ CU_NP + + int + + Объём трафика внешних сетей. +
+ gpu_units + + int + + Количество графических процессоров. +
+ sendAccessEmails + + bool + + Отправка пользователям на эл. почту уведомлений о предоставлении доступа. +
+ status + + str + + Статус. +
+ uniqPools + + list + + Список доступных пулов СХД. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ vins + + list + + Список идентификаторов внутренних сетей на уровне аккаунта. +
+ vinses_amount + + int + + Количество внутренних сетей. +
+ +## Примеры использования + +### Удалить + +#### В корзину +``` +- 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 +``` diff --git a/wiki/5.6.0/модуль-decort_account_info.md b/wiki/5.6.0/модуль-decort_account_info.md new file mode 100644 index 0000000..80d775b --- /dev/null +++ b/wiki/5.6.0/модуль-decort_account_info.md @@ -0,0 +1,3831 @@ +# Модуль decort_account_info +## Обзор модуля + +Модуль **decort_account_info** предназначен для получения следующей информации об аккаунте: +- **основная информация** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-об-аккаунте)) +- **используемые и зарезервированные ресурсы** (см. [параметр resource_consumption](#resource_consumption), [возвращаемые значения](#используемые-и-зарезервированные-ресурсы) и [примеры](#получение-информации-об-используемых-и-зарезервированных-ресурсах-аккаунта)) +- **ресурсные группы** (см. [параметр resource_groups](#resource_groups), [возвращаемые значения](#ресурсные-группы) и [примеры](#получение-информации-о-ресурсных-группах)) +- **виртуальные машины** (см. [параметр computes](#computes), [возвращаемые значения](#виртуальные-машины) и [примеры](#получение-информации-о-виртуальных-машинах)) +- **внутренние сети** (см. [параметр vinses](#vinses), [возвращаемые значения](#внутренние-сети) и [примеры](#получение-информации-о-внутренних-сетях)) +- **диски** (см. [параметр disks](#disks), [возвращаемые значения](#диски) и [примеры](#получение-информации-о-дисках)) +- **образы** (см. [параметр images](#param_images), [возвращаемые значения](#образы) и [примеры](#получение-информации-об-образах)) +- **группы с плавающим IP-адресом** (см. [параметр flip_groups](#flip_groups), [возвращаемые значения](#группы-с-плавающим-ip-адресом) и [примеры](#получение-информации-о-группах-с-плавающим-ip-адресом)) +- **аудиты** (см. [параметр audits](#audits), [возвращаемые значения](#аудиты) и [примеры](#получение-информации-об-аудитах)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_account_info** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + audits + + + (bool) +
Default: false +
+ Получить информацию об аудитах. +
+ + computes + + + (dict) + + Получить информацию о виртуальных машинах, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ ext_net_id + + (int) + + По идентификатору внешней сети. +
+ ext_net_name + + (str) + + По имени внешней сети. +
+ id + + (int) + + По идентификатору. +
+ ip + + (str) + + По IP-адресу. +
+ name + + (str) + + По имени. +
+ rg_id + + (int) + + По идентификатору ресурсной группы. +
+ rg_name + + (str) + + По имени ресурсной группы. +
+ tech_status + + (str) +
Значения: +
BACKUP_RUNNING +
BACKUP_STOPPED +
DOWN +
MIGRATING +
PAUSED +
PAUSING +
SCHEDULED +
STARTED +
STARTING +
STOPPED +
STOPPING +
+ По техническому статусу. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
cpus +
createdBy +
createdTime +
deletedBy +
deletedTime +
id +
name +
ram +
registered +
rgId +
rgName +
status +
techStatus +
totalDisksSize +
updatedBy +
updatedTime +
userManaged +
vinsConnected +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + disks + + + (dict) + + Получить информацию о неподключённых дисках, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ id + + (int) + + По идентификатору. +
+ name + + (str) + + По имени. +
+ size + + (int) + + По объёму. +
+ type + + (str) +
Значения: +
B +
D +
+ По типу. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
id +
name +
pool +
sepId +
shareable +
sizeMax +
type +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + flip_groups + + + (dict) + + Получить информацию о группах с плавающим IP-адресом, к которым имеет + доступ пользователь, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ ext_net_id + + (int) + + По идентификатору внешней сети. +
+ id + + (int) + + По идентификатору. +
+ ip + + (str) + + По IP-адресу. +
+ name + + (str) + + По имени. +
+ vins_id + + (int) + + По идентификатору внутренней сети. +
+ vins_name + + (str) + + По имени внутренней сети. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ id + + (int) + + Идентификатор целевого аккаунта. +
Обязательный параметр, если не задан параметр + name. +
+ + images + + + (dict) + + Получить информацию об образах, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ deleted + + (bool) +
Default: false +
+ Включение в вывод удалённых объектов. +
+ filter + + (dict) + + Фильтр. +
+ id + + (int) + + По идентификатору. +
+ name + + (str) + + По имени. +
+ type + + (str) +
Значения: +
cdrom +
linux +
other +
virtual +
windows +
+ По типу. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
UNCPath +
desc +
id +
name +
public +
size +
status +
type +
username +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ name + + (str) + + Имя целевого аккаунта. +
Может быть альтернативой параметру id, + за исключением случая, когда необходимо получить + информацию о безвозвратно удалённом объекте. +
+ + resource_groups + + + (dict) + + Получить информацию о ресурсных группах, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ id + + (int) + + По идентификатору. +
+ name + + (str) + + По имени. +
+ status + + (str) +
Значения: +
CREATED +
DELETED +
DELETING +
DESTROYED +
DESTROYING +
DISABLED +
DISABLING +
ENABLED +
ENABLING +
MODELED +
RESTORING +
+ По статусу. +
+ vins_id + + (int) + + По идентификатору внутренней сети. +
+ vm_id + + (int) + + По идентификатору виртуальной машины. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
createdBy +
createdTime +
deletedBy +
deletedTime +
id +
milestones +
name +
status +
updatedBy +
updatedTime +
vinses +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + resource_consumption + + + (bool) +
Default: false +
+ Получить информацию об используемых и зарезервированных ресурсах. +
+ + vinses + + + (dict) + + Получить информацию о внутренних сетях, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ ext_ip + + (int) + + По внешнему IP-адресу. +
+ id + + (int) + + По идентификатору. +
+ name + + (str) + + По имени. +
+ rg_id + + (int) + + По идентификатору ресурсной группы. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
computes +
createdBy +
createdTime +
deletedBy +
deletedTime +
externalIP +
extnetId +
freeIPs +
id +
name +
network +
priVnfDevId +
rgId +
rgName +
status +
updatedBy +
updatedTime +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_account_info** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ acl + + list + + Список словарей, описывающих доступы пользователей. +
+ canBeDeleted + + bool + + Может ли быть удалён. +
+ right + + str + + Права. +
+ status + + str + + Статус. +
+ type + + str + + Тип. +
+ userGroupId + + str + + Идентификатор пользователя или группы пользователей. +
+ company + + str + + Название компании. +
+ companyurl + + str + + URL компании. +
+ computeFeatures + + list + + Список дополнительных возможностей гипервизора, доступных ВМ. +
+ computes_amount + + dict + + Количество ВМ по состоянию. +
+ started + + int + + Количество запущенных ВМ. +
+ stopped + + int + + Количество остановленных ВМ. +
+ cpu_allocation_parameter + + str + + Режим выделения ЦП. +
+ cpu_allocation_ratio + + str + + Коэффициент для режима выделения ЦП. +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deactivationTime + + int + + Unix-время выключения. +
+ deactivationTime_readable + + str + + Дата и время выключения. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ displayname + + str + + Отображаемое имя. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ resourceLimits + + dict + + Квоты на ресурсы. +
+ CU_C + + int + + Количество виртуальных процессоров. +
+ CU_D + + int + + Объём диска в ГБ. +
+ CU_DM + + int + + Объём дисков в ГБ. +
+ CU_I + + int + + Количество внешних IP-адресов. +
+ CU_M + + float + + Объём оперативной памяти в МБ. +
+ CU_NP + + int + + Объём трафика внешних сетей. +
+ gpu_units + + int + + Количество графических процессоров. +
+ sendAccessEmails + + bool + + Отправка пользователям на эл. почту уведомлений о предоставлении доступа. +
+ status + + str + + Статус. +
+ uniqPools + + list + + Список доступных пулов СХД. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ vins + + list + + Список идентификаторов внутренних сетей на уровне аккаунта. +
+ vinses_amount + + int + + Количество внутренних сетей. +
+ +### Используемые и зарезервированные ресурсы + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ + resource_consumed + + + dict + + Используемые ресурсы. +
+ cpu + + int + + Количество виртуальных процессоров. +
+ disksize + + int + + Объём дисков в ГБ. +
+ extips + + int + + Количество внешних IP-адресов. +
+ exttraffic + + int + + Объём трафика внешних сетей. +
+ gpu + + int + + Количество графических процессоров. +
+ ram + + int + + Объём оперативной памяти в МБ. +
+ seps + + dict + + Объём дисков по пулам СХД. +
+ (идентификатор СХД) + + dict + + Пулы СХД. +
+ (название пула) + + dict + + Словарь пула СХД. +
+ disksize + + int + + Объём дисков в ГБ. +
+ resource_reserved + + dict + + Зарезервированные ресурсы. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ +### Ресурсные группы + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ resource_groups + + list + + Список словарей, описывающих ресурсные группы. +
+ Computes + + dict + + Количество ВМ по состоянию. +
+ Started + + int + + Количество запущенных ВМ. +
+ Stopped + + int + + Количество остановленных ВМ. +
+ Resources + + dict + + Используемые и зарезервированные ресурсы. +
+ Consumed + + dict + + Используемые ресурсы. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ Limits + + dict + + Квоты на ресурсы. +
+ cpu + + int + + Количество виртуальных процессоров. +
+ disksize + + int + + Объём дисков в ГБ. +
+ disksizemax + + int + + Объём диска в ГБ. +
+ extips + + int + + Количество внешних IP-адресов. +
+ exttraffic + + int + + Объём трафика внешних сетей. +
+ gpu + + int + + Количество графических процессоров. +
+ ram + + float + + Объём оперативной памяти в МБ. +
+ Reserved + + dict + + Зарезервированные ресурсы. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ id + + int + + Идентификатор. +
+ milestones + + int + + Количество событий. +
+ name + + str + + Имя. +
+ status + + str + + Статус. +
+ updatedBy + + str + + Идентификатор пользователя, который обновил. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ vinses + + int + + Количество внутренних сетей. +
+ +### Виртуальные машины + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ computes + + list + + Список словарей, описывающих виртуальные машины. +
+ accountId + + int + + Идентификатор аккаунта. +
+ accountName + + str + + Имя аккаунта. +
+ cpus + + int + + Количество виртуальных процессоров. +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ ram + + int + + Объём оперативной памяти в МБ. +
+ registered + + bool + + Зарегистрирована ли ВМ как используемая. +
+ rgId + + int + + Идентификатор ресурсной группы. +
+ rgName + + str + + Имя ресурсной группы. +
+ status + + str + + Статус. +
+ techStatus + + str + + Технический статус. +
+ totalDisksSize + + int + + Общий объём дисков. +
+ updatedBy + + str + + Идентификатор пользователя, который обновил. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ vinsConnected + + int + + Количество подключенных внутренних сетей. +
+ +### Внутренние сети + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ vinses + + list + + Список словарей, описывающих внутренние сети. +
+ accountId + + int + + Идентификатор аккаунта. +
+ accountName + + str + + Имя аккаунта. +
+ computes + + int + + Количество виртуальных машин. +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ externalIP + + str + + Внешний IP-адрес. +
+ extnetId + + int + + Идентификатор внешней сети. +
+ freeIPs + + int + + Количество свободных IP-адресов. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ network + + str + + Адрес сети. +
+ priVnfDevId + + int + + Идентификатор виртуального маршрутизатора. +
+ rgId + + int + + Идентификатор ресурсной группы. +
+ rgName + + str + + Имя ресурсной группы. +
+ status + + str + + Статус. +
+ updatedBy + + str + + Идентификатор пользователя, который обновил. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ +### Диски + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Список словарей, описывающих диски. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ pool + + str + + Пул СХД. +
+ sepId + + int + + Идентификатор СХД. +
+ shareable + + bool + + Общий доступ. +
+ sizeMax + + int + + Объём. +
+ type + + str + + Тип. +
+ +### Образы + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ images + + list + + Список словарей, описывающих образы. +
+ UNCPath + + str + + Путь к файлу. +
+ desc + + str + + Описание. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ public + + bool + + Общий доступ. +
+ size + + int + + Размер в ГБ. +
+ status + + str + + Статус. +
+ type + + str + + Тип. +
+ username + + str + + Имя пользователя. +
+ +### Группы с плавающим IP-адресом + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ flip_groups + + list + + Список словарей, описывающих группы с плавающим IP-адресом. +
+ clientType + + str + + Тип клиентов. +
+ connType + + str + + Тип соединения. +
+ createdBy + + str + + Идентификатор пользователя, который создал. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ desc + + str + + Описание. +
+ gid + + int + + Идентификатор ЦОД. +
+ id + + int + + Идентификатор. +
+ ip + + str + + IP-адрес. +
+ milestones + + int + + Количество событий. +
+ name + + str + + Имя. +
+ netId + + int + + Идентификатор сети. +
+ netType + + str + + Тип сети. +
+ netmask + + int + + Маска подсети (длина префикса). +
+ status + + str + + Статус. +
+ updatedBy + + str + + Идентификатор пользователя, который обновил. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ +### Аудиты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ audits + + list + + Список словарей, описывающих аудиты. +
+ call + + str + + Метод API. +
+ responsetime + + float + + Время отклика в секундах. +
+ statuscode + + int + + Код ответа. +
+ timestamp + + float + + Unix-время. +
+ timestamp_readable + + str + + Дата и время. +
+ user + + str + + Идентификатор пользователя. +
+ +## Примеры использования + +### Получение основной информации об аккаунте + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic account info by ID + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic account info by name + decort_account_info: + # Параметры для авторизации упущены + name: "{{ account_name }}" +``` + +### Получение информации об используемых и зарезервированных ресурсах аккаунта +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with resource consumption + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + resource_consumption: true +``` + +### Получение информации о ресурсных группах + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with resource groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + resource_groups: {} +``` + +#### С фильтрацией по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with resource groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + resource_groups: + filter: + status: CREATED +``` + +#### С сортировкой по имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with resource groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + resource_groups: + sorting: + field: name +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with resource groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + resource_groups: + pagination: + size: 2 +``` + +### Получение информации о виртуальных машинах + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with computes + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + computes: {} +``` + +#### С фильтрацией по IP-адресу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with computes + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + computes: + filter: + ip: 192.168.1.2 +``` + +#### С сортировкой по имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with computes + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + computes: + sorting: + field: name +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with computes + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + computes: + pagination: + size: 2 +``` + +### Получение информации о внутренних сетях + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with vinses + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + vinses: {} +``` + +#### С фильтрацией по идентификатору ресурсной группы +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with vinses + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + vinses: + filter: + rg_id: "{{ rg_id }}" +``` + +#### С сортировкой по времени создания +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with vinses + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + vinses: + sorting: + field: createdTime +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with vinses + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + vinses: + pagination: + size: 2 +``` + +### Получение информации о дисках + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with disks + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + disks: {} +``` + +#### С фильтрацией по типу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with disks + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + disks: + filter: + type: D +``` + +#### С сортировкой по объёму +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with disks + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + disks: + sorting: + field: sizeMax +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with disks + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + disks: + pagination: + size: 2 +``` + +### Получение информации об образах + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with images + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + images: {} +``` + +#### С включение в вывод удаленных +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with images + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + images: + deleted: true +``` + +#### С фильтрацией по типу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with images + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + images: + filter: + type: linux +``` + +#### С сортировкой по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with images + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + images: + sorting: + field: status +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with images + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + images: + pagination: + size: 2 +``` + +### Получение информации о группах с плавающим IP-адресом + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with flip groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + flip_groups: {} +``` + +#### С фильтрацией по IP-адресу +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with flip groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + flip_groups: + filter: + ip: 192.168.1.5 +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with flip groups + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + flip_groups: + pagination: + size: 2 +``` + +### Получение информации об аудитах +``` +- name: Example + hosts: localhost + tasks: + - name: Get account info with audits + decort_account_info: + # Параметры для авторизации упущены + id: "{{ account_id }}" + audits: true +``` diff --git a/wiki/5.6.0/модуль-decort_bservice.md b/wiki/5.6.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_bservice.md @@ -0,0 +1,92 @@ +# Модуль decort_bservice + +## Обзор модуля decort_bservice + +Базовая служба (Basic Service) это несколько групп виртуальных серверов (compute), создаваемых и управляемых как единое целое. + +Все compute(s) в группе имеют одни и те же характеристики (cpu/ram/boot disk size/OS image + сетевые подключения). Для разных групп эти характеристики могут быть разными. + +Группы в составе Basic Service могут иметь отношения parent-child с другими группами. Наличие таких отношений определяет последовательность запуска групп ("сначала parents"). + +На основе ресурсов, предоставляемых и управляемых через Basic Service, могут создаваться другие сервисы. + +`Для взаимодействия с группами виртуальных серверов используется модуль decort_group.` + +Модуль decort_bservice предназначен для управления базовыми службами, в которых находятся группы виртуальных серверов. +Данный модуль позволяет: +- Создавать Basic Service +- Удалять Basic Service (безвозвратно). +- Включать/выключать Basic Service +- Запускать Basic Service +- Запрашивать информацию о Basic Service. + + +## Параметры модуля decort_bservice + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_bservice` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор (см. `account_id`), либо имя аккаунта. Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.| +|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.| +| authenticator | Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. | +|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная базовая служба. Данный параметр является обязательным.| +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`
Данный параметр является обязательным для указанного режима.
Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.
Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.| +|state | Значения: `absent`, `disabled`, `enabled`, `present`, `check`.
Default: `present`| Целевое состояние базовой службы. Значения `present` и `enabled` равнозначны.| +| started | (bool)
Default: `true` | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. | +| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. | +| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. | +| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. | +| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. | +| rg_name | (string) | Имя ресурсной группы базовой службы. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_bservice + +Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +|id | int | Уникальный целочисленный идентификатор базовой службы.| +|name | string | Имя базовой службы.| +| techStatus | string | Технический статус базовой службы. | +|state | string | Статус базовой службы.| +| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.| +| groups | list | Список словарей с информацией о группах базовой службы.| + + +## Пример использования модуля decort_bservice + +Данный пример создаёт базовую службу с именем databases. + +``` + - name: Create Basic Service + decort_bservice: + authenticator: jwt + controller_url: "{{ controller_url }}" + jwt: "{{ auth_token }}" + name: databases + rg_id: "{{ rg_id }}" + register: db_bservice +``` + +Данный пример удаляет базовую службу с названием databases. +``` + - name: Delete Basic Service + decort_bservice: + authenticator: jwt + controller_url: "{{ controller_url }}" + jwt: "{{ auth_token }}" + state: absent + name: databases + rg_id: "{{ rg_id }}" + register: db_bservice +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_disk.md b/wiki/5.6.0/модуль-decort_disk.md new file mode 100644 index 0000000..4cf625e --- /dev/null +++ b/wiki/5.6.0/модуль-decort_disk.md @@ -0,0 +1,177 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + + +Обратите внимание: + +- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины. +- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками); +- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm). + +## Параметры модуля decort_disk + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_disk` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| annotation | (string)
Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.| +|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.| +| authenticator | Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. | +|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный диск. Данный параметр является обязательным.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.| +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.| +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении диска, при значении `true` - диск удалится навсегда, а при `false` - попадёт в корзину. | +| place_with | (int) | Идентификатор образа диска, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.| +| pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. | +| reason | (string)
Default: `Managed by Ansible decort_disk` | Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. | +| sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.| +| shareable | (bool)
Default: `false` | Включение/отключение общего доступа к диску. +| size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.| +| state | (str)
Значения:
`present`
`absent`
Default: `present` | Целевое состояние диска. | +| type | (string)
Значения:
`B`
`D`
Default: `D` | Тип создаваемого диска. `B` - Boot/загрузочный, `D` - Data/с данными. | +| verify_ssl | (bool)
Default: `false` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| attached_to | int | Идентификатор виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то `attached_to: 0`| +| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.| +| id | int | Уникальный целочисленный идентификатор данного диска.| +| iotune | dict | Текущие ограничения ввода/вывода диска. | +| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.| +| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.| +|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.| +| size | int | Размер диска в ГБ.| +| state | string | Текущий статус диска. | + + +## Пример использования модуля decort_disk + +В данном примере создаётся диск размером 50ГБ (`size: 50`), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (`sep_id: 1`) в пуле "data01". + +``` +- name: Manage disk + decort_disk: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + name: "DataDisk01" + size: 50 + account_name: "MyAccount" + sep_id: 1 + iops: 2000 + annotation: "Disk example" + pool: data01 + register: my_data_disk01 +``` +В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода. + +``` +- name: Manage disk + decort_disk: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + name: "DataDisk01" + account_name: "MyAccount" + limitIO: + read_bytes_sec: 10000 + write_bytes_sec: 5000 + read_iops_sec и write_iops_sec + read_iops_sec: 2500 + write_iops_sec: 1000 + read_bytes_sec_max: 11000 + write_bytes_sec_max: 6000 + read_iops_sec_max: 3000 + write_iops_sec_max: 1500 + size_iops_sec: 1000 + register: my_data_disk01 + +- name: Manage disk + decort_disk: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + name: "DataDisk01" + account_name: "MyAccount" + limitIO: + total_bytes_sec: 15000 + total_iops_sec: 3500 + total_bytes_sec_max: 17000 + total_iops_sec_max: 4500 + size_iops_sec: 1000 + register: my_data_disk01 +``` + +В данном примере выполняется восстановление удаленного диска с id 111 из корзины. + +``` +- name: Manage disk + decort_disk: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + id: 111 + size: 10 + register: my_data_disk01 +``` + +В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk". + +``` +- name: Manage disk + decort_disk: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + id: 111 + name: "NewExampleDisk" + size: 10 + register: my_data_disk01 +``` + +Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией: + +``` +- name: Manage compute + decort_kvmvm: + << для краткости фрагмент опущен >> + data_disks: + - "{{ my_data_disk01.facts.id }}" + << для краткости фрагмент опущен >> +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_group.md b/wiki/5.6.0/модуль-decort_group.md new file mode 100644 index 0000000..46f651f --- /dev/null +++ b/wiki/5.6.0/модуль-decort_group.md @@ -0,0 +1,105 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен полный список параметров для модуля **decort_group**. + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. | +| count | (int) | Количество виртуальных машин. Обязательный параметр. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| name | (str) | Имя группы. Обязательный параметр. +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_group + +Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.
Ключи словаря:
• `id` (int) - идентификатор ВМ
• `ipAddresses` (list) - список IP-адресов ВМ
• `name` (str) - имя ВМ
• `osUsers` (list) - список словарей, содержащих учётные данные пользователей ОС ВМ по умолчанию; ключи: `login` (str) и `password` (str) | +| id | int | Идентификатор группы.| +| name | string | Имя группы.| +| rg_id | int | Идентификатор ресурсной группы. | +| state | string | Состояние группы. | +| techStatus | string | Технический статус группы. | + +## Пример использования модуля decort_group + +Данный пример создаёт группу с именем `test_group`. +``` +- hosts: localhost + tasks: + - name: Create BS group + decort_group: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + boot_disk: 10 + bservice_id: 1823 + controller_url: "https://ds1.digitalenergy.online" + count: 2 + cpu: 2 + image_id: 518 + name: test_group + networks: + - type: VINS + id: 1987 + oauth2_url: "https://sso.digitalenergy.online" + ram: 2 + verify_ssl: false + register: group_test +``` + +Данный пример удаляет группу с именем `test_group`. + +``` +- hosts: localhost + tasks: + - name: Delete BS group + decort_group: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + bservice_id: 1823 + controller_url: "https://ds1.digitalenergy.online" + name: test_group + oauth2_url: "https://sso.digitalenergy.online" + state: absent + verify_ssl: False + register: group_test +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_jwt.md b/wiki/5.6.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/wiki/5.6.0/модуль-decort_jwt.md @@ -0,0 +1,53 @@ +# Вспомогательный модуль для получения авторизационного JWT токена decort_jwt +## Обзор модуля decort_jwt + +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов, инициируемых в адрес контроллера облачной платформы. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). +## Параметры модуля decort_jwt + +Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_jwt**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_jwt` + + +|Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к авторизационному серверу. Данный параметр является обязательным. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к авторизационному серверу. Данный параметр является обязательным. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, у которого запрашивается JWT. Данный параметр является обязательным. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| validity | (int)
Default: `3600` | Срок действия JWT в секундах. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес авторизационного сервера, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_jwt + +При успешном выполнении модуль **decort_jwt** возвращает JWT-токен, который доступен по ключу `jwt` (str). + +## Пример использования модуля decort_jwt + +В данном примере сначала запрашивается JWT со сроком действия 1200 сек., а затем этот JWT используется для создания виртуальной машины в режиме авторизации `jwt` (подробнее о данном режиме см. в разделе «Примеры различных режимов авторизации»). +``` +- hosts: localhost + tasks: + - name: Obtain JWT with validity of 1200 sec from the OAuth2 provider + decort_jwt: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + validity: 1200 + register: my_token +``` +``` + - name: Create VM in JWT authorization mode + decort_kvmvm: + authenticator: jwt + jwt: "{{ my_token.jwt }}" + controller_url: "https://cloud.digitalenergy.online" + name: NewVM01 + cpu: 2 + ram: 4096 + <<<дальнейшие детали опущены>>> +``` +Обратите внимание, как используется JWT при создании новой ВМ (в предположении, что результат выполнения task для модуля **decort_jwt** был сохранен в переменной my_token): +``` + jwt: "{{ my_token.jwt }}" +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_k8s.md b/wiki/5.6.0/модуль-decort_k8s.md new file mode 100644 index 0000000..0decbad --- /dev/null +++ b/wiki/5.6.0/модуль-decort_k8s.md @@ -0,0 +1,108 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- отключить/включить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_k8s +Ниже приведен полный список параметров для модуля **decort_k8s**: + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. | +| description | (string)
Default: `Created by decort ansible module` | Описание кластера. | +| extnet_id | (int)
Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). | +| extnet_only | (bool)
Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. | +| getConfig | (bool)
Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. | +| ha_lb | (bool)
Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). | +| id | (int) | Идентификатор кластера Kubernetes. | +| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации. +| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. Обязательный параметр. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_count | (int)
Default: `1` | Количество Master-узлов. | +| master_cpu | (int)
Default: `2` | Количество виртуальных процессоров на Master-узле. | +| master_disk | (int)
Default: `10` | Объём загрузочного диска на Master-узле. | +| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. | +| master_ram | (int)
Default: `2048` | Объём оперативной памяти на Master-узле. | +| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. | +| name | (string) | Имя кластера Kubernetes. | +| network_plugin | (str)
Значения:
`flannel`
`calico`
`weavenet`
Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера. +| permanent | (bool)
Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). | +| rg_id | (int) | Идентификатор ресурсной группы. | +| rg_name | (str) | Имя ресурсной группы. | +| started | (bool)
Default: `true` | Автоматический запуск кластера после его создания. | +| state | (string)
Значения:
`present`
`absent`
`enabled`
`disabled`
`check`
Default: `present` | Целевое состояние кластера. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети. +| workers | (list) | Обязательный параметр. Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init
• `cpu` (int) (обязательный) - количество виртуальных процессоров на узле
• `disk` (int) (обязательный) - объём загрузочного диска на узле
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (обязательный) - количество узлов
• `pool` (str) (обязательный) - пул СХД, заданной ключом `sep_id`
• `ram` (int) (обязательный) - объём оперативной памяти на узле
• `sep_id` (int) (обязательный) - идентификатор СХД; если задать `null`, то используется СХД образа узла
• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` | + + +## Возвращаемые значения модуля decort_k8s + +Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| config | str | Kuber config кластера. +| id | int | Идентификатор кластера. | +| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.
Ключи словаря:
• `cpu` (int) - количество виртуальных процессоров
• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ
• `disk` (int) - объём загрузочного диска
• `id` (int) - идентификатор группы
• `name` (str) - имя группы
• `num` (int) - количество узлов
• `ram` (int) - объём оперативной памяти +| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.
Ключи словаря:
• `cpu` (int) - количество виртуальных процессоров
• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ
• `disk` (int) - объём загрузочного диска
• `id` (int) - идентификатор группы
• `labels` (list) - список строк с labels
• `name` (str) - имя группы
• `num` (int) - количество узлов
• `ram` (int) - объём оперативной памяти
• `taints` (list) - список строк с taints +| name | string | Имя кластера. | +| rg_id | int | Идентификатор ресурсной группы. | +| state | string | Статус кластера. | +| techStatus | string | Технический статус кластера. | +| vins_id | int | Идентификатор внутренней сети кластера. | + + +## Пример использования модуля decort_k8s + + +Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config. +``` + - name: Create a k8s cluster named cluster-test + decort_k8s: + authenticator: jwt + controller_url: "https://ds1.digitalenergy.online" + getConfig: true + jwt: "{{ token.jwt }}" + k8ci_id: 18 + name: cluster-test + rg_id: 125 + workers: + - cpu: 10 + disk: 10 + name: wg1 + num: 1 + pool: null + ram: 1024 + sep_id: null + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + pool: null + ram: 1024 + sep_id: null + register: k8s_cluster +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_kvmvm.md b/wiki/5.6.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..a6008f8 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_kvmvm.md @@ -0,0 +1,106 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- создать +- получить информацию +- остановить/приостановить/запустить +- подключить/отключить диски с данными +- подключить/отключить сети +- изменить + - объём загрузочного диска в большую сторону + - количество CPU + - объём ОЗУ + - тэги + - affinity метку + - affinity правила + - anti-affinity правила +- удалить (безвозвратно) + +## Параметры модуля decort_kvmvm + +Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_kvmvm**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_kvmvm` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`) +| account_id | (int) | Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.| +| account_name | (string) | Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_name` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется. | +| aff_rule | (list) | Список словарей, описывающих affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`) +| affinity_label | (str) | Метка affinity. +| annotation | (string) | Опциональное описание виртуальной машины. Этот параметр используется только при создании.| +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_ID`.| +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_SECRET`.| +| arch | (str)
Значения:
`X86_64`
`PPC64_LE`
Default: `X86_64` | Архитектура виртуальной машины. | +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ. | +| ci_user_data | (dict) | конфигурация для cloud-init +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. | +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину. При создании задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются. Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ. При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_JWT`. +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по `id`.| +| networks | (list) | Список словарей, описывающих сети для подключения к ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети. | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. +| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. | +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| sep_id | (int) | Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа. +| ssh_key | (string) | Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях. | +| ssh_key_user | (string) | Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`. Используется только при создании и игнорируется при других операциях. | +| state | (str)
Значения:
`present`
`absent`
`poweredon`
`poweredoff`
`halted`
`paused`
`check`
Default: `present` | Целевое состояние ВМ.
Значение `halted` - синоним к `poweredoff`. Значения `present` и `poweredon` равнозначны.
Значение `check` вызывает модуль в _read-only_ режиме и считывает характеристики существующей ВМ. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| arch | string | Архитектура ВМ. | +| cpu | int | Количество виртуальных процессоров. | +| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| name | string | Имя ВМ. | +| password | string | Пароль пользователя ОС по умолчанию. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | + +## Пример использования модуля decort_kvmvm + +В данном примере создается ВМ с именем MyFirstVM. +``` +- name: Сreate VM + decort_kvmvm: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://cloud.digitalenergy.online" + cpu: 2 + image_id: "{{ my_img.facts.id }}" + name: MyFirstVM + networks: + - type: VINS + id: "{{ my_vins.facts.id }}" + oauth2_url: "https://sso.digitalenergy.online" + ram: 4096 + rg_id: "{{ my_rg.facts.id }}" + register: my_vm +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_lb.md b/wiki/5.6.0/модуль-decort_lb.md new file mode 100644 index 0000000..543a8ac --- /dev/null +++ b/wiki/5.6.0/модуль-decort_lb.md @@ -0,0 +1,893 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- отключить/включить/запустить/перезапустить +- изменить конфигурации backend и frontend +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен полный список параметров для модуля **decort_lb**: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ annotation + + (str) +
Default: Managed by Ansible module decort_lb +
+ Описание балансировщика. +
+ app_id + + (str) + + Идентификатор приложения, использующийся для подключения к контроллеру + облачной платформы DECORT в режиме authenticator: oauth2. + Данный параметр является обязательным для указанного режима. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, который используется для подключения к + контроллеру облачной платформы DECORT в режиме + authenticator: oauth2. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно в + playbook. Если параметр не задан в playbook, то модуль будет + использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
oauth2 +
jwt +
+ Режим аутентификации при подключении к контроллеру облачной платформы + DECORT. Обязательный параметр. +
+ backends + + (list) + + Список словарей, описывающих конфигурации backend. +
+ algorithm + + (str) +
Значения: +
leastconn +
roundrobin +
static-rr +
Default: roundrobin +
+ Используемый алгоритм. +
+ + default_settings + + + (dict) + + Cловарь, описывающий параметры по умолчанию для backend-серверов. +
+ downinter + + (int) +
Default: 1000 +
+ Интервал в миллисекундах между двумя последовательными проверками + доступности сервера, который считается недоступным. +
+ fall + + (int) +
Default: 2 +
+ Количество последовательных неудачных проверок доступности, после + которых сервер, ранее считавшийся доступным, начинает считаться + недоступным и временно исключается из схемы балансировки. +
+ inter + + (int) +
Default: 5000 +
+ Интервал в миллисекундах между двумя последовательными проверками + доступности сервера, который считается доступным. +
+ maxconn + + (int) +
Default: 250 +
+ Лимит одновременных подключений к серверу. При достижении этого лимита + сервер временно исключается из схемы балансировки. +
+ maxqueue + + (int) +
Default: 256 +
+ Лимит соединений, ожидающих в очереди. Когда этот предел будет + достигнут, все последующие подключения будут перенаправлены + на другие серверы. +
+ rise + + (int) +
Default: 2 +
+ Количество проверок, которые должен пройти сервер, считавшийся + недоступным, чтобы начать считаться доступным и снова быть + включенным в схему балансировки. +
+ slowstart + + (int) +
Default: 60000 +
+ Интервал в миллисекундах с момента когда сервер начинает считаться + доступным, по истечении которого количество фактически разрешенных + подключений к этому серверу будет возвращено до 100% от + установленного лимита. +
+ weight + + (int) +
Default: 100 +
+ Вес сервера для использования в алгоритмах балансировки. +
+ name + + (str) + + Название backend. Обязательный параметр. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ ext_net_id + + (int) + + Идентификатор внешней сети. +
Может быть не задан, если задан vins_id - + в таком случае балансировщик будет подключён только к + внутренней сети. +
+ + frontends + + + (list) + + Список словарей, описывающих конфигурации frontend. +
+ backend + + (str) + + Название используемого backend. Обязательный параметр. +
+ bindings + + (list) + + Список словарей, описывающих конфигурации binding. +
+ address + + (str) + + IP-адрес. +
Если не задан, то будет использоваться основной IP-адрес + балансировщика во внешней сети или, если подключена только + внутренняя сеть, основной IP-адрес балансировщика во внутренней сети. +
+ name + + (str) + + Название. Обязательный параметр. +
+ port + + (int) +
Значения: +
1-65535 +
+ Порт. Обязательный параметр. +
+ ha_lb + + bool +
Default: false +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. Обязательный параметр. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режиме + authenticator: oauth2. Данный параметр является + обязательным для указанного режима. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ permanently + + (bool) +
Default: false +
+ Если выполняется удаление, то выполнить безвозвратное удаление + (минуя корзину). +
+ rg_id + + (int) + + Идентификатор ресурсной группы. +
+ rg_name + + (str) + + Имя ресурсной группы. +
В комбинации с заданным аккаунтов может быть альтернативой + параметру rg_id +
+ servers + + (list) + + Список словарей, описывающих конфигурации backend-серверов. +
+ address + + (str) + + IP-адрес. Обязательный параметр. +
+ backends + + (list) + + Список словарей, описывающих параметры backend-сервера для разных + конфигураций backend. +
Обязательный параметр. +
+ check + + (str) +
Значения: +
enabled +
disabled +
Default: enabled +
+ Проверка доступности сервера. +
+ name + + (str) + + Название конфигурации backend. Обязательный параметр. +
+ port + + (int) +
Значения: +
1-65535 +
+ Порт. Обязательный параметр. +
+ server_settings + + (dict) + + Словарь, описывающий параметры backend-сервера. +
Ключи данного словаря аналогичны ключам словаря + + default_settings + . +
+ name + + (str) + + Название. Обязательный параметр. +
+ state + + (str) +
Значения: +
present +
absent +
enabled +
disabled +
restart +
Default: present +
+ Целевое состояние балансировщика нагрузки. +
Выполнение с state=restart позволяет выполнить + перезапуск балансировщика, соответственно, всегда возвращает + changed: true. +
Значения present и enabled равнозначны + и соответствуют включённому и запущенному балансировщику. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ vins_id + + (int) + + Идентификатор внутренней сети. +
Может быть не задан, если задан ext_net_id - + в таком случае балансировщик будет подключён только к + внешней сети. +
+ vins_name + + (str) + + Имя внутренней сети. +
В комбинации с заданной РГ может быть альтернативой для + параметра vins_id. +
+ +## Возвращаемые значения модуля decort_lb + +Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ backends + + list + + Список словарей, описывающих конфигурации backend. +
+ algorithm + + str + + Используемый алгоритм. +
+ name + + str + + Название конфигурации backend. +
+ serverDefaultSettings + + dict + + Cловарь, описывающий параметры по умолчанию для backend-серверов. +
Ключи данного словаря аналогичны ключам словаря + + default_settings + . +
+ servers + + list + + Список словарей, описывающих конфигурации backend-серверов. +
+ address + + str + + IP-адрес. +
+ check + + str + + Проверка доступности сервера. +
+ name + + str + + Название. +
+ port + + int + + Порт. +
+ serverSettings + + dict + + Cловарь, описывающий параметры backend-сервера. +
Ключи данного словаря аналогичны ключам словаря + + default_settings + . +
+ frontends + + list + + Список словарей, описывающих конфигурации frontend. +
Ключи данного словаря аналогичны ключам словарей списка + + frontends + . +
+ gid + + int + + Идентификатор физического кластера (Grid ID). +
+ id + + int + + Идентификатор балансировщика. +
+ name + + str + + Имя балансировщика. +
+ rg_id + + int + + Идентификатор ресурсной группы. +
+ state + + str + + Статус балансировщика. +
diff --git a/wiki/5.6.0/модуль-decort_osimage.md b/wiki/5.6.0/модуль-decort_osimage.md new file mode 100644 index 0000000..139bc69 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_osimage.md @@ -0,0 +1,132 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + +## Параметры модуля decort_osimage +Ниже приведен полный список параметров для модуля decort_osimage. + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | +| architecture | (string)
Default: `X86_64` | Архитектура микропроцессора, для которой предназначен образ. Используется при создании образа.| +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| boottype | (string)
Default: `uefi` | Тип загрузки образа. Используется при создании образа.| +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) образ. Данный параметр является обязательным. | +| drivers | (string)
Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.| +| hotresize | (bool)
Default: `false` | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы. | +| image_id | (int) | Идентификатор шаблонного образа. +| image_name | (str) | Имя шаблонного образа. +| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.| +| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. | +| imagetype | (string)
Default: `linux` | Тип образа. Используется при создании образа.| +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.| +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| passwordDL | (string) | Пароль для скачивания по URL-адресу. Используется при создании образа. | +| pool | (str) | Имя пула СХД. Используется для поиска существующего образа. +| poolName | (string) | Имя пула СХД. Используется при создании образа. | +| sepId | (integer) | Уникальный целочисленный идентификатор СХД. Используется при создании образа. | +| sep_id | (int) | Идентификатор СХД. Используется для поиска существующего образа. +| state | (string)
Значения:
`present`
`absent`
Default: `present` | Целевое состояние образа. `present` - существует, `absent` - удалён. | +| url | (string) | URL-адрес, с которого будет загружен образ. Используется при создании образа.| +| usernameDL | (string) | Имя пользователя для загрузки образа с заданного URL-адреса. Используется при создании образа. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.| +| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.| + + +## Возвращаемые значения модуля decort_osimage + +Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| accountId | int | Идентификатор аккаунта. +| id | int | Уникальный целочисленный идентификатор данного образа. | +| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. | +| name | string | Имя образа. | +| pool | string | Имя пула на системе хранения данных, в котором находится данный образ.| +| sep_id | int | Идентификатор системы хранения данных, на которой хранится данный образ. | +| size | int | Размер образа в ГБ. | +| state | string | Текущий статус образа. | +| type | string | Тип образа. | + + + +## Пример использования модуля decort_osimage + + +Пример создания шаблонного образа с операционной системой Alpine Linux. +``` + - name: Create template image + decort_osimage: + account_Id: 12345 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: alpine_linux_3.19.1 + url: https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-uefi-cloudinit-r0.qcow2 + verify_ssl: false + register: osimage +``` + +Пример получения информации о существующем шаблонном образе по его имени. + +``` + - name: Get template image + decort_osimage: + account_Id: 12345 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: alpine_linux_3.19.1 + verify_ssl: false + register: osimage +``` + +Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой шаблонный образ, он привяжет к себе указанный в примере шаблонный образ. + +``` + - name: Create virtual image + decort_osimage: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: alpine_linux_3.19.1 + virt_name: alpine_last + register: osimage +``` +Обратите внимание, что в данном примере можно использовать как `image_name`, так и `image_id`. Также можно использовать либо `virt_name`, либо `virt_id`. + +Пример переименования образа. + +``` + - name: Rename template image + decort_osimage: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: alpine_linux_3.19.1_new_name + image_id: 54321 + register: osimage +``` + diff --git a/wiki/5.6.0/модуль-decort_pfw.md b/wiki/5.6.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_pfw.md @@ -0,0 +1,76 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw + +Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_pfw**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_pfw` + + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| rules | (list) | Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`).
Ключи словаря:
• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`
• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`
• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;
• `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` | +| state | (str)
Значения:
`present`
`absent`
Default: `present` | Целевое состояние правил.
Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. | + + +## Возвращаемые значения модуля decort_pfw + +Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| compute_id | int | Идентификатор ВМ. | +| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. | +| rules | list | Список словарей, описывающих правила переадресации портов.
Ключи словаря:
• `id` (int) - идентификатор правила
• `localIp` (str) - IP-адрес ВМ
• `localPort` (int) - внутренний порт
• `protocol` (str) - протокол
• `publicPortEnd` (int) - верхняя граница диапазона внешних портов
• `publicPortStart` (int) - нижняя граница диапазона внешних портов
• `vmId` (int) - идентификатор ВМ
• `vmName` (str) - имя ВМ | +| state | string | Статус правил. Значения: `PRESENT` или `ABSENT`. | +| vins_id | int | Идентификатор внутренней сети. | + +## Пример использования модуля decort_pfw + +В данном примере для существующей ВМ (параметр `compute_id`), подключённой к внутренней сети (параметр `vins_id`), настраиваются два правила переадресации портов: + +- Правило для одного порта: внешний порт `30022` на внутренний порт `22` по протоколу `tcp`. +- Правило для диапазона портов: внешние порты с `30080` по `30085` на внутренние порты с `30080` по протоколу `udp`. + +``` +- name: Add port forwarding rules + decort_pfw: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + compute_id: "{{ my_vm.facts.id }}" + controller_url: "https://cloud.digitalenergy.online" + oauth2_url: "https://sso.digitalenergy.online" + rules: + - local_port: 22 + proto: tcp + public_port_start: 30022 + - local_port: 30080 + proto: udp + public_port_end: 30085 + public_port_start: 30080 + vins_id: "{{ my_vins.facts.id }}" + register: my_pfw_rules +``` + +В данном примере результат выполнения модуля **decort_pfw** записывается в переменную `my_pfw_rules`. Для доступа к списку правил используйте следующую конструкцию: + +``` +"{{ my_pfw_rules.facts.rules }}" +``` diff --git a/wiki/5.6.0/модуль-decort_rg.md b/wiki/5.6.0/модуль-decort_rg.md new file mode 100644 index 0000000..24dd2b2 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_rg.md @@ -0,0 +1,200 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + +## Параметры модуля decort_rg + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_rg` + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. | +| authenticator | Значения:
`oauth2`
`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.| +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети. Используется при создании РГ для подключения внешней сети к внутренней сети, которая будет создана и задана как сеть по умолчанию для РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`
Данный параметр является обязательным для указанного режима.
Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.
Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +| rename | (string) | Новое имя ресурсной группы. Используется при переименовании ресурсной группы. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | + +## Возвращаемые значения модуля decort_rg + +Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами: +| Ключ | Тип данных | Описание | +|------|------------|----------| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. | +| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. | +| id | int | Уникальный целочисленный идентификатор ресурсной группы. | +| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. | +| state | string | Текущее состояние ресурсной группы. | +| quota | dict | Текущие квоты ресурсной группы. | +| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. | +| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. | +| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. | +| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. | +| computes | list | Список идентификаторов виртуальных машин ресурсной группы. | + +## Пример использования модуля decort_rg + +В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + access: + action: "grant" + user: "MyUser" + right: "R" + quotas: + cpu: 16 + ram: 16384 + disk: 100 + ext_ips: 20 + net_transfer: 1000 + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + access: + action: "grant" + user: "MyUser" + right: "RCX" + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + quotas: + cpu: 16 + ram: 16384 + disk: 100 + ext_ips: 20 + net_transfer: 1000 + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + def_netType: "PRIVATE" + def_netId: 99 + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount. + +``` +- name: manage resource group + decort_rg: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + account_name: "MyAccount" + rg_name: "MyRG" + rename: "NewRg" + rg_id: 27 + state: present + register: my_rg + delegate_to: localhost +``` + +В данном примере результат работы модуля decort_rg записывается в переменную my_rg. + +Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом: + +``` + <прочие детали опущены> + rg_id: "{{ my_rg.facts.id }}" +``` \ No newline at end of file diff --git a/wiki/5.6.0/модуль-decort_user_info.md b/wiki/5.6.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c77a968 --- /dev/null +++ b/wiki/5.6.0/модуль-decort_user_info.md @@ -0,0 +1,1297 @@ +# Модуль decort_user_info +## Обзор модуля + +Модуль **decort_user_info** предназначен для получения следующей информации о пользователе: +- **основная информация** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-о-пользователе)) +- **используемые и зарезервированные ресурсы** (см. [параметр resource_consumption](#resource_consumption), [возвращаемые значения](#используемые-и-зарезервированные-ресурсы) и [примеры](#получение-информации-об-используемых-и-зарезервируемых-ресурсах)) +- **доступные аккаунты** (см. [параметр accounts](#accounts), [возвращаемые значения](#доступные-аккаунты) и [примеры](#получение-информации-о-доступных-аккаунтах)) +- **аудиты** (см. [параметр audits](#audits), [возвращаемые значения](#аудиты) и [примеры](#получение-информации-об-аудитах)) +- **доступные методы API** (см. [параметр api_methods](#api_methods), [возвращаемые значения](#доступные-методы-api) и [примеры](#получение-доступных-методов-api)) +- **поиск доступных объектов по строке** (см. [параметр objects_search](#objects_search), [возвращаемые значения](#найденные-объекты) и [примеры](#поиск-доступных-объектов)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_user_info** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + accounts + + + (dict) + + Получить информацию об аккаунтах, к которым имеет доступ пользователь, + с учётом заданных параметров вывода. +
Чтобы получить информацию без указания параметров вывода, + необходимо задать пустой словарь {}. +
+ deleted + + (bool) +
Default: false +
+
false - вывод только неудалённых объектов. +
true - вывод только удалённых в корзину объектов. +
+ filter + + (dict) + + Фильтр. +
+ rights + + (str) +
Значения: +
R +
RCX +
ARCXDU +
CXDRAU +
+ По предоставленным правам доступа. +
+ id + + (int) + + По идентификатору. +
+ name + + (str) + + По имени. +
+ status + + (str) +
Значения: +
CONFIRMED +
DELETED +
DESTROYED +
DESTROYING +
DISABLED +
+ По статусу. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ resource_consumption + + (bool) +
Default: false +
+ Получить информацию об используемых и зарезервированных ресурсах. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
createdTime +
deletedTime +
id +
name +
status +
updatedTime +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + api_methods + + + (bool) +
Default: false +
+ Получить методы API, к которым имеет доступ пользователь. +
+ + audits + + + (dict) + + Получить информацию об аудитах пользователя, с учётом + заданных параметров вывода. +
Чтобы получить информацию без указания параметров вывода, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ api_method + + (str) + + По методу API. +
+ status_code + + (int) + + По коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
Обязательный параметр. +
+ + objects_search + + + (str) + + Получить информацию о доступных пользователю объектах, + найденных по строчному значению данного параметра. +
+ + resource_consumption + + + (bool) +
Default: false +
+ Получить информацию об используемых и зарезервированных ресурсах, + к которым имеет доступ пользователь. +
+ +## Возвращаемые значения + +Модуль **decort_user_info** возвращает информацию о пользователе в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ admin + + bool + + Наличие административных прав. +
+ data + + dict + + Дополнительные данные. +
+ emailaddresses + + list + + Адреса эл. почты. +
+ name + + str + + Имя/идентификатор. +
+ roles + + list + + Группы доступа. +
+ +### Используемые и зарезервированные ресурсы + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ + resource_consumed + + + dict + + Используемые ресурсы. +
+ cpu + + int + + Количество виртуальных процессоров. +
+ disksize + + int + + Объём дисков в ГБ. +
+ extips + + int + + Количество внешних IP-адресов. +
+ exttraffic + + int + + Объём трафика внешних сетей. +
+ gpu + + int + + Количество графических процессоров. +
+ ram + + int + + Объём оперативной памяти в МБ. +
+ seps + + dict + + Объём дисков по пулам СХД. +
+ (идентификатор СХД) + + dict + + Пулы СХД. +
+ (название пула) + + dict + + Словарь пула СХД. +
+ disksize + + int + + Объём дисков в ГБ. +
+ resource_reserved + + dict + + Зарезервированные ресурсы. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ +### Доступные аккаунты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ accounts + + list + + Список словарей, описывающих аккаунты. +
+ acl + + list + + Список словарей, описывающих доступы пользователей. +
+ right + + str + + Права доступа. +
+ status + + str + + Статус. +
+ type + + str + + Тип. +
+ userGroupId + + str + + Идентификатор пользователя или группы пользователей. +
+ computeFeatures + + list + + Список дополнительных возможностей гипервизора, доступных ВМ. +
+ createdTime + + int + + Unix-время создания. +
+ createdTime_readable + + str + + Дата и время создания. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ id + + int + + Идентификатор. +
+ name + + str + + Имя. +
+ resource_consumed + + list + + Используемые ресурсы. +
Только если + accounts.resource_consumption: true + и только для неудалённых объектов. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ resource_reserved + + list + + Зарезервированные ресурсы. +
Только если + accounts.resource_consumption: true + и только для неудалённых объектов. +
Структура словаря аналогична словарю + + resource_consumed + . +
+ status + + str + + Статус. +
+ updatedTime + + int + + Unix-время обновления. +
+ updatedTime_readable + + str + + Дата и время обновления. +
+ +### Аудиты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ audits + + list + + Список словарей, описывающих аудиты. +
+ Call + + str + + Метод API. +
+ Response Time + + float + + Время отклика в секундах. +
+ Status Code + + int + + Код ответа HTTP. +
+ Time + + float + + Unix-время. +
+ Time_readable + + str + + Дата и время. +
+ +### Доступные методы API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ api_methods + + list + + Список словарей, описывающих доступные методы API. +
+ (название группы методов API) + + dict + + Доступные методы группы. +
+ (название подгруппы методов API) + + list + + Методы подгруппы. +
+ ALL + + bool + + Доступ ко всем методам группы. +
+ +### Найденные объекты + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ objects_search + + list + + Список словарей, описывающих найденные объекты. +
+ +## Примеры использования + +### Получение основной информации о пользователе +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic user info + decort_user_info: + # Параметры для авторизации упущены +``` + +### Получение информации об используемых и зарезервируемых ресурсах +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with resource consumption + decort_user_info: + # Параметры для авторизации упущены + resource_consumption: true +``` + +### Получение информации о доступных аккаунтах + +#### Только неудалённые +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with not deleted accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: {} +``` + +#### Только удалённые в корзину +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with deleted accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: + deleted: true +``` + +#### С информацией об используемых и зарезервированных ресурсах +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: + resource_consumption: true +``` + +#### С фильтрацией по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: + filter: + status: CONFIRMED +``` + +#### С сортировкой по имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: + sorting: + field: name +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with accounts + decort_user_info: + # Параметры для авторизации упущены + accounts: + pagination: + size: 2 +``` + +### Получение информации об аудитах + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: {} +``` + +#### С фильтрацией по методу API +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: + filter: + call: cloudapi/account +``` + +#### С фильтрацией по временному периоду +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: + filter: + time: + start: + unix: 1724668267 + end: + date_time: 2024-08-26_13-40 +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: + pagination: + size: 2 +``` + +### Получение доступных методов API +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with API methods + decort_user_info: + # Параметры для авторизации упущены + api_methods: true +``` + +### Поиск доступных объектов +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with found objects + decort_user_info: + # Параметры для авторизации упущены + objects_search: test +``` diff --git a/wiki/5.6.0/модуль-decort_vins.md b/wiki/5.6.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/wiki/5.6.0/модуль-decort_vins.md @@ -0,0 +1,120 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + +## Параметры модуля decort_vins + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_vins` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +| account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|annotation | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.| +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.| +| authenticator | Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. | +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным. +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.| +| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.
Данный параметр является обязательным для указанного режима.
Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | +|rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.| +| rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.| +| state | (string)
Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние внутренней сети. | +| verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.| +| vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.| +| mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору. +| custom_config | (bool)
Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. | +| config_save | (bool)
Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. | +| connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры. + +## Возвращаемые значения модуля decort_vins + +Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами: + +| Ключ | Тип данных | Описание | +| --- | --- | --- | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. | +| custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора +| ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. | +| ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. | +| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. | +| id | (int) | Уникальный целочисленный идентификатор внутренней сети. | +| name | (string) | Имя внутренней сети. | +| int_net_addr | (string) | Адрес внутренней сети. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. | +| ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему. +| ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору. +| ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору. +| state | (string) | Состояние внутренней сети. | + + + +## Пример использования модуля decort_vins + +В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01"). + +Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0). +``` + - name: Manage ViNS on resource group level + decort_vins: + account_name: "MyMainAccount" + rg_name: "MyRg01" + authenticator: jwt + jwt: "{{ my_jwt.jwt }}" + controller_url: "https://ds1.digitalenergy.online" + ext_net_id: 0 + vins_name: "MyVins01" + register: my_vins + ``` + +Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера. +``` +- name: Manage virtual machine + decort_kvmvm: + << для краткости фрагмент опущен >> + networks: + - type: VINS + id: "{{ my_vins.facts.id }}" + << для краткости фрагмент опущен >> +``` + +В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196. +``` + - name: Manage ViNS on resource group level + decort_vins: + authenticator: jwt + jwt: "{{ my_jwt.jwt }}" + controller_url: "https://cloud.digitalenergy.online" + vins_name: "ViNS_connected_by_decort_vins_module" + rg_id: 98 + connect_to: + - id: 864 + ipaddr: 192.168.5.66 + netmask: 24 + - id: 196 + ipaddr: 192.168.9.133 + netmask: 24 + register: managed_vins + +``` + + diff --git a/wiki/Home.md b/wiki/Home.md index 84d2043..f2be97e 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -1,5 +1,6 @@ ## Документация: +- [Модули Ansible версии 5.6.0](./5.6.0/Home.md) - [Модули Ansible версии 5.5.0](./5.5.0/Home.md) - [Модули Ansible версии 5.4.0](./5.4.0/Home.md) - [Модули Ansible версии 5.3.0](./5.3.0/Home.md)