From fdeb291fb869cbc50e00a8d8035bfebd174b2db9 Mon Sep 17 00:00:00 2001 From: sskarimov Date: Mon, 21 Jul 2025 13:54:27 +0300 Subject: [PATCH] 9.0.0 --- 5.2.6/Home.md | 20 + ...лачной-платформы-DECORT.md | 30 + 5.2.6/введение.md | 90 + 5.2.6/модуль-decort_bservice.md | 103 + 5.2.6/модуль-decort_disk.md | 167 + 5.2.6/модуль-decort_group.md | 103 + 5.2.6/модуль-decort_jwt.md | 56 + 5.2.6/модуль-decort_k8s.md | 102 + 5.2.6/модуль-decort_kvmvm.md | 112 + 5.2.6/модуль-decort_osimage.md | 135 + 5.2.6/модуль-decort_pfw.md | 73 + 5.2.6/модуль-decort_rg.md | 223 + 5.2.6/модуль-decort_vins.md | 120 + 5.2.6/полезные-советы.md | 16 + 5.3.0/Home.md | 16 + 5.3.0/введение.md | 27 + 5.3.0/модуль-decort_bservice.md | 92 + 5.3.0/модуль-decort_disk.md | 177 + 5.3.0/модуль-decort_group.md | 105 + 5.3.0/модуль-decort_jwt.md | 53 + 5.3.0/модуль-decort_k8s.md | 108 + 5.3.0/модуль-decort_kvmvm.md | 106 + 5.3.0/модуль-decort_lb.md | 893 ++++ 5.3.0/модуль-decort_osimage.md | 132 + 5.3.0/модуль-decort_pfw.md | 76 + 5.3.0/модуль-decort_rg.md | 200 + 5.3.0/модуль-decort_vins.md | 120 + 5.4.0/Home.md | 21 + 5.4.0/введение.md | 182 + 5.4.0/модуль-decort_account_info.md | 3840 ++++++++++++++++ 5.4.0/модуль-decort_bservice.md | 92 + 5.4.0/модуль-decort_disk.md | 177 + 5.4.0/модуль-decort_group.md | 105 + 5.4.0/модуль-decort_jwt.md | 53 + 5.4.0/модуль-decort_k8s.md | 108 + 5.4.0/модуль-decort_kvmvm.md | 106 + 5.4.0/модуль-decort_lb.md | 893 ++++ 5.4.0/модуль-decort_osimage.md | 132 + 5.4.0/модуль-decort_pfw.md | 76 + 5.4.0/модуль-decort_rg.md | 200 + 5.4.0/модуль-decort_vins.md | 120 + 5.5.0/Home.md | 22 + 5.5.0/введение.md | 182 + 5.5.0/модуль-decort_account.md | 951 ++++ 5.5.0/модуль-decort_account_info.md | 3843 ++++++++++++++++ 5.5.0/модуль-decort_bservice.md | 92 + 5.5.0/модуль-decort_disk.md | 177 + 5.5.0/модуль-decort_group.md | 105 + 5.5.0/модуль-decort_jwt.md | 53 + 5.5.0/модуль-decort_k8s.md | 108 + 5.5.0/модуль-decort_kvmvm.md | 106 + 5.5.0/модуль-decort_lb.md | 893 ++++ 5.5.0/модуль-decort_osimage.md | 132 + 5.5.0/модуль-decort_pfw.md | 76 + 5.5.0/модуль-decort_rg.md | 200 + 5.5.0/модуль-decort_vins.md | 120 + 5.6.0/Home.md | 23 + 5.6.0/введение.md | 182 + 5.6.0/модуль-decort_account.md | 939 ++++ 5.6.0/модуль-decort_account_info.md | 3831 ++++++++++++++++ 5.6.0/модуль-decort_bservice.md | 92 + 5.6.0/модуль-decort_disk.md | 177 + 5.6.0/модуль-decort_group.md | 105 + 5.6.0/модуль-decort_jwt.md | 53 + 5.6.0/модуль-decort_k8s.md | 108 + 5.6.0/модуль-decort_kvmvm.md | 106 + 5.6.0/модуль-decort_lb.md | 893 ++++ 5.6.0/модуль-decort_osimage.md | 132 + 5.6.0/модуль-decort_pfw.md | 76 + 5.6.0/модуль-decort_rg.md | 200 + 5.6.0/модуль-decort_user_info.md | 1297 ++++++ 5.6.0/модуль-decort_vins.md | 120 + 6.0.0/Home.md | 23 + 6.0.0/введение.md | 181 + 6.0.0/модуль-decort_account.md | 992 +++++ 6.0.0/модуль-decort_account_info.md | 3805 ++++++++++++++++ 6.0.0/модуль-decort_bservice.md | 92 + 6.0.0/модуль-decort_disk.md | 177 + 6.0.0/модуль-decort_group.md | 105 + 6.0.0/модуль-decort_jwt.md | 53 + 6.0.0/модуль-decort_k8s.md | 108 + 6.0.0/модуль-decort_kvmvm.md | 109 + 6.0.0/модуль-decort_lb.md | 893 ++++ 6.0.0/модуль-decort_osimage.md | 131 + 6.0.0/модуль-decort_pfw.md | 76 + 6.0.0/модуль-decort_rg.md | 229 + 6.0.0/модуль-decort_user_info.md | 1338 ++++++ 6.0.0/модуль-decort_vins.md | 120 + 6.1.0/Home.md | 23 + 6.1.0/введение.md | 182 + 6.1.0/модуль-decort_account.md | 992 +++++ 6.1.0/модуль-decort_account_info.md | 3805 ++++++++++++++++ 6.1.0/модуль-decort_bservice.md | 92 + 6.1.0/модуль-decort_disk.md | 177 + 6.1.0/модуль-decort_group.md | 105 + 6.1.0/модуль-decort_jwt.md | 53 + 6.1.0/модуль-decort_k8s.md | 120 + 6.1.0/модуль-decort_kvmvm.md | 136 + 6.1.0/модуль-decort_lb.md | 893 ++++ 6.1.0/модуль-decort_osimage.md | 131 + 6.1.0/модуль-decort_pfw.md | 76 + 6.1.0/модуль-decort_rg.md | 229 + 6.1.0/модуль-decort_user_info.md | 1338 ++++++ 6.1.0/модуль-decort_vins.md | 120 + 7.0.0/Home.md | 25 + 7.0.0/введение.md | 250 ++ 7.0.0/модуль-decort_account.md | 992 +++++ 7.0.0/модуль-decort_account_info.md | 3805 ++++++++++++++++ 7.0.0/модуль-decort_bservice.md | 82 + 7.0.0/модуль-decort_disk.md | 167 + 7.0.0/модуль-decort_group.md | 97 + 7.0.0/модуль-decort_jwt.md | 48 + 7.0.0/модуль-decort_k8s.md | 112 + 7.0.0/модуль-decort_kvmvm.md | 887 ++++ 7.0.0/модуль-decort_lb.md | 782 ++++ 7.0.0/модуль-decort_osimage.md | 124 + 7.0.0/модуль-decort_pfw.md | 66 + 7.0.0/модуль-decort_rg.md | 221 + 7.0.0/модуль-decort_snapshot.md | 248 ++ 7.0.0/модуль-decort_user_info.md | 1338 ++++++ 7.0.0/модуль-decort_vins.md | 110 + 7.1.0/Home.md | 25 + 7.1.0/введение.md | 250 ++ 7.1.0/модуль-decort_account.md | 992 +++++ 7.1.0/модуль-decort_account_info.md | 3805 ++++++++++++++++ 7.1.0/модуль-decort_bservice.md | 82 + 7.1.0/модуль-decort_disk.md | 167 + 7.1.0/модуль-decort_group.md | 97 + 7.1.0/модуль-decort_jwt.md | 48 + 7.1.0/модуль-decort_k8s.md | 112 + 7.1.0/модуль-decort_kvmvm.md | 945 ++++ 7.1.0/модуль-decort_lb.md | 782 ++++ 7.1.0/модуль-decort_osimage.md | 124 + 7.1.0/модуль-decort_pfw.md | 66 + 7.1.0/модуль-decort_rg.md | 221 + 7.1.0/модуль-decort_snapshot.md | 248 ++ 7.1.0/модуль-decort_user_info.md | 1338 ++++++ 7.1.0/модуль-decort_vins.md | 110 + 7.2.0/Home.md | 25 + 7.2.0/введение.md | 250 ++ 7.2.0/модуль-decort_account.md | 992 +++++ 7.2.0/модуль-decort_account_info.md | 3805 ++++++++++++++++ 7.2.0/модуль-decort_bservice.md | 82 + 7.2.0/модуль-decort_disk.md | 159 + 7.2.0/модуль-decort_group.md | 97 + 7.2.0/модуль-decort_jwt.md | 48 + 7.2.0/модуль-decort_k8s.md | 114 + 7.2.0/модуль-decort_kvmvm.md | 1054 +++++ 7.2.0/модуль-decort_lb.md | 806 ++++ 7.2.0/модуль-decort_osimage.md | 137 + 7.2.0/модуль-decort_pfw.md | 66 + 7.2.0/модуль-decort_rg.md | 224 + 7.2.0/модуль-decort_snapshot.md | 248 ++ 7.2.0/модуль-decort_user_info.md | 1338 ++++++ 7.2.0/модуль-decort_vins.md | 110 + 8.0.0/Home.md | 25 + 8.0.0/введение.md | 249 ++ 8.0.0/модуль-decort_account.md | 1029 +++++ 8.0.0/модуль-decort_account_info.md | 3828 ++++++++++++++++ 8.0.0/модуль-decort_bservice.md | 82 + 8.0.0/модуль-decort_disk.md | 161 + 8.0.0/модуль-decort_group.md | 100 + 8.0.0/модуль-decort_jwt.md | 48 + 8.0.0/модуль-decort_k8s.md | 115 + 8.0.0/модуль-decort_kvmvm.md | 1202 +++++ 8.0.0/модуль-decort_lb.md | 806 ++++ 8.0.0/модуль-decort_osimage.md | 146 + 8.0.0/модуль-decort_pfw.md | 66 + 8.0.0/модуль-decort_rg.md | 224 + 8.0.0/модуль-decort_snapshot.md | 248 ++ 8.0.0/модуль-decort_user_info.md | 1411 ++++++ 8.0.0/модуль-decort_vins.md | 110 + 9.0.0/Home.md | 27 + 9.0.0/введение.md | 249 ++ 9.0.0/модуль-decort_account.md | 1113 +++++ 9.0.0/модуль-decort_account_info.md | 3868 +++++++++++++++++ 9.0.0/модуль-decort_bservice.md | 84 + 9.0.0/модуль-decort_disk.md | 161 + 9.0.0/модуль-decort_group.md | 100 + 9.0.0/модуль-decort_jwt.md | 48 + 9.0.0/модуль-decort_k8s.md | 117 + 9.0.0/модуль-decort_kvmvm.md | 1334 ++++++ 9.0.0/модуль-decort_lb.md | 858 ++++ 9.0.0/модуль-decort_osimage.md | 147 + 9.0.0/модуль-decort_pfw.md | 66 + 9.0.0/модуль-decort_rg.md | 226 + 9.0.0/модуль-decort_snapshot.md | 264 ++ 9.0.0/модуль-decort_trunk.md | 237 + 9.0.0/модуль-decort_user_info.md | 2368 ++++++++++ 9.0.0/модуль-decort_vins.md | 113 + 9.0.0/модуль-decort_zone.md | 171 + Home.md | 14 + 192 files changed, 91594 insertions(+) create mode 100644 5.2.6/Home.md create mode 100644 5.2.6/Обзор-облачной-платформы-DECORT.md create mode 100644 5.2.6/введение.md create mode 100644 5.2.6/модуль-decort_bservice.md create mode 100644 5.2.6/модуль-decort_disk.md create mode 100644 5.2.6/модуль-decort_group.md create mode 100644 5.2.6/модуль-decort_jwt.md create mode 100644 5.2.6/модуль-decort_k8s.md create mode 100644 5.2.6/модуль-decort_kvmvm.md create mode 100644 5.2.6/модуль-decort_osimage.md create mode 100644 5.2.6/модуль-decort_pfw.md create mode 100644 5.2.6/модуль-decort_rg.md create mode 100644 5.2.6/модуль-decort_vins.md create mode 100644 5.2.6/полезные-советы.md create mode 100644 5.3.0/Home.md create mode 100644 5.3.0/введение.md create mode 100644 5.3.0/модуль-decort_bservice.md create mode 100644 5.3.0/модуль-decort_disk.md create mode 100644 5.3.0/модуль-decort_group.md create mode 100644 5.3.0/модуль-decort_jwt.md create mode 100644 5.3.0/модуль-decort_k8s.md create mode 100644 5.3.0/модуль-decort_kvmvm.md create mode 100644 5.3.0/модуль-decort_lb.md create mode 100644 5.3.0/модуль-decort_osimage.md create mode 100644 5.3.0/модуль-decort_pfw.md create mode 100644 5.3.0/модуль-decort_rg.md create mode 100644 5.3.0/модуль-decort_vins.md create mode 100644 5.4.0/Home.md create mode 100644 5.4.0/введение.md create mode 100644 5.4.0/модуль-decort_account_info.md create mode 100644 5.4.0/модуль-decort_bservice.md create mode 100644 5.4.0/модуль-decort_disk.md create mode 100644 5.4.0/модуль-decort_group.md create mode 100644 5.4.0/модуль-decort_jwt.md create mode 100644 5.4.0/модуль-decort_k8s.md create mode 100644 5.4.0/модуль-decort_kvmvm.md create mode 100644 5.4.0/модуль-decort_lb.md create mode 100644 5.4.0/модуль-decort_osimage.md create mode 100644 5.4.0/модуль-decort_pfw.md create mode 100644 5.4.0/модуль-decort_rg.md create mode 100644 5.4.0/модуль-decort_vins.md create mode 100644 5.5.0/Home.md create mode 100644 5.5.0/введение.md create mode 100644 5.5.0/модуль-decort_account.md create mode 100644 5.5.0/модуль-decort_account_info.md create mode 100644 5.5.0/модуль-decort_bservice.md create mode 100644 5.5.0/модуль-decort_disk.md create mode 100644 5.5.0/модуль-decort_group.md create mode 100644 5.5.0/модуль-decort_jwt.md create mode 100644 5.5.0/модуль-decort_k8s.md create mode 100644 5.5.0/модуль-decort_kvmvm.md create mode 100644 5.5.0/модуль-decort_lb.md create mode 100644 5.5.0/модуль-decort_osimage.md create mode 100644 5.5.0/модуль-decort_pfw.md create mode 100644 5.5.0/модуль-decort_rg.md create mode 100644 5.5.0/модуль-decort_vins.md create mode 100644 5.6.0/Home.md create mode 100644 5.6.0/введение.md create mode 100644 5.6.0/модуль-decort_account.md create mode 100644 5.6.0/модуль-decort_account_info.md create mode 100644 5.6.0/модуль-decort_bservice.md create mode 100644 5.6.0/модуль-decort_disk.md create mode 100644 5.6.0/модуль-decort_group.md create mode 100644 5.6.0/модуль-decort_jwt.md create mode 100644 5.6.0/модуль-decort_k8s.md create mode 100644 5.6.0/модуль-decort_kvmvm.md create mode 100644 5.6.0/модуль-decort_lb.md create mode 100644 5.6.0/модуль-decort_osimage.md create mode 100644 5.6.0/модуль-decort_pfw.md create mode 100644 5.6.0/модуль-decort_rg.md create mode 100644 5.6.0/модуль-decort_user_info.md create mode 100644 5.6.0/модуль-decort_vins.md create mode 100644 6.0.0/Home.md create mode 100644 6.0.0/введение.md create mode 100644 6.0.0/модуль-decort_account.md create mode 100644 6.0.0/модуль-decort_account_info.md create mode 100644 6.0.0/модуль-decort_bservice.md create mode 100644 6.0.0/модуль-decort_disk.md create mode 100644 6.0.0/модуль-decort_group.md create mode 100644 6.0.0/модуль-decort_jwt.md create mode 100644 6.0.0/модуль-decort_k8s.md create mode 100644 6.0.0/модуль-decort_kvmvm.md create mode 100644 6.0.0/модуль-decort_lb.md create mode 100644 6.0.0/модуль-decort_osimage.md create mode 100644 6.0.0/модуль-decort_pfw.md create mode 100644 6.0.0/модуль-decort_rg.md create mode 100644 6.0.0/модуль-decort_user_info.md create mode 100644 6.0.0/модуль-decort_vins.md create mode 100644 6.1.0/Home.md create mode 100644 6.1.0/введение.md create mode 100644 6.1.0/модуль-decort_account.md create mode 100644 6.1.0/модуль-decort_account_info.md create mode 100644 6.1.0/модуль-decort_bservice.md create mode 100644 6.1.0/модуль-decort_disk.md create mode 100644 6.1.0/модуль-decort_group.md create mode 100644 6.1.0/модуль-decort_jwt.md create mode 100644 6.1.0/модуль-decort_k8s.md create mode 100644 6.1.0/модуль-decort_kvmvm.md create mode 100644 6.1.0/модуль-decort_lb.md create mode 100644 6.1.0/модуль-decort_osimage.md create mode 100644 6.1.0/модуль-decort_pfw.md create mode 100644 6.1.0/модуль-decort_rg.md create mode 100644 6.1.0/модуль-decort_user_info.md create mode 100644 6.1.0/модуль-decort_vins.md create mode 100644 7.0.0/Home.md create mode 100644 7.0.0/введение.md create mode 100644 7.0.0/модуль-decort_account.md create mode 100644 7.0.0/модуль-decort_account_info.md create mode 100644 7.0.0/модуль-decort_bservice.md create mode 100644 7.0.0/модуль-decort_disk.md create mode 100644 7.0.0/модуль-decort_group.md create mode 100644 7.0.0/модуль-decort_jwt.md create mode 100644 7.0.0/модуль-decort_k8s.md create mode 100644 7.0.0/модуль-decort_kvmvm.md create mode 100644 7.0.0/модуль-decort_lb.md create mode 100644 7.0.0/модуль-decort_osimage.md create mode 100644 7.0.0/модуль-decort_pfw.md create mode 100644 7.0.0/модуль-decort_rg.md create mode 100644 7.0.0/модуль-decort_snapshot.md create mode 100644 7.0.0/модуль-decort_user_info.md create mode 100644 7.0.0/модуль-decort_vins.md create mode 100644 7.1.0/Home.md create mode 100644 7.1.0/введение.md create mode 100644 7.1.0/модуль-decort_account.md create mode 100644 7.1.0/модуль-decort_account_info.md create mode 100644 7.1.0/модуль-decort_bservice.md create mode 100644 7.1.0/модуль-decort_disk.md create mode 100644 7.1.0/модуль-decort_group.md create mode 100644 7.1.0/модуль-decort_jwt.md create mode 100644 7.1.0/модуль-decort_k8s.md create mode 100644 7.1.0/модуль-decort_kvmvm.md create mode 100644 7.1.0/модуль-decort_lb.md create mode 100644 7.1.0/модуль-decort_osimage.md create mode 100644 7.1.0/модуль-decort_pfw.md create mode 100644 7.1.0/модуль-decort_rg.md create mode 100644 7.1.0/модуль-decort_snapshot.md create mode 100644 7.1.0/модуль-decort_user_info.md create mode 100644 7.1.0/модуль-decort_vins.md create mode 100644 7.2.0/Home.md create mode 100644 7.2.0/введение.md create mode 100644 7.2.0/модуль-decort_account.md create mode 100644 7.2.0/модуль-decort_account_info.md create mode 100644 7.2.0/модуль-decort_bservice.md create mode 100644 7.2.0/модуль-decort_disk.md create mode 100644 7.2.0/модуль-decort_group.md create mode 100644 7.2.0/модуль-decort_jwt.md create mode 100644 7.2.0/модуль-decort_k8s.md create mode 100644 7.2.0/модуль-decort_kvmvm.md create mode 100644 7.2.0/модуль-decort_lb.md create mode 100644 7.2.0/модуль-decort_osimage.md create mode 100644 7.2.0/модуль-decort_pfw.md create mode 100644 7.2.0/модуль-decort_rg.md create mode 100644 7.2.0/модуль-decort_snapshot.md create mode 100644 7.2.0/модуль-decort_user_info.md create mode 100644 7.2.0/модуль-decort_vins.md create mode 100644 8.0.0/Home.md create mode 100644 8.0.0/введение.md create mode 100644 8.0.0/модуль-decort_account.md create mode 100644 8.0.0/модуль-decort_account_info.md create mode 100644 8.0.0/модуль-decort_bservice.md create mode 100644 8.0.0/модуль-decort_disk.md create mode 100644 8.0.0/модуль-decort_group.md create mode 100644 8.0.0/модуль-decort_jwt.md create mode 100644 8.0.0/модуль-decort_k8s.md create mode 100644 8.0.0/модуль-decort_kvmvm.md create mode 100644 8.0.0/модуль-decort_lb.md create mode 100644 8.0.0/модуль-decort_osimage.md create mode 100644 8.0.0/модуль-decort_pfw.md create mode 100644 8.0.0/модуль-decort_rg.md create mode 100644 8.0.0/модуль-decort_snapshot.md create mode 100644 8.0.0/модуль-decort_user_info.md create mode 100644 8.0.0/модуль-decort_vins.md create mode 100644 9.0.0/Home.md create mode 100644 9.0.0/введение.md create mode 100644 9.0.0/модуль-decort_account.md create mode 100644 9.0.0/модуль-decort_account_info.md create mode 100644 9.0.0/модуль-decort_bservice.md create mode 100644 9.0.0/модуль-decort_disk.md create mode 100644 9.0.0/модуль-decort_group.md create mode 100644 9.0.0/модуль-decort_jwt.md create mode 100644 9.0.0/модуль-decort_k8s.md create mode 100644 9.0.0/модуль-decort_kvmvm.md create mode 100644 9.0.0/модуль-decort_lb.md create mode 100644 9.0.0/модуль-decort_osimage.md create mode 100644 9.0.0/модуль-decort_pfw.md create mode 100644 9.0.0/модуль-decort_rg.md create mode 100644 9.0.0/модуль-decort_snapshot.md create mode 100644 9.0.0/модуль-decort_trunk.md create mode 100644 9.0.0/модуль-decort_user_info.md create mode 100644 9.0.0/модуль-decort_vins.md create mode 100644 9.0.0/модуль-decort_zone.md create mode 100644 Home.md diff --git a/5.2.6/Home.md b/5.2.6/Home.md new file mode 100644 index 0000000..0f4cb12 --- /dev/null +++ b/5.2.6/Home.md @@ -0,0 +1,20 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) +2. [Обзор облачной платформы DECORT.](./Обзор-облачной-платформы-DECORT.md) + - [Основные понятия](./Обзор-облачной-платформы-DECORT.md#основные-понятия) + - [Способы авторизации](./Обзор-облачной-платформы-DECORT.md#способы-авторизации) +3. Ansible модули DECORT: + - [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными серверами KVM. + - [Модуль 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) - управление Basic сервисами. + - [Модуль decort_group](./модуль-decort_group.md)- управление группами виртуальных серверов. + - [Модуль decort_k8s](./модуль-decort_k8s.md)- управление кластерами Kubernetes. +4. [Полезные советы](./полезные-советы.md) + - [Как хранить авторизационную информацию отдельно от плейбука.](./полезные-советы.md#41-как-хранить-авторизационную-информацию-отдельно-от-плейбука) diff --git a/5.2.6/Обзор-облачной-платформы-DECORT.md b/5.2.6/Обзор-облачной-платформы-DECORT.md new file mode 100644 index 0000000..9424cb2 --- /dev/null +++ b/5.2.6/Обзор-облачной-платформы-DECORT.md @@ -0,0 +1,30 @@ +## Основные понятия + +Ниже перечислены основные понятия с указанием соответствующих им аргументов в Terraform провайдере DECORT. + +1. Контроллер облачной платформы DECORT – управляющее приложение, которое обеспечивает авторизацию пользователей и оркестрацию облачных ресурсов. + - Адрес контроллера задается в обязательном аргументе `controller_url` в Вашем плейбуке. Например, `controller_url= "https://ds1.digitalenergy.online"` +2. Авторизационный провайдер – приложение, работающее по протоколу Oauth2, предназначенное для выпуска и валидации токенов доступа к контроллеру облачной платформы в соответствующих режимах авторизации. Все действия в платформе должны выполняться авторизованными пользователями, и авторизационное приложение позволяет получить токен доступа, действующий некоторое ограниченное время, наличие которого подтверждает успешную авторизацию. + - Адрес авторизационного провайдера задается в аргументе `oauth2_url` в Вашем плейбуке. Например `oauth2_url= "https://sso.digitalenergy.online"`. При этом необходимо указать тип авторизации `authenticator: oauth2` +3. Подписчик (account) – сущность, которая используется для группирования облачных ресурсов по принадлежности к определенному клиенту для целей учета потребления и биллинга. + - Имя подписчика задается аргументом `account_name` в Вашем плейбуке. Альтернативой является задание численного идентификатора подписчика в аргументе `account_id`. +4. Пользователь (user) – пользователь облачной инфраструктуры, представленный учетной записью. Чтобы получить возможность управлять облачными ресурсами (например, создавать виртуальные серверы или дискт) пользователь должен быть ассоциирован с одним или несколькими подписчиками и иметь соответствующие права, определяемые ролевой моделью, принятой в облачной платформе DECORT. Для доступа к платформе пользователь должен авторизоваться одним из способов, описанных ниже в разделе «Способы авторизации». +5. Ресурсная группа (resource group) – способ группирования вычислительных ресурсов (например, виртуальных серверов по функциональному признаку или принадлежности к одному и тому же проекту). Ресурсную группу можно рассматривать как небольшой персональный дата-центр, в котором размещаются один или несколько серверов и виртуальных сетевых сегментов. Ресурсная группа идентифицируется по комбинации параметров `account` и `name`. Обратите внимание, что имя имя ресурсной группы уникально только в рамках одного и того же `account`. +6. Вычислительный ресурс (compute) - универсальная абстракция пользовательского сервера в платформе DECORT. Благодаря использованию такой абстракции можно, например, создать одну виртуальную машину на базе KVM Intel x86, а другую - на базе KVM IBM Power, а потом управлять ими - изменять количество CPU/RAM, подключать/отключать диски и т.п. - одинаковым образом, не задумываясь об их архитектурных различиях. +7. Ресурс хранения (disk) - универсальная абстракция дискового ресурса в платформе DECORT. Платформа поддерживает различные типы систем хранения данных, но при этом управление созданными на разных системах хранения дисками осуществляется посредством унифицированного набора действий, например, "подключить диск к compute", "увеличить размер диска", "сделать мгновенный снимок диска", "настроить параметры быстродействия диска". +8. Виртуальный сервер – экземпляр compute, в основе технической реализации которого лежит виртуальная машина, работающая в облаке DECORT и доступна по сети. Виртуальный сервер характеризуется количеством выделенных ему CPU (аргумент `cpu`), объемом ОЗУ (`ram`), размером загрузочного диска (`boot_disk size`). При создании виртуального сервера на загрузочный диск устанавливается образ операционной системы, заданный в аргументе `image_id`. Помимо загрузочного диска к виртуальному серверу можно подключить несколько дисков для хранения прикладных данных, список которых задается аргументами `extra_disks`. Виртуальный сервер идентифицируется по комбинации аргументов `name` (имя сервера) и `rgid` (идентификатор ресурсной группы). Обратите внимание, что имя виртуального сервера `name` уникально только в рамках одной и той же ресурсной группы. +9. Виртуальный сетевой сегмент (Virtual Network Segment или ViNS) - сетевой сегмент и обеспечивающая его функционирование виртуальная инфраструктура, которые пользователь может создавать для своих нужд на уровне ресурсной группы или подписчика (account). ViNS можно создать полностью изолированным от внешних сетей (см. ниже External Network) или с подключением во внешнюю сеть. Внутри ViNS работает DHCP-сервис, обеспечивающий управление IP адресами экземпляров compute, подключённых в этот ViNS. +10. Внешняя сеть (External Network) - сетевой сегмент, через который платформа DECORT взаимодействует с внешними по отношению к ней сетевыми ресурсами. Например, в случае с публичным облаком на базе DECORT в качестве внешней сети выступает сеть Интернет. В отличие от ViNS платформа не управляет внешней сетью, а лишь пользуется её ресурсами. В платформе может быть настроено несколько внешних сетей с различными диапазонами IP адресов, и существует механизм управления доступом пользователей к внешним сетям. +11. Сетевой доступ к экземпляру compute (виртуальному серверу) реализуется через его подключение к ViNS и/или прямое подключение во внешнюю сеть (External Network). Один и тот же экземпляр compute может одновременно иметь несколько подключений в разные ViNS и/или различные внешние сети. + +## Способы авторизации + +Облачная платформа DECORT поддерживает два базовых типа авторизации: + +1. С использованием авторизационного провайдера, работающего по протоколу Oauth2. Данный способ является предпочтительным, так как обеспечивает бОльшую гибкость и безопасность. Для авторизации в этом режиме в Вашем плейбуке необходимо указать параметры `oauth2_url` и `controller_url`, а также предоставить одно из нижеперечисленного: + - Комбинация Application ID & Application secret, соответствующих пользователю, от имени которого будет осуществляться управление облачными ресурсами в текущей сессии. В процессе проверки предоставленных Application ID & Application secret модуль получает от авторизационного провайдера токен (JSON Web Token, JWT), который затем используется для доступа к указанному контроллеру DECORT. Для авторизации по данному варианту, в Вашем плейбуке следует установить аргумент `authenticator=oauth2` и задать аргументы `app_id` и `app_secret` (или определить соответствующие переменные окружения `DECORT_APP_ID` и `DECORT_APP_SECRET`). + - JSON Web Token – заранее полученный от авторизационного провайдера токен доступа, ассоциированный с определенным пользователем, от имени которого будет осуществляться управление облачными ресурсами в текущей сессии. Для авторизации по данному варианту, при инициализации Terraform провайдера DECORT следует установить аргумент `authenticator=jwt` и задать аргумент `jwt` (или определить переменную окружения `DECORT_JWT`). +2. С использованием комбинации имя пользователя : пароль. Данный режим не использует внешних авторизационных провайдеров и подразумевает, что пользователь с такой комбинацией зарегистрирован непосредственно на указанном в параметре `controller_url` контроллере облачной платформы DECORT. + - Чтобы провайдер авторизовался по данному варианту, при его инициализации следует установить аргумент `authenticator=legacy` и задать аргументы `user` и `password` (или определить соответствующие переменные окружения `DECORT_USER` и `DECORT_PASSWORD`). + +После успешной авторизации пользователь (или приложение-клиент) получает доступ к ресурсам, находящимся под управлением соответствующего DECORT контроллера. Доступ предоставляется в рамках подписчиков (`account`), с которыми ассоциирован данный пользователь (`user`), и в соответствии с присвоенными ему ролями. \ No newline at end of file diff --git a/5.2.6/введение.md b/5.2.6/введение.md new file mode 100644 index 0000000..a697840 --- /dev/null +++ b/5.2.6/введение.md @@ -0,0 +1,90 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +У каждого модуля есть свой раздел, в котором Вы можете найти подробную информацию о параметрах, которые использует и возращает данный модуль, а также примеры использования данного модуля. + +В состав библиотеки модулей DECORT для Ansible на текущий момент входят: + +- decort_kvmvm - модуль для управления жизненным циклом виртуальных серверов (экземпляров compute). Платформа DECORT поддерживает виртуальные серверы на базе технологии KVM и аппаратных архитектур Intel x86 и IBM PowerPC. +Позволяет: + 1. Создавать новые виртуальные сервера указанной аппаратной архитектуры. Платформа поддерживает виртуальные сервера архитектуры Intel x86 и IBM PowerPC. + 2. Изменять конфигурацию существующего виртуального сервера: + - Изменять количества выделенных CPU и виртуальной ОЗУ. Следует иметь ввиду, что изменение этих параметров в меньшую сторону может потребовать перезагрузки гостевой ОС. + - Увеличивать размера загрузочного диска + - Подключать / отключать дополнительные дисковые ресурсы. + - Создавать / удалять сетевые подключения. + 3. Изменять состояние существующего виртуального сервера: + - Выключать / включать. + - Перезагружать, приостанаваливать / возобновлять работу гостевой ОС. + 4. Удалять существующий виртуальный сервер. + 5. Получать информацию о существующем виртуальном сервере без изменения его конфигурации. +- decort_disk - модуль для управления жизненным циклом дисковых ресурсов, которые можно подключать к экземплярам compute. +Позволяет: + 1) создавать / удалять диск; + 2) изменять размер диска. +- decort_rg - модуль для управления жизненным циклом ресурсных групп (Resource Groups, RG). +Позволяет: + 1) Создавать\удалять ресурсные группы. + 2) Запрашивать информацию об уже существующих ресурсных группах. + 3) Редактировать ресурсные группы. + 4) Настраивать квоты в ресурсных группах. + 5) Восстанавливать ресурсные группы. +- decort_vins - модуль для управления жизненным циклом виртуальных сетевых сегментов (Virtual Network Segment, ViNS). Экземпляры compute (напр., виртуальные серверы) могут быть подключены к нескольким виртуальным сетевым сегментам. +Позволяет: + 1) Создавать, удалять виртуальные сетевые сегменты. + 2) Изменять виртуальные сетевые сегменты. + 3) Запрашивать информацию о виртуальных сетевых сегментах. + 4) Восстанавливать удалённые виртуальные сетевые сегменты. + +- decort_pfw - модуль для настройки правил трансляции сетевых портов виртуальных серверов. +- decort_osimage - модуль для взаимодействия с образами. +Позволяет: + 1) Создавать новый образ операционной системы для виртуальных машин. + 2) Создавать виртуальный образ для образа операционной системы. + 3) Изменять имя образа (в случае изменения имени виртуального образа, имя и id виртуального образа указываются как image_name и image_id). + 4) Привязывать другой образ операционной системы к виртуальному образу. + 5) Удалять существующий образ, привязанный к аккаунту. + 6) Получать информацию об образе. +- decort_jwt - модуль для получения авторизационного токена (JWT - JSON Web Token), который можно использовать при массовом создании экземпляров compute для ускорения работы playbook-а. Подробности см. в соответствующем разделе. +- decort_bservice - модуль для взаимодействия с Basic сервисами (Basic service). +Позволяет: + 1) Создавать Basic Service. + 2) Удалять Basic Service. + 3) Включать/выключать Basic Service. + 4) Запрашивать информацию о Basic Service. +- decort_group - модуль для взаимодействия с группами виртуальных серверов(compute). +Позволяет: + 1) Получить информацию о группе виртуальных серверов. + 2) Запустить/остановить группу виртуальных серверов. + 3) Изменить параметры группы виртуальных серверов (cpu, ram, disk, и т.д). + 4) Изменить количество виртуальных серверов в группе. + 5) Изменить параметры сети (ext_net, VINS). + 6) Создать группу виртуальных серверов и подключить её к Basic сервису. + 7) Удалить группу виртуальных серверов. +- decort_k8s - модуль для взаимодействия с кластерами Kubernetes. +Позволяет: + 1) Создавать/удалять кластера Kubernetes. + 2) Enable/Disable кластера Kubernetes. + 3) Запускать/Останавливать кластера Kubernetes + 4) Модифицировать кластера Kubernetes + 5) Получать информацию об уже существующем кластере Kubernetes. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 2.7 or higher +- Python 3.7 or higher +- PyJWT 2.0.0 Python module or higher +- requests Python module +- netaddr Python module +- DECORT cloud platform version 3.5.0 or higher + +## Подготовка к работе + +Для начала работы необходимо разместить директории library и module_utils в Вашей рабочей директории, откуда будут запускаться плейбуки, либо указать в ansible.cfg путь до них. + + + + diff --git a/5.2.6/модуль-decort_bservice.md b/5.2.6/модуль-decort_bservice.md new file mode 100644 index 0000000..7289a3e --- /dev/null +++ b/5.2.6/модуль-decort_bservice.md @@ -0,0 +1,103 @@ +# 03.08 Модуль 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_disk предназначен для управления basic сервисами, в которых находятся группы виртуальных серверов. +Данный модуль позволяет: +- Создавать Basic Service. +- Удалять Basic Service. +- Включать/выключать Basic Service. +- Запрашивать информацию о Basic Service. + + +## Параметры модуля decort_bservice + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_bservice` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр 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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы 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| Состояние Basic сервиса.| +| started | (bool) | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. По умолчанию: False. | +| name | (string) | Имя, с которым будет создан Basic сервис. Также используется для поиска ID Basic сервиса. | +| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах в группе basic сервиса. Используется в паре с sshkey. | +| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера в группе basic сервиса. Используется в паре с sshuser. | +| id | (int) | Уникальный целочисленный идентификатор Basic сервиса, используется для поиска, взаимодействия и удаления Basic сервиса. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, в которой будет работать модуль. | +| rg_name | (string) | Имя ресурсной группы, в которой будет работать модуль. | +| description | (string) | Описание. По умолчанию: `Created by decort ansible module`| +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля не реализована.| +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.
Функциональность callbacks в текущей версии модуля не реализована.| + +## Возвращаемые значения модуля decort_bservice + +Модуль decort_bservice возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +|id | int | Уникальный целочисленный идентификатор данного Basic сервиса.| +|name | string | Имя Basic сервиса.| +| techStatus | string | Технический статус Basic сервиса. | +|state | string | Текущий статус Basic сервиса. Корректные состояния:MODELED, DISABLING, ENABLING, DELETING, DELETED, "DESTROYING, DESTROYED, RESTORYNG, RECONFIGURING| +| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в котором находится Basic сервис.| +| account_id | int | Уникальный целочисленный идентификатор пользователя, к которому привязан данный Basic сервис.| +| groupsName | string | Имена групп виртуальных серверов, которые находятся в данном Basic сервисе.| +| groupsIds | string | Уникальные целочисленные идентификаторы групп виртуальных серверов, которые находятся в данном Basic сервисе. | + + +## Пример использования модуля decort_bservice + +Данный пример создаёт Basic сервис с названием databases. + +``` + - name: Manage bservice at RG + decort_bservice: + account_id: 98 + verify_ssl: false + authenticator: jwt + jwt: "{{ my_jwt.jwt }}" + controller_url: "https://ds1.digitalenergy.online" + rg_id: 1629 + state: present + name: databases + started: True + register: db_bservice +``` + +Данный пример удаляет Basic сервис с названием databases. +``` + - name: Manage bservice at RG + decort_bservice: + account_id: 98 + verify_ssl: false + authenticator: jwt + jwt: "{{ my_jwt.jwt }}" + controller_url: "https://ds1.digitalenergy.online" + rg_id: 1629 + state: absent + name: databases + started: False + register: db_bservice +``` \ No newline at end of file diff --git a/5.2.6/модуль-decort_disk.md b/5.2.6/модуль-decort_disk.md new file mode 100644 index 0000000..bb47cda --- /dev/null +++ b/5.2.6/модуль-decort_disk.md @@ -0,0 +1,167 @@ +# 03.03 Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисковыми ресурсами в платформе DECORT: + +- создание / удаление диска; +- изменение размера диска. +- переименование диска. +- ограничение ввода / вывода диска. +- восстановление удаленного диска из корзины. + +Обратите внимание: + +- загрузочный диск для виртуального сервера создаётся и подключается автоматически в процессе создания этого сервера. - Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками); +- подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным серверам выполняется с помощью модулей управления compute-ресурсами (например, подробнее см. модуль decort_kvmvm, параметр data_disks). + +## Параметры модуля decort_disk + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_disk` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр 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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | +|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным.| +| description | (string) | Описание диска. Используется при создании диска, по умолчанию установлено: "Disk created with Ansible Decort_disk module." | +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int) | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
`True`
`False` <- default | Задаёт поведение платформы при попытке удалить диск, подключённый к экземпляру _compute_.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `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) | Параметр, использующийся при удалении диска, при значении True - диск удалится навсегда, а при False - попадёт в корзину. | +|place_with | (int) | Идентификатор образа ОС, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ ОС. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.| +|pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, значение по умолчанию - пустая строка (в этом случае платформа использует пул, который сконфигурирован на целевой системе хранения как пул по умолчанию). | +| reason | (string) | Причина, по которой было выполнено какое-либо действие, в данном модуле используется только при удалении диска. | +|sep_id | (int) | Идентификатор провайдера системы хранения данных (Storage End-point Provider). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный загрузочный образ, на базе которого создаётся экземпляр compute.| +|size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующих дисков, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.| +| state | Значения:
`present` <- default
`absent`
| Целевое состояние диска. | +| type | (string) | Тип создаваемого диска. Возможные значения: B-Boot, D-Data, T-Temp. По умолчанию установлено значение D.| +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля не реализована.| +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.
Функциональность callbacks в текущей версии модуля не реализована.| + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +|account_id | int | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит диск.| +|attached_to | int | Идентификатор экземпляра Compute (напр., виртуального сервера), к которому в настоящий момент подключён диск. Если диск не подключён, то attached_to=0| +|gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.| +|id | int | Уникальный целочисленный идентификатор данного диска.| +| iotune | dict | Текущие ограничение ввода / вывода диска. | +|name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.| +|pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.| +|sep_id | int | Идентификатор системы хранения (Storage Endpoint Provider), на которой размещаются ресурсы данного диска.| +|size | int | Размер диска в ГБ.| +|state | string | Текущий статус диска. Корректные состояния: CREATED, ASSIGNED, DELETED, DESTROYED, PURGED.| + + +## Пример использования модуля decort_disk + +В данном примере создаётся диск размером 50ГБ (size: 50), с ограничением ввода / вывода в 2000 iops, на ресурсах системы хранения, доступной через Storage Endpoint provider под номером 1 (sep_id: 1) в пуле "data01". + +``` +- name: manage data 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 + description: "Disk example" + pool: data01 + state: present + register: my_data_disk01 + delegate_to: localhost +``` +В данном примере ограничивается уже существующий диск с именем "DataDisk01", ограничивается как чтение/запись в iops, так и в байтах, также задаётся их максимальное чтение / запись(read/write_*_sec_max). + +``` +- name: manage data 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: 100 + read_bytes_sec_max: 100 + read_iops_sec: 100 + read_iops_sec_max: 100 + size_iops_sec: 100 + write_bytes_sec: 100 + write_bytes_sec_max: 100 + write_iops_sec: 100 + write_iops_sec_max: 100 + total_bytes_sec: 0 + total_iops_sec: 0 + total_bytes_sec_max: 0 + total_iops_sec_max: 0 + state: present + register: my_data_disk01 + delegate_to: localhost +``` + +В данном примере выполняется восстановление удаленного диска с id 111 из корзины. + +``` +- name: manage data 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 + state: present + register: my_data_disk01 + delegate_to: localhost +``` + +В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk". + +``` +- name: manage data 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" + state: present + register: my_data_disk01 + delegate_to: localhost +``` + +Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальному серверу, следует воспользоваться показанной ниже конструкцией: + +``` +- name: manage virtual server + decort_kvmvm: + << для краткости фрагмент опущен >> + data_disks: + - "{{ my_data_disk01.facts.id }}" + << для краткости фрагмент опущен >> +``` \ No newline at end of file diff --git a/5.2.6/модуль-decort_group.md b/5.2.6/модуль-decort_group.md new file mode 100644 index 0000000..2f0a003 --- /dev/null +++ b/5.2.6/модуль-decort_group.md @@ -0,0 +1,103 @@ +# 03.09 Модуль decort_group +## Обзор модуля decort_group +Модуль decort_group позволяет взаимодействовать с группами виртуальных серверов, которые находятся в Basic сервисе. `Взаимодействие с Basic сервисами происходит в модуле decort_bservice.` + +Модуль decort_group позволяет: +- Получить информацию о группе виртуальных серверов. +- Запустить/остановить группу виртуальных серверов. +- Изменить параметры группы виртуальных серверов (cpu, ram, disk, role, name). +- Изменить количество виртуальных серверов в группе. +- Изменить параметры сети (ext_net, VINS). +- Создать группу виртуальных серверов и подключить её к Basic сервису. +- Удалить группу виртуальных серверов. + +## Параметры модуля decort_group +Ниже приведен полный список параметров для модуля decort_group. + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр 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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы 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`.| +|id | (int) | Уникальный целочисленный идентификатор группы виртуальных серверов.| +| image_id | (int) | Уникальный целочисленный идентификатор образа операционной системы. Используется для создания виртуальных серверов в группе. | +| image_name | (string) | Имя образа операционной системы. Используется для создания виртуальных серверов в группе.| +| driver | (string) | Тип виртуального сервера. Прим. `KVM_X86` | +| boot_disk | (int) | Обьём виртуального диска на виртуальных серверах. | +| bservice_id | (int) | Уникальный целочисленный идентификатор Basic серфиса, в который необходимо добавить группу виртуальных серверов. | +| count | (int) | Количество виртуальных серверов в группе. | +| timeoutStart | (int) | Задержка в секундах до отображения группы виртуальных серверов. | +| role | (string) | Роль группы виртуальных серверов. | +| cpu | (int) | Количество ядер процессора на каждом виртуальном сервере в группе. | +| ram | (int) | Объём оперативной памяти на каждом виртуальном сервере в группе. | +| networks | (list) | Список сетей, которые необходимо подключить к каждому виртуальному серверу в группе | +| description | (string) | Описание группы виртуальных серверов. | +|verify_ssl | (bool) | True <- default False Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.| +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | +|workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.| + +## Возвращаемые значения модуля decort_group + +Модуль decort_group возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, к которому привязана данная группа виртуальных серверов. | +| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится данная группа виртуальных серверов. | +| id | int | Уникальный целочисленный идентификатор данной группы виртуальных серверов.| +| name | string | Имя данной группы виртуальных серверов.| +| techStatus | string | Технический статус данной группы виртуальных серверов. | +| state | string | Текущее состояние группы виртуальных серверов. Корректные состояния: absent, started, stopped, present, check.| +| Computes | string | Уникальные целочисленные идентификаторы виртуальных серверов, входящих в группу. | + +## Пример использования модуля decort_group + +Данный пример создаёт группу виртуальных серверов с названием test_group. +``` +- hosts: localhost + tasks: + - name: create + decort_group: + authenticator: oauth2 + verify_ssl: False + controller_url: "https://ds1.digitalenergy.online" + state: present + bservice_id: 1823 + count: 2 + name: "test_group" + cpu: 2 + ram: 2 + boot_disk: 10 + image_id: 518 + driver: "KVM_X86" + timeoutStart: 5 + networks: + - type: VINS + id: 1987 + delegate_to: localhost + register: group_test +``` + +Данный пример удаляет группу виртуальных серверов с названием test_group. + +``` +- hosts: localhost + tasks: + - name: create + decort_group: + authenticator: oauth2 + verify_ssl: False + controller_url: "https://ds1.digitalenergy.online" + state: absent + bservice_id: 1823 + name: "test_group" + delegate_to: localhost + register: group_test +``` \ No newline at end of file diff --git a/5.2.6/модуль-decort_jwt.md b/5.2.6/модуль-decort_jwt.md new file mode 100644 index 0000000..0726013 --- /dev/null +++ b/5.2.6/модуль-decort_jwt.md @@ -0,0 +1,56 @@ +# 03.07 Вспомогательный модуль для получения авторизационного 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) | Срок действия JWT в секундах. Данный параметр является опциональным, значение по умолчанию - 3600 сек.| +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес авторизационного сервера, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +|workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована.| +|workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов workflow_callback данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована.| +## Возвращаемые значения модуля decort_jwt + +При успешном выполнении модуль decort_jwt возвращает словарь, в котором по ключу jwt находится значение JWT-токена (тип string). + +## Пример использования модуля decort_jwt + +В данном примере сначала получается JWT со сроком действия 1200 сек., а затем этот JWT используется для создания виртуального сервера в режиме авторизации jwt (подробнее о данном режиме см. в разделе «Примеры различных режимов авторизации»). +``` +- hosts: ansible_master + 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 + delegate_to: localhost + register: my_token +``` +``` + - name: manage KVM VM in JWT authorization mode + decort_kvmvm: + authenticator: jwt + jwt: "{{ my_token.jwt }}" + controller_url: "https://cloud.digitalenergy.online" + name: NewVM01 + state: present + cpu: 2 + ram: 4096 + <<<дальнейшие детали опущены>>> +``` +Обратите внимание, как используется JWT при создании нового виртуального сервера (в предположении, что результат выполнения task для модуля decort_jwt был сохранен в переменной my_token): +``` + jwt: "{{ my_token.jwt }}" +``` \ No newline at end of file diff --git a/5.2.6/модуль-decort_k8s.md b/5.2.6/модуль-decort_k8s.md new file mode 100644 index 0000000..a4fbc15 --- /dev/null +++ b/5.2.6/модуль-decort_k8s.md @@ -0,0 +1,102 @@ +# 03.10 Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль decort_k8s предназначен для выполнения следующих действий над кластерами Kubernetes, созданными в облачной платформе DECORT: +- Создание/удаление кластера Kubernetes. +- Enable/Disable кластера Kubernetes. +- Запуск/Остановка кластера Kubernetes +- Модификация кластера Kubernetes +- Получение идентификатора образа Kubernetes по имени образа. + + +## Параметры модуля decort_k8s +Ниже приведен полный список параметров для модуля decort_k8s: + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. | +| authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы 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`. | +| verify_ssl | (bool) | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована. | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, к которому привязан кластер. | +| account_name | (string) | Имя аккаунта, к которому привязан кластер. | +| annotation | (string) | Аннотации для рабочих групп в кластере Kubernetes. | +| quotas | (dict) | Библиотека, содержащая квоты. | +| state | (string) | Состояние кластера. Поддерживаемые состояния: absent, disabled, enabled, present,check. | +| permanent | (bool) | Параметр, отвечающий за полное удаление кластера. При значениие `True` кластер будет полностью удалён, при значении `False` кластер будет перемещён в корзину. | +| started | (bool) | Параметр, отвечающий за запуск кластера после создания. При значении `True`, после создания кластер будет автоматически запущен. | +| name | (string) | Имя кластера Kubernetes. | +| id | (int) | Уникальный целочисленный идентификатор кластера Kubernetes, позволяющий удалять, изменять и получать сведения о кластере Kubernetes. | +| getConfig | (bool) | Параметр, передающий конфигурационный файл кластера Kubernetes, при значении `True`. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, в которой находится кластер Kubernetes. | +| rg_name | (int) | Имя ресурсной группы, в которой находится кластер Kubernetes. | +| k8ci_id | (int) | Уникальный целочисленный идентификатор образа кластера Kubernetes. | +| wg_name | (string) | Имя рабочей группы. В кластере может быть несколько рабочих групп. | +| master_count | (int) | Количество master узлов в рабочей группе. По умолчанию: `1`| +| master_cpu | (int) | Количество ядер процессора на каждом master узле. По умолчанию: `2` | +| master_ram_mb | (int) | Объём оперативной памяти на каждом master узле. По умолчанию: `2048` | +| master_disk_gb | (int) | Объём жесткого диска на каждом master узле. По умолчанию: `10` | +| worker_count | (int) | Количество worker узлов в рабочей группе. По умолчанию: `1`| +| worker_cpu | (int) | Количество ядер процессора на каждом worker узле. По умолчанию: `1` | +| worker_ram_mb | (int) | Объём оперативной памяти на каждом worker узле. По умолчанию: `1024` | +| worker_disk_gb | (int) | Объём жесткого диска на каждом worker узле. По умолчанию: `10` | +| workers | (dict) | Библиотека, в которой необходимо указывать рабочие группы и их параметры. См. пример 13.4 | +| extnet_id | (int) | Уникальный целочисленный идентификатор внешней сети, к которой будет подключен кластер при создании. По умолчанию: `0` | +| description | (string) | Описание кластера. По умолчанию: `Created by decort ansible module` | +| with_lb | (bool) | Отвечает за создание Load Balancer при создании кластера. По умолчанию: `True` | + + + +## Возвращаемые значения модуля decort_k8s + +Модуль decort_k8s возвращает информацию о кластере в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| id | int | Уникальный целочисленный идентификатор данного кластера. | +| name | string | Имя данного кластера. | +| techStatus | string | Технический статус кластера. Возможные технические статусы кластера: STARTED, DELETED, STOPPED, CREATED, , DISABLED, ENABLED, RESTORED, MODELED.| +| state | string | Текущий статус кластера. Поддерживаемые состояния: absent, disabled, enabled, present,check. | +| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится данный кластер. | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, к которому привязан данный кластер. | + + +## Пример использования модуля decort_k8s + + +Пример создания кластера Kubernetes с названием cluster-test. +``` + - name: create a cluster named cluster-test + decort_k8s: + state: present + started: True + getConfig: True + authenticator: jwt + jwt: "{{ token.jwt }}" + controller_url: "https://ds1.digitalenergy.online" + name: "cluster-test" + rg_id: 125 + k8ci_id: 18 + workers: + - name: wg1 + ram: 1024 + cpu: 10 + disk: 10 + num: 1 + - name: wg2 + ram: 1024 + cpu: 10 + disk: 10 + num: 2 + verify_ssl: false + delegate_to: localhost + register: kube + +``` \ No newline at end of file diff --git a/5.2.6/модуль-decort_kvmvm.md b/5.2.6/модуль-decort_kvmvm.md new file mode 100644 index 0000000..05f93b6 --- /dev/null +++ b/5.2.6/модуль-decort_kvmvm.md @@ -0,0 +1,112 @@ +# 03.01 Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль decort_kvmvm предназначен для предназначен для выполнения следующих действий над виртуальными серверами, созданными на базе технологии виртуализации KVM, в облачной платформе DECORT: + +1. Создание нового виртуального сервера указанной аппаратной архитектуры. Платформа поддерживает виртуальные сервера архитектуры Intel x86 и IBM PowerPC. +2. Изменение конфигурации существующего виртуального сервера: + - Изменение количества выделенных CPU и виртуальной ОЗУ. Следует иметь ввиду, что изменение этих параметров в меньшую сторону может потребовать перезагрузки гостевой ОС. + - Увеличение размера загрузочного диска + - Подключение / отключение дополнительных дисковых ресурсов. + - Создание / удаление сетевых подлкючений. +3. Изменение состояния существующего виртуального сервера: + - Выключение / включение. + - Перезагрузка, приостановка / возобновление работы гостевой ОС. +4. Удаление существующего виртуального сервера. +5. Получение информации о существующем виртуальном сервере без изменения его конфигурации. + +## Параметры модуля decort_kvmvm + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_kvmvm. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_kvmvm` + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | int | Уникальный цифровой идентификатор подписчика, владеющего данным виртуальным сервером.Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.| +| account_name | (string) | Имя подписчика, которому будет принадлежать новый виртуальный сервер (или уже принадлежит существующий). Параметр должен задаваться в точном соответствии с тем, как назван нужный подписчик в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов). Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией account_name и rg_name. Если задан `account_id`, то `account_name` игнорируется.| +| 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 | Значения:
`KVM_X86` <- default
`KVM_PPC`
| Аппаратная архитектура виртуального сервера. Данный параметр является обязательным при создании нового вирутального сервера и игнорируется для уже существующего сервера.
Платформа DECORT поддерживает виртуальные серверы KVM аппаратных архитектур Intel x86 и IBM PowerPC. | +| authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | +|boot_disk | (int) | Размер загрузочного диска виртуального сервера в ГБ. Загрузочный диск всегда создаётся на той же системе хранения и в том же пуле, где размещён образ ОС (см. параметры `image_name` или `image_id`), на базе которого создаётся данный виртуальный сервер. Если данный параметр не указан на момент создания виртуального сервера, то размер загрузочного диска будет установлен равным размеру образа ОС.| +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным.| +| cpu | (int) | Количество виртуальных CPU, выделенных виртуальному серверу. Параметр является обязательным при создании нового сервера, во всех других случаях он опциональный. Если указать его для уже существующего сервера, то будет выполнена попытка изменить количество CPU. Следует иметь ввиду, что уменьшение количества CPU у работающего сервера, как правило, потребует его перезагрузки.| +| 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_id` по `image_name` можно использовать модуль `decort_osimage`.| +| image_name | (string) | Название образа ОС, на базе которого следует создать виртуальный сервер. При создании нового виртуального сервера требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются. Параметр `image_name` должен задаваться в точном соответствии с тем, как назван нужный образ ОС в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).| +| 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 of dicts) | Опциональный список словарей, задающих сетевые подключения для данного виртуального сервера. Структура словаря:- (string) type - тип сетевого подключения, одно из VINS или EXTNET; - (int) id - идентификатор сетевого сегмента данного подключения; для type: VINS это VINS ID, для type: EXTNET это ID внешнего сетевого сегмента; - (string) ip_addr - опциональный IP адрес, который надлежит присвоить данному подключению; если данный параметр не указан, то платформа назначит свободный IP адрес из нужного диапазона автоматически. Если этот параметр не задан, то будет создан сервер без сетевых подключений, а если модуль вызван для уже существуюшего сервера, то все его сетевые подключения будут удалены.| +|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль `decort_kvmvm` будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.| +| password | (string) | Пароль для подключения к контроллеру облачной инфраструктуры DECORT в режиме `authenticator: legacy`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать в playbook. Если параметр не задан в playbook, то модуль `decort_kvmvm` будет использовать значение переменной окружения `DECORT_PASSWORD`.| +| ram | (int) | Объем оперативной памяти (RAM) в MB, выделенной данному виртуальному серверу. Параметр является обязательным при создании нового сервера. Если указать его для уже существующего сервера, то будет выполнена попытка изменить объем выделенной серверу памяти. Следует иметь ввиду, что уменьшение объема памяти работающего сервера в большинстве случаев потребует его перезагрузки.| +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер. Данный параметр является одним из методов идентификации существующей RG (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер. Данный параметр является одним из методов идентификации существующей RG, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`, который можно получить с помощью модуля `decort_rg`). Параметр должен задаваться в точном соответствии с тем, как нужная ресурсная группа названа в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| ssh_key | (string) | Открытая часть SSH ключа, который необходимо авторизовать на создаваемом виртуальном сервере для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для Linux серверов, является опциональным, используется только при создании нового сервера и игнорируется при других операциях.| +| ssh_key_user | (string) | Имя пользователя на уровне гостевой ОС (только для Linux серверов) для которого авторизуется SSH ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`, используется только при создании нового сервера и игнорируется при других операциях.| +| state | Значения:
`present` <- default
`absent`
`poweredon`
`poweredoff`
`halted`
`paused`
`check` | Целевое состояние виртуального сервера на выходе из модуля _decort_kvmvm_.
Значение 'halted' - синоним к 'poweredoff'.
Значение 'check' вызывает модуль в _read-only_ режиме и считывает характеристики существующего виртуального сервера. | +| tags | (string) | Строка, содержащая набор текстовых меток, которые надлежит присвоить данному виртуальному серверу. Данные текстовые метки представляют собой произвольный текст, который можно использовать для группировки и индексирования виртуальных серверов во внешних приложениях. Параметр является опциональным.| +| user | (string) | Имя пользователя, непосредственно зарегистрированного на контроллере облачной инфраструктуры DECORT, которое используется для подключения к контроллеру в режиме `authenticator: legacy`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль `decort_kvmvm` будет использовать значение переменной окружения `DECORT_USER`.| +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована.| +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля `decort_kvmvm` не реализована.| + + +## Возвращаемые значения модуля decort_kvmvm + +Модуль decort_kvmvm возвращает информацию о виртуальном сервере в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int |Цифровой идентификатор подписчика, владеющего данным виртуальным сервером.| +| account_name | string | Имя подписчика, владеющего данным виртуальным сервером.| +| arch | string | Аппаратная архитектура данного виртуального сервера. Допустимые значения: KVM_X86 для Intel x86 и KVM_PPC для IBM PowerPC.| +| cpu | int | Количество виртуальных CPU, выделенных данному виртуальному серверу.| +| data_disks | list of ints | Список идентификаторов data-дисков, в настоящий момент подключенных к данному серверу.| +| disk_size | int | Размер загрузочного диска в ГБ.| +| id | int | Уникальный цифровой идентификатор данного виртуального сервера (экземпляра compute) в платформе DECORT.| +| name | string | Имя виртуального сервера. Имя уникально только в рамках одной и той же ресурсной группы.| +| password | string | Пароль системного пользователя по умолчанию.| +| private_ips | list of strings | Список IP адресов на сетевых интерфейсах сервера, которые подключены к виртуальным сетевым сегментам (Virtual Network Segments, ViNS).| +| public_ips | list of strings | Список IP адресов на сетевых интерфейсах сервера, которые подключены непосредственно к внешним сетевым сегментам (external network segments).| +| ram | int | Объём ОЗУ в МБ, выделенный виртуальному серверу.| +| rg_id | int | Уникальный цифровой идентификатор ресурсной группы (RG), к которой принадлежит данный сервер.| +| state | string | Состояние виртуального сервера.| +| username | string |Имя системного пользователя по умолчанию.| + +## Пример использования модуля decort_kvmvm + +В данном примере создается виртуальный сервер KVM VM по имени MyFirstVM с аппаратной архитектурой Intel x86. +``` +- name: create new x86 KVM VM according to the specs + decort_kvmvm: + 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: MyFirstVM + arch: KVM_X86 + state: present + cpu: 2 + ram: 4096 + boot_disk: 10 + image_id: "{{ my_img.facts.id }}" + networks: + - type: VINS + id: "{{ my_vins.facts.id }}" + rg_id: "{{ my_rg.facts.id }}" + annotation: "My 1st VM created and managed with DECORT KVMVM module" + delegate_to: localhost + register: new_vm +``` + +Виртуальный сервер создаётся на базе некоторого системного образа (дискового ресурса, содержащего операционную систему). В данном примере системный образ задаётся по его идентификатору (image_id: "{{ my_img.facts.id }}"). Для получения такого идентификатора можно использовать модуль decort_osimage. + +Виртуальный сервер всегда создаётся в принадлежности к некоторой ресурсной группе. В данном примере соответствующая ресурсная группа задаётся по её идентификатору (rg_id: "{{ my_rg.facts.id }}"). Для управления ресурсными группами предназначен модуль decort_rg. С помощью этого модуля можно также получит идентификатор ресурсной группы, чтобы использовать его при создании виртуального сервера. + +Для управления сетевыми подключениями виртуального сервера в модуле decort_kvmvm используется параметр networks, представляющий собой список с описанием требующихся подключений. В данном примере задано одно подключение в виртуальному сетевому сегменту (type: VINS) с указанным идентификатором (id: "{{ my_vins.facts.id }}"). Для управления виртуальными сетевыми сегментами и получения их идентификаторов служит модуль decort_vins. \ No newline at end of file diff --git a/5.2.6/модуль-decort_osimage.md b/5.2.6/модуль-decort_osimage.md new file mode 100644 index 0000000..60cdbbb --- /dev/null +++ b/5.2.6/модуль-decort_osimage.md @@ -0,0 +1,135 @@ +# 03.02 Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: + +1. Создание нового образа операционной системы для виртуальных машин. +2. Создание виртуального образа для образа операционной системы. +3. Изменение имени образа (в случае изменения имени виртуального образа, имя и id виртуального образа указываются как image_name и image_id. +4. Привязка другого образа операционной системы к виртуальному образу. +5. Удаление существующего образа, привязанного к аккаунту. +6. Получение информации об образе. + +Также данный модуль может быть полезен при массовом создании экземпляров compute (напр., виртуальных серверов) на базе одного и того же образа, так как позволяет оптимизировать количество API вызовов, инициируемых в адрес контроллера облачной платформы. + +## Параметры модуля decort_osimage +Ниже приведен полный список параметров для модуля decort_osimage. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: + + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID. | +| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. | +| authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы 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`. | +| verify_ssl | (bool) | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована. | +| account_Id | (string) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа операционной системы.| +| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последвии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа операционной системы.| +| state | (string) | Состояние образов. При значении present идет создание образов операционной системы, к которым привязан указанный в `account_Id` или `account_name` аккаунт. При значении absent идет их удаление. | +| drivers | (string) | Список типов compute (напр., виртуальных серверов), подходящих для образа операционной системы. Прим. `KVM_X86`. Используется при создании образа операционной системы.| +| architecture | (string) | Бинарная архитектура образа. Прим. `X86_64` или `PPC64_LE`. Используется при создании образа операционной системы.| +| imagetype | (string) | Тип образа. `linux`, `windows` или `other`. По умолчанию установлено `linux`. Используется при создании образа операционной системы.| +| boottype | (string) | Тип загрузки образа. `bios` или `uefi`. По умолчанию установлено `uefi`. Используется при создании образа операционной системы.| +| url | (string) | Унифицированный указатель ресурса (URL), указывающий на образ iso операционной системы. Используется при создании образа операционной системы.| +| sepId | (integer) | Уникальный целочисленный идентификатор конечной точки провайдера хранения. Указывается в паре с `poolName`. Используется при создании образа операционной системы.| +| poolName | (string) | Пул, в котором будет создан образ. Указывается в паре с `sepId`. Используется при создании образа операционной системы.| +| hotresize | (bool) | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы.| +| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа операционной системы. | +| image_password | (string) | Опциональный пароль для образа. Используется при создании образа операционной системы. Используется при создании образа операционной системы.| +| usernameDL | (string) | Имя пользователя для загрузки бинарного носителя. Используется в паре с `passwordDL`. Используется при создании образа операционной системы. | +| passwordDL | (string)| Пароль для загрузки бинарного носителя. Используется в паре с `usernameDL`. Используется при создании образа операционной системы. | +| permanently | (bool) | Навсегда ли удалить образ. Используется при удалении убраза. По умолчанию установлено false.| + + +## Возвращаемые значения модуля decort_osimage + +Модуль decort_osimage возвращает информацию о XXX в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| arch | string | Аппаратная архитектура, с которой совместим данный образ. Возможные значения: X86_64 (Intel x86), PPC64_LE (IBM PowerPC). | +| id | int | Уникальный целочисленный идентификатор данного образа. | +| linkto | int | Уникальный целочисленный идентификатор образа операционной системы, который привязан к данному виртуальному. | +| name | string | Имя образа. Обратите внимание, что имя образа может содержать пробелы. | +| pool | string | Пул на системе хранения данных, в котором находится данный образ.| +| sep_id |int | Идентификатор системы хранения (Storage Endpoint Provider), на которой хранится данный образ. | +| size |int | Размер образа в ГБ. Загрузочный диск экземпляра compute, создаваемого на базе данного образа, должен иметь как минимум такой же размер. | +| state | string | Текущий статус образа. Возможные значения: CREATED, DISABLED, DESTROYED. Экземпляры compute можно создавать только на базе образов, которые находятся в статусе CREATED.| +| type | string | Тип операционной системы внутри данного образа. Возможные значения: Linux, Windows.| + + + +## Пример использования модуля decort_osimage + + +Пример создания образа операционной системы Alpine Linux. +``` + - name: create_osimage + decort_osimage: + authenticator: oauth2 + verify_ssl: False + controller_url: "https://ds1.digitalenergy.online" + state: present + image_name: "alpine_linux3.14.0" + account_Id: 12345 + url: "https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-virt-3.14.0-x86_64.iso" + boottype: "uefi" + imagetype: "linux" + hotresize: False + image_username: "test" + image_password: "p@ssw0rd" + usernameDL: "testDL" + passwordDL: "p@ssw0rdDL" + architecture: "X86_64" + drivers: "KVM_X86" + delegate_to: localhost + register: osimage +``` + +Пример получения образа операционной системы по имени образа. + +``` + - name: get_osimage + decort_osimage: + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: "alpine_linux_3.14.0" + account_Id: 12345 + delegate_to: localhost + register: osimage +``` + +Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой образ операционной системы, он привяжет к себе указанный в примере образ операционной системы. + +``` + - name: create_virtual_osimage + decort_osimage: + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: "alpine_linux_3.14.0" + virt_name: "alpine_last" + delegate_to: localhost + register: osimage +``` +Обратите внимание, что в данным примере можно использовать как image_name, так и image_id. Также можно использовать либо virt_name, либо virt_id. + +Пример переименования образа. + +``` + - name: rename_osimage + decort_osimage: + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_name: "alpine_linux_3.14.0v2.0" + image_id: 54321 + delegate_to: localhost + register: osimage +``` + diff --git a/5.2.6/модуль-decort_pfw.md b/5.2.6/модуль-decort_pfw.md new file mode 100644 index 0000000..18eca68 --- /dev/null +++ b/5.2.6/модуль-decort_pfw.md @@ -0,0 +1,73 @@ +# 03.04 Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль decort_pfw предназначен для управления правилами трансляции сетевых портов для указанного экземпляра Compute (например, для виртуального сервера, созданного с помощью decort_kvmvm). + +##Параметры модуля 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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | +|compute_id | (int) | Идентификатор экземпляра Compute (напр., виртуального сервера), для которого требуется настроит правила.| +|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 of dicts) | Список словарей, задающих правила трансляции сетевых портов. Правила могут задавать как трансляцию "один к одному", так и "диапазон в диапазон". Структура словаря: (int) public_port_start - номер внешнего порта (на публичном интерфейсе ViNS, заданного параметром vins_id) для начала диапазона. (int) public_port_end - номер внешнего порта для конца диапазона. Если требуется правило "один к одному", то public_port_end можно не указывать или указать равным public_port_start. (int) local_port - номер порта на интерфейсе экземпляра Compute, заданного параметром compute_id. Если задаётся правило "диапазон в диапазон", то local_port становится началом диапазона для трансляции. В случае правила "один к одному" public_port_start просто транслируется в local_port (string) proto - протокол, tcp или udp.| +| state | Значения:
`present` <- default
`absent`
`check`
| Целевое состояние правил.
Если `state=absent`, то будут удалены все правила для указанного `compute_id` независимо от содержания параметра `rules`. В противном случае набор правил на выходе из модуля будет соответствовать тому, который содержится в параметре `rules`.
Если задан `state=check`, то модуль запускается в режиме read-only и возвращает текущие настройки правил трансляции сетевых портов для указанных `compute_id` и `vins_id`. | +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +|vins_id | (int) | Идентификатор виртуального сетевого сегмента (Virtual Network Segment, ViNS), в рамках которого настраиваются правила трансляции сетевых портов. Экземпляр Compute, заданный в параметре `compute_id`, должен быть уже подключён к данному ViNS.| +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | +|workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована.| + +## Возвращаемые значения модуля decort_pfw + +Модуль decort_pfw возвращает информацию о правилах трансляции сетевых портов и сопутсвтующую информацию в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +|compute_id | int | Идентификатор compute, для которого настроены перечисленные правила трансляции.| +|public_ip | string |IP адрес на внешнем сетевом интерфейсе ViNS. Перечисленные ниже правила трансляции настраиваются на этом интерфейсе.| +|rules | list of dict | Список словарей, описывающих правила трансляции сетевых портов. Структура словаря: (int) id - идентификатор правила. (int) publicPortStart - номер внешнего порта (на публичном интерфейсе ViNS, см. public_ip) для начала диапазона. (int) publicPortEnd - номер внешнего порта для конца диапазона. Если требуется правило "один к одному", то publicPortEnd можно не указывать или указать равным publicPortStart. (int) localPort - номер порта на интерфейсе экземпляра Compute, заданного параметром compute_id. Если задаётся правило "диапазон в диапазон", то localPort указывает начало диапазона для трансляции. В случае правила "один к одному" publicPortStart просто транслируется в localPort. (string) protocol - протокол, tcp или udp.| +|state | string | Статус правил. Для корректно отработавшего модуля это поле должно иметь значение "PRESENT".| +|vins_id | int | Идентификатор виртуального сетевого сегмента (ViNS), в котором настроены перечисленные выше правила трансляции.| + +## Пример использования модуля decort_pfw + +В данном примере для ранее созданного экземпляра KVM VM compute (идентифицируется по compute_id), подключённого к указанному виртуальному сетевому сегменту (идентифицируется по vins_id) настраиваются два правила трансляции сетевых портов: + +- Правило "один к одному": внешний порт 30022 -> внутренний порт 22, протокол tcp. +- Правило "диапазон в диапазон": внешние порты с 30080 по 30085 включительно -> внутренние порты начиная с 30080, протокол tcp. + +``` +- name: manage port forwarding rules + decort_pfw: + authenticator: oauth2 + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + oauth2_url: "https://sso.digitalenergy.online" + controller_url: "https://cloud.digitalenergy.online" + compute_id: "{{ my_kvmvm.facts.id }}" + vins_id: "{{ my_vins01.facts.id }}" + rules: + - public_port_start: 30022 + local_port: 22 + proto: tcp + - public_port_start: 30080 + public_port_end: 30085 + local_port: 30080 + proto: tcp + state: present + register: my_pfw + delegate_to: localhost +``` + +В данном примере результат выполнения модуля decort_pfw записывается в переменную my_pfw. Для доступа к списку правил используйте следующую конструкцию: + +`"{{ my_pfw.facts.rules }}"` diff --git a/5.2.6/модуль-decort_rg.md b/5.2.6/модуль-decort_rg.md new file mode 100644 index 0000000..427d475 --- /dev/null +++ b/5.2.6/модуль-decort_rg.md @@ -0,0 +1,223 @@ +# 03.05 Модуль 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), в рамках которой создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя учётной записи (account), в рамках которой создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным. | +| def_netType | (string)
Значения:
`PRIVATE` <- default
`PUBLIC`
`NONE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также, чтобы изменить ресурсную группу по умолчанию. Не обязателен. | +| def_netId | (int) | Уникальный целочисленный идентификатор сети (ViNS), используется для изменения сети по умолчанию в ресурсной группе. | +| extNetIp | (string) | IP-адрес внешней сети, к которой ресурсная группа будет подключена при создании. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| ipcidr | (string) | IP-адрес приватной сети. Используется при создании ресурсной группы, чтобы задать ip адрес ViNS, который создастся вместе с ресурсной группой. Задаётся при параметре `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) | Зарезервировано для будущих расширений, предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| resType | (list) | Типы ресурсов, которые можно создать в ресурсной группе. | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. | +| state | Значения:
`present` <- default
`absent`
`enabled`
`disabled` | Целевое состояние ресурсной группы. | +| permanently | (bool)
`False` <- default
`True` | Параметр, использующийся при удалении ресурсной группы, при значении True - ресурсная группа удалится навсегда, а при False - попадёт в корзину. | +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля не реализована. | +| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.
Функциональность callbacks в текущей версии модуля не реализована. | + +## Возвращаемые значения модуля decort_rg + +Модуль decort_rg возвращает информацию о XXX в виде словаря facts со следующими ключами: +| Ключ | Тип данных | Описание | +|------|------------|----------| +| account_id | int | Уникальный целочисленный идентификатор учётной записи (account), которому принадлежит данная ресурсная группа. | +| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. | +| id | int | Уникальный целочисленный идентификатор ресурсной группы. | +| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках учётной записи, которой принадлежит данная ресурсная группа. | +| state | string | Текущее состояние ресурсной группы. Корректные состояния: CREATED, DISABLED, DELETED, DESTROYED | +| quota | dict | Текущие квоты ресурсной группы. | +| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. | +| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. | +| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. Корректные типы сети по умолчанию: NONE, PRIVATE, PUBLIC. | + +## Пример использования модуля 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" + 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" + 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" + quotas: + cpu: 16 + ram: 16384 + disk: 100 + ext_ips: 20 + net_transfer: 1000 + resType: + - vins + - compute + 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" + 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" + resType: + - vins + - compute + - k8s + - openshift + - lb + - flipgroup + 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/5.2.6/модуль-decort_vins.md b/5.2.6/модуль-decort_vins.md new file mode 100644 index 0000000..c2a2bd2 --- /dev/null +++ b/5.2.6/модуль-decort_vins.md @@ -0,0 +1,120 @@ +# 03.06 Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для создания, изменения, получения текущих характеристик и удаления виртуального сетевого сегмента (Virtual Network Segment, ViNS). +Позволяет: +- Создавать, удалять виртуальные сетевые сегменты. +- Изменять виртуальные сетевые сегменты. +- Запрашивать информацию о виртуальных сетевых сегментах. +- Восстанавливать удалённые виртуальные сетевые сегменты. +- Соединять виртуальные сетевые сегменты. + +## Параметры модуля decort_vins + +Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: +`ansible-doc -t module decort_vins` + + +|Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +|account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный ViNS. При идентификации виртуального сетевого сегмента по имени (см. параметр `vins_name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя учётной записи (account), которой принадлежит данный ViNS. При идентификации виртуального сетевого сегмента по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|annotation | (string)| Текстовое описание виртуального сетевого сегмента. Данный аргумент является опциональным и учитывается только при создании ViNS, а при всех прочих операциях игнорируется.| +|app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.| +|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.| +| authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | +|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным. ext_net_id (int) Данный аргумент контролирует подключение виртуального сетевого сегмента во внешнюю сеть: * -1 (default) - ViNS не подключён ко внешней сети; * 0 - ViNS подключён ко внешней сети, которую платформа выбирает по умолчанию; * >0 - ViNS подключён ко внешней сети с заданным идентификатором;| +|ext_ip_addr | (string) | Данный аргумент позволяет выбрать IP адрес для подключения виртуального сетевого сегмента ко внешней сети (когда значение аргумента ext_net_id больше либо равно 0) и учитывается только при новых подключених - в рамках модуля `decort_vins` вы не можете изменить внешний IP адрес не меняя идентификатор внешней сети. Параметр является опциональным: если он не задан, то в случае ViNS, подключённого во внешнюю сеть, платформа назначит IP адрес автоматически.| При ручном задании данного параметра следует иметь ввиду, что если будет задан неверный или уже занятый 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) | Идентификатор ресурсной группы, в которой должен быть создан или уже существует ViNS. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.| +|rg_name | (string) | Имя ресурсной группы, в которой должен быть создан или уже существует ViNS. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.| +| state | Значения:
`present` <- default
`absent`
`enabled`
`disabled`
| Целевое состояние ViNS. | +| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | +|vins_id | (int) | Идентификатор виртуального сетевого сегмента. Соответствующий сетевой сегмент должен существовать (таким образом, с помощью `vins_id` нельзя создать новый сегмент, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.| +|vins_name| (string) | Имя виртуального сетевого сегмента. Для идентификации виртуального сетевого сегмента требуется либо vins_name и информация об учётной записи/ресурсной группе, которой принадлежит сегмент, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или учетной записи, на уровне которой существует данный сетевой сегмент.| +| ext_net_id | (int) | Уникальный целочисленный идентификатор внешней сети. | +| mgmtaddr | (str) | Адрес менеджмента интерфейса. В данный параметр указывается ip адрес менеджмента интерфейса, который предоставляет доступ по SSH. | +| custom_config | (bool) | Параметр, отвечающий за использование пользовательской конфигурации. По умолчанию: `False` | +| config_save | (bool) | Параметр, отвечающий за сохранение файла конфигурации. По умолчанию: `False` | +| connect_to | (list) | Список, в котором необходимо указывать виртуальные сетевые сегменты, которые Вы хотите соединить. См. примеры. +|workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль desc_vm будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована.| +|workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов workflow_callback данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована.| + +## Возвращаемые значения модуля decort_vins + +Модуль decort_vins возвращает информацию о виртуальном сетевом сегменте (Virtual Network Segment, ViNS) в виде словаря facts со следующими ключами: + +| Ключ | Тип данных | Описание | +| --- | --- | --- | +| account_id | int | Уникальный целочисленный идентификатор учётной записи (_account_), которой принадлежит ViNS. | +| ext_ip_addr | (string) | IP адрес интерфейса, которым ViNS подключён во внешнюю сеть. Если ViNS не подключён к внешней сети, то пустая строка. | +| ext_net_id | (int) | Идентификатор внешней сети, к которой подключён ViNS. -1 означает, что ViNS в данный момент не подключён к внешней сети. | +| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данного ViNS. | +| id | (int) | Уникальный целочисленный идентификатор ViNS. | +| name | (string) | Имя ViNS. Обратите внимание, что это имя уникально только в рамках учётной записи или ресурсной группы, на уровне которых создан ViNS. | +| int_net_addr | (string) | Адрес внутренней сети ViNS. Обратите внимание, что адреса внутренних сетей всех ViNS, принадлежащих одной и той же учётной записи (независимо от того, создан ли ViNS на уровне учётной записи или ресурсной группы), не пересекаются. | +| rg_id | (int) | Уникальный целочисленный идентификатор учётной ресурсной группы, которой принадлежит данный ViNS. Если данный ViNS создан на уровне учётной записи, то `rg_id=0`. | +| state | (string) | Текущее состояние ViNS.
Корректные состояния: `CREATED`, `ENABLED`, `DISABLED`, `DELETED`, `DESTROYED`. | + + + +## Пример использования модуля decort_vins + +В данном примере создаётся виртуальный сетевой сегмент с именем "MyVins01" (vins_name: "MyVins01"). + +Сетевой сегмент создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей учётной записи "MyMainAccount" (account_name: "MyMainAccount"). Виртуальный сетевой сегмент будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0). +``` + - name: Manage ViNS at resource group level + decort_vins: + authenticator: jwt + jwt: "{{ my_jwt.jwt }}" + controller_url: "https://ds1.digitalenergy.online" + vins_name: "vins_created_by_decort_VINS_module" + state: present + rg_id: 198 + ext_net_id: -1 + ipcidr: "10.20.30.0/24" + mgmtaddr: "10.20.30.1" + custom_config: false + config_save: false + verify_ssl: false + register: my_vins + ``` + +Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор ViNS для подключения к нему виртуального сервера. +``` +- name: manage virtual server + decort_kvmvm: + << для краткости фрагмент опущен >> + networks: + - type: VINS + id: "{{ my_vins.facts.id }}" + << для краткости фрагмент опущен >> +``` + +В данном примере идёт создание виртуального сетевого сегмента, а потом его привязка к виртуальным сетевым сегментам с id 864 и 196. +``` + - name: Manage ViNS at 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" + state: present + rg_id: 98 + connect_to: + - type: VINS + id: 864 + ipaddr: 192.168.5.66 + netmask: 24 + - type: VINS + id: 196 + ipaddr: 192.168.9.133 + netmask: 24 + register: managed_vins + +``` + + diff --git a/5.2.6/полезные-советы.md b/5.2.6/полезные-советы.md new file mode 100644 index 0000000..62efe8f --- /dev/null +++ b/5.2.6/полезные-советы.md @@ -0,0 +1,16 @@ +## 4.1 Как хранить авторизационную информацию отдельно от плейбука. + +В зависимости от метода авторизации нужная информация может передаваться в аргументах app_id & app_secret (пара аргументов), jwt (единичный аргумент) или user & password (пара аргументов). Однако, помещать данную информацию непосредственно в плейбук или роль может быть небезопасным, так как она позволяет любому, кто получил этот файл, осуществить доступ к контроллеру облачной инфраструктуры от лица данного пользователя. + +Если вышеперечисленные параметры не указаны в плейбуке или роли, то Ansible модуль DECORT попытается использовать значения, заданные в соответствующих переменных окружения: + + +| Аргумент | Переменная окружения| +| ------ | ------ | +| app_id | DECORT_APP_ID | +| app_secret | DECORT_APP_SECRET | +| jwt | DECORT_JWT | +| user | DECORT_USER | +| password | DECORT_PASSWORD | + +Поэтому для использования плейбука, не содержащего секретной информации, рекомендуется вместо внесения значений непосредственно в файл перед запуском провайдера установить нужные переменные окружения. \ No newline at end of file diff --git a/5.3.0/Home.md b/5.3.0/Home.md new file mode 100644 index 0000000..c7f062d --- /dev/null +++ b/5.3.0/Home.md @@ -0,0 +1,16 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) +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) - управление балансировщиками нагрузки diff --git a/5.3.0/введение.md b/5.3.0/введение.md new file mode 100644 index 0000000..bcc3cae --- /dev/null +++ b/5.3.0/введение.md @@ -0,0 +1,27 @@ +# Модули 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 +``` diff --git a/5.3.0/модуль-decort_bservice.md b/5.3.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_disk.md b/5.3.0/модуль-decort_disk.md new file mode 100644 index 0000000..4cf625e --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_group.md b/5.3.0/модуль-decort_group.md new file mode 100644 index 0000000..46f651f --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_jwt.md b/5.3.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_k8s.md b/5.3.0/модуль-decort_k8s.md new file mode 100644 index 0000000..0decbad --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_kvmvm.md b/5.3.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..a6008f8 --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_lb.md b/5.3.0/модуль-decort_lb.md new file mode 100644 index 0000000..543a8ac --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_osimage.md b/5.3.0/модуль-decort_osimage.md new file mode 100644 index 0000000..139bc69 --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_pfw.md b/5.3.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_rg.md b/5.3.0/модуль-decort_rg.md new file mode 100644 index 0000000..24dd2b2 --- /dev/null +++ b/5.3.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/5.3.0/модуль-decort_vins.md b/5.3.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/5.3.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/5.4.0/Home.md b/5.4.0/Home.md new file mode 100644 index 0000000..9154892 --- /dev/null +++ b/5.4.0/Home.md @@ -0,0 +1,21 @@ +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) - получение информации об аккаунте \ No newline at end of file diff --git a/5.4.0/введение.md b/5.4.0/введение.md new file mode 100644 index 0000000..d7b4129 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_account_info.md b/5.4.0/модуль-decort_account_info.md new file mode 100644 index 0000000..74f2c98 --- /dev/null +++ b/5.4.0/модуль-decort_account_info.md @@ -0,0 +1,3840 @@ +# Модуль 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 + + Может ли быть удалён. +
+ explicit + + 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 + + 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/5.4.0/модуль-decort_bservice.md b/5.4.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_disk.md b/5.4.0/модуль-decort_disk.md new file mode 100644 index 0000000..4cf625e --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_group.md b/5.4.0/модуль-decort_group.md new file mode 100644 index 0000000..46f651f --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_jwt.md b/5.4.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_k8s.md b/5.4.0/модуль-decort_k8s.md new file mode 100644 index 0000000..0decbad --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_kvmvm.md b/5.4.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..a6008f8 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_lb.md b/5.4.0/модуль-decort_lb.md new file mode 100644 index 0000000..543a8ac --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_osimage.md b/5.4.0/модуль-decort_osimage.md new file mode 100644 index 0000000..139bc69 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_pfw.md b/5.4.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_rg.md b/5.4.0/модуль-decort_rg.md new file mode 100644 index 0000000..24dd2b2 --- /dev/null +++ b/5.4.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/5.4.0/модуль-decort_vins.md b/5.4.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/5.4.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/5.5.0/Home.md b/5.5.0/Home.md new file mode 100644 index 0000000..90df282 --- /dev/null +++ b/5.5.0/Home.md @@ -0,0 +1,22 @@ +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) - управление аккаунтами \ No newline at end of file diff --git a/5.5.0/введение.md b/5.5.0/введение.md new file mode 100644 index 0000000..d7b4129 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_account.md b/5.5.0/модуль-decort_account.md new file mode 100644 index 0000000..f320029 --- /dev/null +++ b/5.5.0/модуль-decort_account.md @@ -0,0 +1,951 @@ +# Модуль 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 + + Может ли быть удалён. +
+ explicit + + 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/5.5.0/модуль-decort_account_info.md b/5.5.0/модуль-decort_account_info.md new file mode 100644 index 0000000..777ef36 --- /dev/null +++ b/5.5.0/модуль-decort_account_info.md @@ -0,0 +1,3843 @@ +# Модуль 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 + + Может ли быть удалён. +
+ explicit + + 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/5.5.0/модуль-decort_bservice.md b/5.5.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_disk.md b/5.5.0/модуль-decort_disk.md new file mode 100644 index 0000000..4cf625e --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_group.md b/5.5.0/модуль-decort_group.md new file mode 100644 index 0000000..46f651f --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_jwt.md b/5.5.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_k8s.md b/5.5.0/модуль-decort_k8s.md new file mode 100644 index 0000000..0decbad --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_kvmvm.md b/5.5.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..a6008f8 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_lb.md b/5.5.0/модуль-decort_lb.md new file mode 100644 index 0000000..543a8ac --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_osimage.md b/5.5.0/модуль-decort_osimage.md new file mode 100644 index 0000000..139bc69 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_pfw.md b/5.5.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_rg.md b/5.5.0/модуль-decort_rg.md new file mode 100644 index 0000000..24dd2b2 --- /dev/null +++ b/5.5.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/5.5.0/модуль-decort_vins.md b/5.5.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/5.5.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/5.6.0/Home.md b/5.6.0/Home.md new file mode 100644 index 0000000..2835851 --- /dev/null +++ b/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/5.6.0/введение.md b/5.6.0/введение.md new file mode 100644 index 0000000..d7b4129 --- /dev/null +++ b/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/5.6.0/модуль-decort_account.md b/5.6.0/модуль-decort_account.md new file mode 100644 index 0000000..11a3656 --- /dev/null +++ b/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/5.6.0/модуль-decort_account_info.md b/5.6.0/модуль-decort_account_info.md new file mode 100644 index 0000000..80d775b --- /dev/null +++ b/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/5.6.0/модуль-decort_bservice.md b/5.6.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/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/5.6.0/модуль-decort_disk.md b/5.6.0/модуль-decort_disk.md new file mode 100644 index 0000000..4cf625e --- /dev/null +++ b/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/5.6.0/модуль-decort_group.md b/5.6.0/модуль-decort_group.md new file mode 100644 index 0000000..46f651f --- /dev/null +++ b/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/5.6.0/модуль-decort_jwt.md b/5.6.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/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/5.6.0/модуль-decort_k8s.md b/5.6.0/модуль-decort_k8s.md new file mode 100644 index 0000000..0decbad --- /dev/null +++ b/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/5.6.0/модуль-decort_kvmvm.md b/5.6.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..a6008f8 --- /dev/null +++ b/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/5.6.0/модуль-decort_lb.md b/5.6.0/модуль-decort_lb.md new file mode 100644 index 0000000..543a8ac --- /dev/null +++ b/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/5.6.0/модуль-decort_osimage.md b/5.6.0/модуль-decort_osimage.md new file mode 100644 index 0000000..139bc69 --- /dev/null +++ b/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/5.6.0/модуль-decort_pfw.md b/5.6.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/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/5.6.0/модуль-decort_rg.md b/5.6.0/модуль-decort_rg.md new file mode 100644 index 0000000..24dd2b2 --- /dev/null +++ b/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/5.6.0/модуль-decort_user_info.md b/5.6.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c77a968 --- /dev/null +++ b/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/5.6.0/модуль-decort_vins.md b/5.6.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/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/6.0.0/Home.md b/6.0.0/Home.md new file mode 100644 index 0000000..2835851 --- /dev/null +++ b/6.0.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/6.0.0/введение.md b/6.0.0/введение.md new file mode 100644 index 0000000..9626538 --- /dev/null +++ b/6.0.0/введение.md @@ -0,0 +1,181 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 10.5.0 +- Python 3.10.12 +- PyJWT 2.9.0 Python module +- requests 2.32.3 Python module +- DynamiX Enterprise 4.1.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/6.0.0/модуль-decort_account.md b/6.0.0/модуль-decort_account.md new file mode 100644 index 0000000..528e5ce --- /dev/null +++ b/6.0.0/модуль-decort_account.md @@ -0,0 +1,992 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` diff --git a/6.0.0/модуль-decort_account_info.md b/6.0.0/модуль-decort_account_info.md new file mode 100644 index 0000000..ff5563d --- /dev/null +++ b/6.0.0/модуль-decort_account_info.md @@ -0,0 +1,3805 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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: + 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/6.0.0/модуль-decort_bservice.md b/6.0.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/6.0.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/6.0.0/модуль-decort_disk.md b/6.0.0/модуль-decort_disk.md new file mode 100644 index 0000000..2c460ca --- /dev/null +++ b/6.0.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 | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| 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/6.0.0/модуль-decort_group.md b/6.0.0/модуль-decort_group.md new file mode 100644 index 0000000..d010816 --- /dev/null +++ b/6.0.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)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| 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/6.0.0/модуль-decort_jwt.md b/6.0.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/6.0.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/6.0.0/модуль-decort_k8s.md b/6.0.0/модуль-decort_k8s.md new file mode 100644 index 0000000..c351148 --- /dev/null +++ b/6.0.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) (необязательный) - идентификатор СХД; если не задан, то используется СХД образа узла
• `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/6.0.0/модуль-decort_kvmvm.md b/6.0.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..4360531 --- /dev/null +++ b/6.0.0/модуль-decort_kvmvm.md @@ -0,0 +1,109 @@ +# Модуль 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`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку 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`.| +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ.
Если параметр не задан, размер будет равен размеру образа.
Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. | +| chipset | (string)
Значения:
`q35`
`i440fx`
Default: `i440fx` | Эмулируемый чипсет. | +| 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` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются.
Если этот параметр и параметр `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` используется для переименования. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| 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 | Архитектура ВМ. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| 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/6.0.0/модуль-decort_lb.md b/6.0.0/модуль-decort_lb.md new file mode 100644 index 0000000..3678b85 --- /dev/null +++ b/6.0.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/6.0.0/модуль-decort_osimage.md b/6.0.0/модуль-decort_osimage.md new file mode 100644 index 0000000..0574bc9 --- /dev/null +++ b/6.0.0/модуль-decort_osimage.md @@ -0,0 +1,131 @@ +# Модуль 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`. | +| 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/6.0.0/модуль-decort_pfw.md b/6.0.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/6.0.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/6.0.0/модуль-decort_rg.md b/6.0.0/модуль-decort_rg.md new file mode 100644 index 0000000..0b48956 --- /dev/null +++ b/6.0.0/модуль-decort_rg.md @@ -0,0 +1,229 @@ +# Модуль 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_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| 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`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | +| 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 | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/6.0.0/модуль-decort_user_info.md b/6.0.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c463324 --- /dev/null +++ b/6.0.0/модуль-decort_user_info.md @@ -0,0 +1,1338 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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/6.0.0/модуль-decort_vins.md b/6.0.0/модуль-decort_vins.md new file mode 100644 index 0000000..43b95ce --- /dev/null +++ b/6.0.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/6.1.0/Home.md b/6.1.0/Home.md new file mode 100644 index 0000000..2835851 --- /dev/null +++ b/6.1.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/6.1.0/введение.md b/6.1.0/введение.md new file mode 100644 index 0000000..62640fd --- /dev/null +++ b/6.1.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.1.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/6.1.0/модуль-decort_account.md b/6.1.0/модуль-decort_account.md new file mode 100644 index 0000000..528e5ce --- /dev/null +++ b/6.1.0/модуль-decort_account.md @@ -0,0 +1,992 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` diff --git a/6.1.0/модуль-decort_account_info.md b/6.1.0/модуль-decort_account_info.md new file mode 100644 index 0000000..ff5563d --- /dev/null +++ b/6.1.0/модуль-decort_account_info.md @@ -0,0 +1,3805 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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: + 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/6.1.0/модуль-decort_bservice.md b/6.1.0/модуль-decort_bservice.md new file mode 100644 index 0000000..2348c45 --- /dev/null +++ b/6.1.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/6.1.0/модуль-decort_disk.md b/6.1.0/модуль-decort_disk.md new file mode 100644 index 0000000..6e7942c --- /dev/null +++ b/6.1.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` игнорируется. | +| description | (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 | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| 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 + description: "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/6.1.0/модуль-decort_group.md b/6.1.0/модуль-decort_group.md new file mode 100644 index 0000000..354c21d --- /dev/null +++ b/6.1.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)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| 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/6.1.0/модуль-decort_jwt.md b/6.1.0/модуль-decort_jwt.md new file mode 100644 index 0000000..4cd124b --- /dev/null +++ b/6.1.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/6.1.0/модуль-decort_k8s.md b/6.1.0/модуль-decort_k8s.md new file mode 100644 index 0000000..9fc51ac --- /dev/null +++ b/6.1.0/модуль-decort_k8s.md @@ -0,0 +1,120 @@ +# Модуль 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_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не применим при изменении существующего кластера.
Значение по умолчанию при создании: `i440fx`. | +| 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`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/6.1.0/модуль-decort_kvmvm.md b/6.1.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..5da2f6c --- /dev/null +++ b/6.1.0/модуль-decort_kvmvm.md @@ -0,0 +1,136 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- создать + - с образом + - без образа + - с загрузочным диском + - без загрузочного диска +- получить информацию +- остановить/приостановить/запустить +- подключить/отключить диски с данными +- подключить/отключить сети +- изменить + - объём загрузочного диска в большую сторону + - количество CPU + - объём ОЗУ + - тэги + - affinity метку + - affinity правила + - anti-affinity правила + - описание + - чипсет + - правило NUMA Affinity + - использование CPU Pinning + - использование Huge Pages + - имя + - XML виртуальной машины +- удалить (безвозвратно) + +## Параметры модуля 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`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| description | (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`.| +| authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | +| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ.
Если параметр не задан, размер будет равен размеру образа.
Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. | +| ci_user_data | (dict) | конфигурация для cloud-init +| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. | +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных процессорах. Чтобы использовать эту функцию, система должна быть предварительно сконфигурирована путем выделения процессоров на физическом узле.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные.
Чтобы отключить все диски, нужно указать пустой список `[]`.| +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `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` используется для переименования. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| 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 | Архитектура ВМ. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных процессорах. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| name | string | Имя ВМ. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| 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 }}" + chipset: Q35 + custom_fields: + fields: + title: TestTitle + cpu: + mode: custom + cache: + mode: disable + register: my_vm +``` \ No newline at end of file diff --git a/6.1.0/модуль-decort_lb.md b/6.1.0/модуль-decort_lb.md new file mode 100644 index 0000000..e0951c4 --- /dev/null +++ b/6.1.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. +
+ description + + (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/6.1.0/модуль-decort_osimage.md b/6.1.0/модуль-decort_osimage.md new file mode 100644 index 0000000..0574bc9 --- /dev/null +++ b/6.1.0/модуль-decort_osimage.md @@ -0,0 +1,131 @@ +# Модуль 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`. | +| 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/6.1.0/модуль-decort_pfw.md b/6.1.0/модуль-decort_pfw.md new file mode 100644 index 0000000..65ccf02 --- /dev/null +++ b/6.1.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/6.1.0/модуль-decort_rg.md b/6.1.0/модуль-decort_rg.md new file mode 100644 index 0000000..c69e206 --- /dev/null +++ b/6.1.0/модуль-decort_rg.md @@ -0,0 +1,229 @@ +# Модуль 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) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (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_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| 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`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | +| 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 | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/6.1.0/модуль-decort_user_info.md b/6.1.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c463324 --- /dev/null +++ b/6.1.0/модуль-decort_user_info.md @@ -0,0 +1,1338 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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/6.1.0/модуль-decort_vins.md b/6.1.0/модуль-decort_vins.md new file mode 100644 index 0000000..3e28adf --- /dev/null +++ b/6.1.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` игнорируется.| +|description | (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/7.0.0/Home.md b/7.0.0/Home.md new file mode 100644 index 0000000..31004d8 --- /dev/null +++ b/7.0.0/Home.md @@ -0,0 +1,25 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью DECS3O](./введение.md#пример-авторизации-с-помощью-decs3o) + - [Пример авторизации с помощью BVS](./введение.md#пример-авторизации-с-помощью-bvs) + - [Пример авторизации с помощью 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) - получение информации о пользователе + - [Модуль decort_snapshot](./модуль-decort_snapshot.md) - управление снимками виртуальной машины diff --git a/7.0.0/введение.md b/7.0.0/введение.md new file mode 100644 index 0000000..261da07 --- /dev/null +++ b/7.0.0/введение.md @@ -0,0 +1,250 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 10.6.0 +- Python 3.10.12 +- PyJWT 2.10.1 Python module +- requests 2.32.3 Python module +- DynamiX Enterprise 4.2.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо: +- либо разместить директории **library** и **module_utils** в одной директории с плейбуками +- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например: +``` +[defaults] +library=./library +module_utils=./module_utils +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. + Так как он содержит секретную информацию, то его не рекомендуется + задавать непосредственно в playbook. Если параметр не задан в playbook, + то модуль будет использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
bvs +
decs3o +
oauth2 +
jwt +
Default: decs3o +
+ Режим аутентификации для получения токена. + Значение oauth2 является устаревшим и равнозначным + decs3o. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ domain + + (str) + + Домен BVS, использующийся для получения токена в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_DOMAIN. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режимах + authenticator: bvs + или authenticator: decs3o. Данный параметр является + обязательным для указанных режимов. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ password + + (str) + + Пароль пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно + в playbook. Если параметр не задан в playbook, модуль будет + использовать значение переменной окружения + DECORT_PASSWORD. +
+ username + + (str) + + Логин пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_USERNAME. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: DECS3O auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + controller_url: https://dynamix.local + oauth2_url: https://sso-dynamix.local +``` + +### Пример авторизации с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: BVS auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + controller_url: https://dynamix.local + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` + +### Пример авторизации с помощью 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/7.0.0/модуль-decort_account.md b/7.0.0/модуль-decort_account.md new file mode 100644 index 0000000..528e5ce --- /dev/null +++ b/7.0.0/модуль-decort_account.md @@ -0,0 +1,992 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` diff --git a/7.0.0/модуль-decort_account_info.md b/7.0.0/модуль-decort_account_info.md new file mode 100644 index 0000000..ff5563d --- /dev/null +++ b/7.0.0/модуль-decort_account_info.md @@ -0,0 +1,3805 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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: + 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/7.0.0/модуль-decort_bservice.md b/7.0.0/модуль-decort_bservice.md new file mode 100644 index 0000000..96a66aa --- /dev/null +++ b/7.0.0/модуль-decort_bservice.md @@ -0,0 +1,82 @@ +# Модуль 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** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется. | +|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) | Имя ресурсной группы базовой службы. | + +## Возвращаемые значения модуля 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/7.0.0/модуль-decort_disk.md b/7.0.0/модуль-decort_disk.md new file mode 100644 index 0000000..551178c --- /dev/null +++ b/7.0.0/модуль-decort_disk.md @@ -0,0 +1,167 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + + +Обратите внимание: + +- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины. +- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками); +- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm). + +## Параметры модуля decort_disk +Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| description | (string)
Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +| 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/с данными. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| 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 + description: "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/7.0.0/модуль-decort_group.md b/7.0.0/модуль-decort_group.md new file mode 100644 index 0000000..cc4a638 --- /dev/null +++ b/7.0.0/модуль-decort_group.md @@ -0,0 +1,97 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен список параметров для модуля **decort_group** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| count | (int) | Количество виртуальных машин. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | + +## Возвращаемые значения модуля 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/7.0.0/модуль-decort_jwt.md b/7.0.0/модуль-decort_jwt.md new file mode 100644 index 0000000..a38b9f3 --- /dev/null +++ b/7.0.0/модуль-decort_jwt.md @@ -0,0 +1,48 @@ +# Модуль decort_jwt +## Обзор модуля +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов для получения токена. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). + +## Параметры модуля decort_jwt +Список параметров для модуля **decort_jwt** почти полностью совпадает с [общими параметрами модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации). + +Отличия от общих параметров: +- Параметр `controller_url` не используется. +- Параметр `jwt` не используется. +- В параметре `authenticator` не используется значение `jwt`. + +## Возвращаемые значения модуля decort_jwt +| Ключ | Тип данных | Описание | +|---| ------ | ------ | +| jwt | str | JWT токен. | + +## Примеры использования +### Пример получения JWT токена с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from DECS3O + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + oauth2_url: https://sso-dynamix.local +``` + +### Пример получения JWT токена с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from BVS + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` diff --git a/7.0.0/модуль-decort_k8s.md b/7.0.0/модуль-decort_k8s.md new file mode 100644 index 0000000..12fcd3e --- /dev/null +++ b/7.0.0/модуль-decort_k8s.md @@ -0,0 +1,112 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- отключить/включить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_k8s +Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| 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. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не применим при изменении существующего кластера.
Значение по умолчанию при создании: `i440fx`. | +| 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`) | +| 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` | Целевое состояние кластера. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети. +| workers | (list) | Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/7.0.0/модуль-decort_kvmvm.md b/7.0.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..1985691 --- /dev/null +++ b/7.0.0/модуль-decort_kvmvm.md @@ -0,0 +1,887 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- **создать** (см. [примеры](#создать)) + - **с указанием описания** (см. параметр **description** и [примеры](#с-указанием-описания)) + - **с указанием объёма загрузочного диска** (см. параметр **boot_disk** и [примеры](#с-указанием-объёма-загрузочного-диска)) + - **с указанием СХД** (см. параметры **sep_id** и **pool** и [примеры](#с-указанием-схд)) + - **с указанием Cloud-init user data** (см. параметр **ci_user_data** и [примеры](#с-указанием-cloud-init-user-data)) + - **с указанием SSH-ключа** (см. параметры **ssh_key** и **ssh_key_user** и [примеры](#с-указанием-ssh-ключа)) + - **с указанием NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#с-указанием-numa-affinity)) + - **с указанием запуска на выделенных процессорах** (см. параметр **cpu_pin** и [примеры](#с-указанием-запуска-на-выделенных-процессорах)) + - **с использованием Huge Pages** (см. параметр **hp_backed** и [примеры](#с-использованием-huge-pages)) + - **с указанием custom_fields** (см. параметр **custom_fields** и [примеры](#с-указанием-custom_fields)) + - **с указанием affinity-метки** (см. параметр **affinity_label** и [примеры](#с-указанием-affinity-метки)) + - **с указанием affinity правил** (см. параметр **aff_rule** и [примеры](#с-указанием-affinity-правил)) + - **с указанием anti-affinity правил** (см. параметр **aaff_rule** и [примеры](#с-указанием-anti-affinity-правил)) + - **с указанием тэгов** (см. параметр **tag** и [примеры](#с-указанием-тэгов)) + - **с образом** (см. параметры **image_id** и **image_name** и [примеры](#с-образом)) + - **без образа** (см. параметры **image_id** и **image_name** и [примеры](#без-образа)) + - **с загрузочным диском** (см. параметр **boot_disk** и [примеры](#с-загрузочным-диском)) + - **без загрузочного диска** (см. параметр **boot_disk** и [примеры](#без-загрузочного-диска)) + - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) +- **получить информацию** (см. [возвращаемые значения](#возвращаемые-значения-модуля-decort_kvmvm) и [примеры](#получение-основной-информации-о-виртуальной-машине)) +- **остановить/приостановить/запустить** (см. параметр **state** и [примеры](#остановитьприостановитьзапустить)) +- **подключить/отключить диски с данными** (см. параметр **data_disks** и [примеры](#подключитьотключить-диски-с-данными)) +- **подключить/отключить сети** (см. параметры **networks** и **network_order_changing** и [примеры](#подключитьотключить-сети)) +- **изменить** (см. [примеры](#изменить)) + - **объём загрузочного диска в большую сторону** (см. параметр **boot_disk** и [примеры](#объём-загрузочного-диска-в-большую-сторону)) + - **количество CPU** (см. параметр **cpu** и [примеры](#количество-cpu)) + - **объём ОЗУ** (см. параметр **ram** и [примеры](#объём-озу)) + - **тэги** (см. параметр **tag** и [примеры](#тэги)) + - **affinity метку** (см. параметр **affinity_label** и [примеры](#affinity-метку)) + - **affinity правила** (см. параметр **aff_rule** и [примеры](#affinity-правила)) + - **anti-affinity правила** (см. параметр **aaff_rule** и [примеры](#anti-affinity-правила)) + - **описание** (см. параметр **description** и [примеры](#описание)) + - **чипсет** (см. параметр **chipset** и [примеры](#чипсет)) + - **правило NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#правило-numa-affinity)) + - **использование CPU Pinning** (см. параметр **cpu_pin** и [примеры](#использование-cpu-pinning)) + - **использование Huge Pages** (см. параметр **hp_backed** и [примеры](#использование-huge-pages)) + - **имя** (см. параметр **name** и [примеры](#имя)) + - **XML виртуальной машины** (см. параметр **custom_fields** и [примеры](#xml-виртуальной-машины)) + - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) +- **удалить (безвозвратно)** (см. параметр **state** и [примеры](#безвозвратно)) + +## Параметры модуля decort_kvmvm +Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| auto_start | (bool) | Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой. | +| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ.
Если параметр не задан, размер будет равен размеру образа.
Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. | +| ci_user_data | (dict) | конфигурация для cloud-init +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных процессорах. Чтобы использовать эту функцию, система должна быть предварительно сконфигурирована путем выделения процессоров на физическом узле.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные.
Чтобы отключить все диски, нужно указать пустой список `[]`.| +| description | (string) | Опциональное описание виртуальной машины. | +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `image_name` игнорируется.
Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. | +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`
• `mtu` (int) (необязательный) - MTU интерфейса; применимо только для `DPDK`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| 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` | Целевое состояние ВМ.
`present` - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
`absent` - виртуальная машина безвозвратно удалена.
`poweredon` - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
`poweredoff` - виртуальная машина остановлена. Если запущена, то будет остановлена.
`halted` - аналогично `poweredoff`.
`paused` - виртуальная машина приостановлена.
Значение по умолчанию при создании: `present`. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь `{}`.| + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| arch | string | Архитектура ВМ. | +| auto_start | bool | Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных процессорах. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| name | string | Имя ВМ. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| password | string | Пароль пользователя ОС по умолчанию. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | +| vnc_password | string | Пароль, используемый для подключения к ВМ через VNC. | + +## Примеры использования + +### Создать + +#### С указанием описания +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + description: vm description + state: present +``` + +#### С указанием объёма загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + boot_disk: 10 + state: present +``` + +#### С указанием СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + sep_id: "{{ sep_id }}" + pool: "{{ sep_pool_name }}" + state: present +``` + +#### С указанием Cloud-init user data +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + ci_user_data: + packages: + - apache2 + write_files: + - content: | +
+ Hello World! +
+ owner: user:user + path: /var/www/html/index.html + hostname: test-apache + ssh_keys: + - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc + state: present +``` + +#### С указанием SSH-ключа +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... + ssh_key_user: user + state: present +``` + +#### С указанием NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + numa_affinity: strict + state: present +``` + +#### С указанием запуска на выделенных процессорах +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + cpu_pin: true + state: present +``` + +#### С использованием Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + hp_backed: true + state: present +``` + +#### С указанием custom_fields +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + custom_fields: + fields: + title: Title + cpu: + mode: custom + vendor: Intel + cache: + mode: disable + topology: + sockets: 1 + cores: 14 + threads: 1 + match: minimum + check: partial + state: present +``` + +#### С указанием affinity-метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity-label + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + affinity_label: label + state: present +``` + +#### С указанием affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + aff_rule: + - topology: compute + policy: RECOMMENDED + mode: EQ + key: key + value: value + state: present +``` + +#### С указанием anti-affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + aaff_rule: + - topology: node + policy: REQUIRED + mode: ANY + key: key + value: value + state: present +``` + +#### С указанием тэгов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with tags + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + tag: + tag1_key: tag1_value + tag2_key: tag2_value + state: present +``` + +#### С образом +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + chipset: Q35 + state: present +``` + +#### Без образа + +##### С загрузочным диском +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + boot_disk: 10 + state: present +``` + +##### Без загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and without boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + state: present +``` + +#### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + auto_start: true + state: present +``` + +### Получение основной информации о виртуальной машине + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by ID + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by name + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" +``` + +### Остановить/приостановить/запустить + +#### Остановить +``` +- name: Example + hosts: localhost + tasks: + - name: Stop VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredoff +``` + +#### Запустить +``` +- name: Example + hosts: localhost + tasks: + - name: Start VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredon +``` + +#### Приостановить +``` +- name: Example + hosts: localhost + tasks: + - name: Pause VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: paused +``` + +### Подключить/отключить диски с данными + +#### Подключить +``` +- name: Example + hosts: localhost + tasks: + - name: Connect data disks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + data_disks: + - "{{ datadisk1_id }}" + - "{{ datadisk2_id }}" +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect data disks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + data_disks: [] +``` + +### Подключить/отключить сети + +#### Подключить не-DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + state: poweredoff +``` + +#### Подключить не-DPDK сети с соблюдением очередности +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM without network order changing + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + network_order_changing: true + state: poweredoff +``` + +#### Подключить DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect DPDK networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: DPDK + id: "{{ dpdk1_id }}" + - type: EMPTY + - type: DPDK + id: "{{ dpdk2_id }}" + mtu: 1500 + state: poweredoff +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect networks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: [] + state: poweredoff +``` + +### Изменить + +#### Объём загрузочного диска в большую сторону +``` +- name: Example + hosts: localhost + tasks: + - name: Increase boot disk size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot_disk: 15 + state: poweredoff +``` + +#### Количество CPU +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU amount + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu: 1 + state: poweredoff +``` + +#### Объём ОЗУ +``` +- name: Example + hosts: localhost + tasks: + - name: Change RAM size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + ram: 512 + state: poweredoff +``` + +#### Тэги +``` +- name: Example + hosts: localhost + tasks: + - name: Change tags + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value +``` + +#### Affinity метку +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity label + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + affinity_label: Affinity label 1 +``` + +#### Affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aff_rule: + - topology: compute + policy: REQUIRED + mode: EQ + key: app + value: main + - topology: node + policy: RECOMMENDED + mode: NE + key: state + value: started +``` + +#### Anti-affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aaff_rule: + - topology: compute + policy: REQUIRED + mode: ANY + key: app + value: main +``` + +#### Описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + description: vm description +``` + +#### Чипсет +``` +- name: Example + hosts: localhost + tasks: + - name: Change chipset + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + chipset: i440fx + state: poweredoff +``` + +#### Правило NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Change NUMA affinity rule + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + numa_affinity: loose + state: poweredoff +``` + +#### Использование CPU Pinning +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU Pinning usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + state: poweredoff +``` + +#### Использование Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Change Huge Pages usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + state: poweredoff +``` + +#### Имя +``` +- name: Example + hosts: localhost + tasks: + - name: Rename VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + name: "{{ new_vm_name }}" +``` + +#### XML виртуальной машины + +##### Изменение +``` +- name: Example + hosts: localhost + tasks: + - name: Change XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + fields: + cpu: + mode: custom + vendor: Intel + cache: + mode: enable + os: + type: + machine: pc-i440fx-artful +``` + +##### Отключение управления ВМ через XML +``` +- name: Example + hosts: localhost + tasks: + - name: Disable XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + disable: true +``` + +#### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена + +##### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable auto starting pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: true +``` + +##### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable auto starting of pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: false +``` + +### Удалить + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: absent +``` diff --git a/7.0.0/модуль-decort_lb.md b/7.0.0/модуль-decort_lb.md new file mode 100644 index 0000000..61b5b91 --- /dev/null +++ b/7.0.0/модуль-decort_lb.md @@ -0,0 +1,782 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- отключить/включить/запустить/перезапустить +- изменить конфигурации backend и frontend +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ description + + (str) +
Default: Managed by Ansible module decort_lb +
+ Описание балансировщика. +
+ 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. Обязательный параметр. +
+ 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 +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. +
+ 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 равнозначны + и соответствуют включённому и запущенному балансировщику. +
+ 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/7.0.0/модуль-decort_osimage.md b/7.0.0/модуль-decort_osimage.md new file mode 100644 index 0000000..6f6dca4 --- /dev/null +++ b/7.0.0/модуль-decort_osimage.md @@ -0,0 +1,124 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + +## Параметры модуля decort_osimage +Ниже приведен список параметров для модуля **decort_osimage** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| boottype | (string)
Default: `uefi` | Тип загрузки образа. Используется при создании образа.| +| 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` | Тип образа. Используется при создании образа.| +| 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-адреса. Используется при создании образа. | +| 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/7.0.0/модуль-decort_pfw.md b/7.0.0/модуль-decort_pfw.md new file mode 100644 index 0000000..45dd2ad --- /dev/null +++ b/7.0.0/модуль-decort_pfw.md @@ -0,0 +1,66 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw +Ниже приведен список параметров для модуля **decort_pfw** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| 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`). | +| 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/7.0.0/модуль-decort_rg.md b/7.0.0/модуль-decort_rg.md new file mode 100644 index 0000000..793e865 --- /dev/null +++ b/7.0.0/модуль-decort_rg.md @@ -0,0 +1,221 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + - изменять доступные пулы СХД + +## Параметры модуля decort_rg +Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | + +## Возвращаемые значения модуля 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 | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/7.0.0/модуль-decort_snapshot.md b/7.0.0/модуль-decort_snapshot.md new file mode 100644 index 0000000..9021585 --- /dev/null +++ b/7.0.0/модуль-decort_snapshot.md @@ -0,0 +1,248 @@ +# Модуль decort_snapshot +## Обзор модуля + +Модуль **decort_snapshot** предназначен для выполнения следующих действий над снимками виртуальных машин: +- **создать** (см. [параметр state](#state) и [примеры](#создать)) +- **удалить** (см. [параметр state](#state) и [примеры](#удалить)) +- **получить основную информацию о снимке** (см. [возвращаемые значения](#основная-информация) и [примеры](#получить-основную-информацию-о-снимке)) +- **получить информацию о размере снимка** (см. [параметр usage](#usage), [возвращаемые значения](#размер-снимка) и [примеры](#получить-информацию-о-размере-снимка)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_snapshot** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + label + + + (str) + + Метка снимка виртуальной машины. Если метка не указана при создании, она будет сгенерирована автоматически на основе даты и времени - vm_name_2024-12-10_16-40-52. +
+ + state + + + (str) +
Значения: +
absent +
present +
+ Целевое состояние. +
absent - снимок удален. +
present - снимок существует. +
+ + usage + + + (bool) +
Default:false +
+ Получить информацию о реальном размере снимка виртуальной машины. +
+ + vm_id + + + (int) + + Идентификатор виртуальной машины. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_snapshot** возвращает информацию о снимке виртуальной машины в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Диски +
+ guid + + str + + Идентификатор снимка +
+ label + + str + + Метка снимка +
+ timestamp + + int + + Временная метка создания снимка +
+ vm_id + + int + + Идентификатор виртуальной машины +
+ +### Размер снимка + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ stored + + float + + Размер снимка +
+ +## Примеры использования + +### Создать + +#### С указанием метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: present +``` + +#### Без указания метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + state: present +``` + +### Удалить +``` +- name: Example + hosts: localhost + tasks: + - name: Delete snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: absent +``` + +### Получить основную информацию о снимке +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic snapshot info + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" +``` + +### Получить информацию о размере снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot usage + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + usage: true +``` diff --git a/7.0.0/модуль-decort_user_info.md b/7.0.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c463324 --- /dev/null +++ b/7.0.0/модуль-decort_user_info.md @@ -0,0 +1,1338 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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/7.0.0/модуль-decort_vins.md b/7.0.0/модуль-decort_vins.md new file mode 100644 index 0000000..4c05f25 --- /dev/null +++ b/7.0.0/модуль-decort_vins.md @@ -0,0 +1,110 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + +## Параметры модуля decort_vins +Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется.| +|description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +|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` | Целевое состояние внутренней сети. | +| 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/7.1.0/Home.md b/7.1.0/Home.md new file mode 100644 index 0000000..866c022 --- /dev/null +++ b/7.1.0/Home.md @@ -0,0 +1,25 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью DECS3O](./введение.md#пример-авторизации-с-помощью-decs3o) + - [Пример авторизации с помощью BVS](./введение.md#пример-авторизации-с-помощью-bvs) + - [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token) +2. 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) - получение информации о пользователе + - [Модуль decort_snapshot](./модуль-decort_snapshot.md) - управление снимками виртуальной машины diff --git a/7.1.0/введение.md b/7.1.0/введение.md new file mode 100644 index 0000000..261da07 --- /dev/null +++ b/7.1.0/введение.md @@ -0,0 +1,250 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 10.6.0 +- Python 3.10.12 +- PyJWT 2.10.1 Python module +- requests 2.32.3 Python module +- DynamiX Enterprise 4.2.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо: +- либо разместить директории **library** и **module_utils** в одной директории с плейбуками +- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например: +``` +[defaults] +library=./library +module_utils=./module_utils +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. + Так как он содержит секретную информацию, то его не рекомендуется + задавать непосредственно в playbook. Если параметр не задан в playbook, + то модуль будет использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
bvs +
decs3o +
oauth2 +
jwt +
Default: decs3o +
+ Режим аутентификации для получения токена. + Значение oauth2 является устаревшим и равнозначным + decs3o. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ domain + + (str) + + Домен BVS, использующийся для получения токена в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_DOMAIN. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режимах + authenticator: bvs + или authenticator: decs3o. Данный параметр является + обязательным для указанных режимов. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ password + + (str) + + Пароль пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно + в playbook. Если параметр не задан в playbook, модуль будет + использовать значение переменной окружения + DECORT_PASSWORD. +
+ username + + (str) + + Логин пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_USERNAME. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: DECS3O auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + controller_url: https://dynamix.local + oauth2_url: https://sso-dynamix.local +``` + +### Пример авторизации с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: BVS auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + controller_url: https://dynamix.local + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` + +### Пример авторизации с помощью 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/7.1.0/модуль-decort_account.md b/7.1.0/модуль-decort_account.md new file mode 100644 index 0000000..528e5ce --- /dev/null +++ b/7.1.0/модуль-decort_account.md @@ -0,0 +1,992 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` diff --git a/7.1.0/модуль-decort_account_info.md b/7.1.0/модуль-decort_account_info.md new file mode 100644 index 0000000..ff5563d --- /dev/null +++ b/7.1.0/модуль-decort_account_info.md @@ -0,0 +1,3805 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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: + 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/7.1.0/модуль-decort_bservice.md b/7.1.0/модуль-decort_bservice.md new file mode 100644 index 0000000..96a66aa --- /dev/null +++ b/7.1.0/модуль-decort_bservice.md @@ -0,0 +1,82 @@ +# Модуль 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** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется. | +|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) | Имя ресурсной группы базовой службы. | + +## Возвращаемые значения модуля 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/7.1.0/модуль-decort_disk.md b/7.1.0/модуль-decort_disk.md new file mode 100644 index 0000000..551178c --- /dev/null +++ b/7.1.0/модуль-decort_disk.md @@ -0,0 +1,167 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + + +Обратите внимание: + +- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины. +- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками); +- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm). + +## Параметры модуля decort_disk +Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| description | (string)
Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +| 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/с данными. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| 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 + description: "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/7.1.0/модуль-decort_group.md b/7.1.0/модуль-decort_group.md new file mode 100644 index 0000000..cc4a638 --- /dev/null +++ b/7.1.0/модуль-decort_group.md @@ -0,0 +1,97 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен список параметров для модуля **decort_group** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| count | (int) | Количество виртуальных машин. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | + +## Возвращаемые значения модуля 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/7.1.0/модуль-decort_jwt.md b/7.1.0/модуль-decort_jwt.md new file mode 100644 index 0000000..a38b9f3 --- /dev/null +++ b/7.1.0/модуль-decort_jwt.md @@ -0,0 +1,48 @@ +# Модуль decort_jwt +## Обзор модуля +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов для получения токена. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). + +## Параметры модуля decort_jwt +Список параметров для модуля **decort_jwt** почти полностью совпадает с [общими параметрами модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации). + +Отличия от общих параметров: +- Параметр `controller_url` не используется. +- Параметр `jwt` не используется. +- В параметре `authenticator` не используется значение `jwt`. + +## Возвращаемые значения модуля decort_jwt +| Ключ | Тип данных | Описание | +|---| ------ | ------ | +| jwt | str | JWT токен. | + +## Примеры использования +### Пример получения JWT токена с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from DECS3O + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + oauth2_url: https://sso-dynamix.local +``` + +### Пример получения JWT токена с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from BVS + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` diff --git a/7.1.0/модуль-decort_k8s.md b/7.1.0/модуль-decort_k8s.md new file mode 100644 index 0000000..12fcd3e --- /dev/null +++ b/7.1.0/модуль-decort_k8s.md @@ -0,0 +1,112 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- отключить/включить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_k8s +Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| 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. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не применим при изменении существующего кластера.
Значение по умолчанию при создании: `i440fx`. | +| 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`) | +| 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` | Целевое состояние кластера. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети. +| workers | (list) | Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/7.1.0/модуль-decort_kvmvm.md b/7.1.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..0eb60df --- /dev/null +++ b/7.1.0/модуль-decort_kvmvm.md @@ -0,0 +1,945 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- **создать** (см. [примеры](#создать)) + - **с указанием описания** (см. параметр **description** и [примеры](#с-указанием-описания)) + - **с указанием объёма загрузочного диска** (см. параметр **boot_disk** и [примеры](#с-указанием-объёма-загрузочного-диска)) + - **с указанием СХД** (см. параметры **sep_id** и **pool** и [примеры](#с-указанием-схд)) + - **с указанием Cloud-init user data** (см. параметр **ci_user_data** и [примеры](#с-указанием-cloud-init-user-data)) + - **с указанием SSH-ключа** (см. параметры **ssh_key** и **ssh_key_user** и [примеры](#с-указанием-ssh-ключа)) + - **с указанием NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#с-указанием-numa-affinity)) + - **с указанием запуска на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#с-указанием-запуска-на-выделенных-ядрах-цп)) + - **с использованием Huge Pages** (см. параметр **hp_backed** и [примеры](#с-использованием-huge-pages)) + - **с указанием custom_fields** (см. параметр **custom_fields** и [примеры](#с-указанием-custom_fields)) + - **с указанием affinity-метки** (см. параметр **affinity_label** и [примеры](#с-указанием-affinity-метки)) + - **с указанием affinity правил** (см. параметр **aff_rule** и [примеры](#с-указанием-affinity-правил)) + - **с указанием anti-affinity правил** (см. параметр **aaff_rule** и [примеры](#с-указанием-anti-affinity-правил)) + - **с указанием тэгов** (см. параметр **tag** и [примеры](#с-указанием-тэгов)) + - **с образом** (см. параметры **image_id** и **image_name** и [примеры](#с-образом)) + - **без образа** (см. параметры **image_id** и **image_name** и [примеры](#без-образа)) + - **с загрузочным диском** (см. параметр **boot_disk** и [примеры](#с-загрузочным-диском)) + - **без загрузочного диска** (см. параметр **boot_disk** и [примеры](#без-загрузочного-диска)) + - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **с указанием чипсета** (см. параметр **chipset** и [примеры](#с-указанием-чипсета)) + - **с указанием предпочтительных ядер** (см. параметр **preferred_cpu_cores** и [примеры](#с-указанием-предпочтительных-ядер)) +- **получить информацию** (см. [возвращаемые значения](#возвращаемые-значения-модуля-decort_kvmvm) и [примеры](#получение-основной-информации-о-виртуальной-машине)) +- **остановить/приостановить/запустить** (см. параметр **state** и [примеры](#остановитьприостановитьзапустить)) +- **подключить/отключить диски с данными** (см. параметр **data_disks** и [примеры](#подключитьотключить-диски-с-данными)) +- **подключить/отключить сети** (см. параметры **networks** и **network_order_changing** и [примеры](#подключитьотключить-сети)) +- **откатить ВМ к состоянию снимка** (см. параметры **rollback_to** и [примеры](#откатить-вм-к-состоянию-снимка)) +- **изменить** (см. [примеры](#изменить)) + - **объём загрузочного диска в большую сторону** (см. параметр **boot_disk** и [примеры](#объём-загрузочного-диска-в-большую-сторону)) + - **количество ЦП** (см. параметр **cpu** и [примеры](#количество-цп)) + - **объём ОЗУ** (см. параметр **ram** и [примеры](#объём-озу)) + - **тэги** (см. параметр **tag** и [примеры](#тэги)) + - **affinity метку** (см. параметр **affinity_label** и [примеры](#affinity-метку)) + - **affinity правила** (см. параметр **aff_rule** и [примеры](#affinity-правила)) + - **anti-affinity правила** (см. параметр **aaff_rule** и [примеры](#anti-affinity-правила)) + - **описание** (см. параметр **description** и [примеры](#описание)) + - **чипсет** (см. параметр **chipset** и [примеры](#чипсет)) + - **правило NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#правило-numa-affinity)) + - **запуск на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#запуск-на-выделенных-ядрах-цп)) + - **использование Huge Pages** (см. параметр **hp_backed** и [примеры](#использование-huge-pages)) + - **имя** (см. параметр **name** и [примеры](#имя)) + - **XML виртуальной машины** (см. параметр **custom_fields** и [примеры](#xml-виртуальной-машины)) + - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **предпочтительные ядра** (см. параметр **preferred_cpu_cores** и [примеры](#предпочтительные-ядра)) +- **удалить (безвозвратно)** (см. параметр **state** и [примеры](#безвозвратно)) + +## Параметры модуля decort_kvmvm +Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| auto_start | (bool) | Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой. | +| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ.
Если параметр не задан, размер будет равен размеру образа.
Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. Значение по умолчанию при создании: `i440fx`.| +| ci_user_data | (dict) | конфигурация для cloud-init +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных ядрах ЦП.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные.
Чтобы отключить все диски, нужно указать пустой список `[]`.| +| description | (string) | Опциональное описание виртуальной машины. | +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `image_name` игнорируется.
Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. | +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`
• `mtu` (int) (необязательный) - MTU интерфейса; применимо только для `DPDK`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. +| preferred_cpu_cores | (list) | Список номеров предпочтительных выделенных ядер ЦП (см. параметр `cpu_pin`). Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список `[]`. | +| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. | +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| rollback_to | (string) | Имя снимка, к состоянию которого необходимо совершить откат ВМ. | +| 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` | Целевое состояние ВМ.
`present` - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
`absent` - виртуальная машина безвозвратно удалена.
`poweredon` - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
`poweredoff` - виртуальная машина остановлена. Если запущена, то будет остановлена.
`halted` - аналогично `poweredoff`.
`paused` - виртуальная машина приостановлена.
Значение по умолчанию при создании: `present`. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь `{}`.| + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| arch | string | Архитектура ВМ. | +| auto_start | bool | Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных ядрах ЦП. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| name | string | Имя ВМ. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| password | string | Пароль пользователя ОС по умолчанию. | +| preferred_cpu_cores | list | Список номеров предпочтительных выделенных ядер ЦП. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| snapshots | list | Список словарей, описывающих снимки ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | +| vnc_password | string | Пароль, используемый для подключения к ВМ через VNC. | + +## Примеры использования + +### Создать + +#### С указанием описания +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + description: vm description + state: present +``` + +#### С указанием объёма загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + boot_disk: 10 + state: present +``` + +#### С указанием СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + sep_id: "{{ sep_id }}" + pool: "{{ sep_pool_name }}" + state: present +``` + +#### С указанием Cloud-init user data +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ci_user_data: + packages: + - apache2 + write_files: + - content: | +
+ Hello World! +
+ owner: user:user + path: /var/www/html/index.html + hostname: test-apache + ssh_keys: + - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc + state: present +``` + +#### С указанием SSH-ключа +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... + ssh_key_user: user + state: present +``` + +#### С указанием NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + numa_affinity: strict + state: present +``` + +#### С указанием запуска на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + cpu_pin: true + state: present +``` + +#### С использованием Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + hp_backed: true + state: present +``` + +#### С указанием custom_fields +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + custom_fields: + fields: + title: Title + cpu: + mode: custom + vendor: Intel + cache: + mode: disable + topology: + sockets: 1 + cores: 14 + threads: 1 + match: minimum + check: partial + state: present +``` + +#### С указанием affinity-метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity-label + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + affinity_label: label + state: present +``` + +#### С указанием affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aff_rule: + - topology: compute + policy: RECOMMENDED + mode: EQ + key: key + value: value + state: present +``` + +#### С указанием anti-affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aaff_rule: + - topology: node + policy: REQUIRED + mode: ANY + key: key + value: value + state: present +``` + +#### С указанием тэгов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with tags + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value + state: present +``` + +#### С образом +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + state: present +``` + +#### Без образа + +##### С загрузочным диском +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot_disk: 10 + state: present +``` + +##### Без загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and without boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + state: present +``` + +#### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + auto_start: true + state: present +``` + +#### С указанием чипсета +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + state: present +``` + +### С указанием предпочтительных ядер +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + state: present +``` + +### Получение основной информации о виртуальной машине + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by ID + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by name + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" +``` + +### Остановить/приостановить/запустить + +#### Остановить +``` +- name: Example + hosts: localhost + tasks: + - name: Stop VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredoff +``` + +#### Запустить +``` +- name: Example + hosts: localhost + tasks: + - name: Start VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredon +``` + +#### Приостановить +``` +- name: Example + hosts: localhost + tasks: + - name: Pause VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: paused +``` + +### Подключить/отключить диски с данными + +#### Подключить +``` +- name: Example + hosts: localhost + tasks: + - name: Connect data disks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + data_disks: + - "{{ datadisk1_id }}" + - "{{ datadisk2_id }}" +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect data disks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + data_disks: [] +``` + +### Подключить/отключить сети + +#### Подключить не-DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + state: poweredoff +``` + +#### Подключить не-DPDK сети с соблюдением очередности +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM without network order changing + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + network_order_changing: true + state: poweredoff +``` + +#### Подключить DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect DPDK networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + networks: + - type: DPDK + id: "{{ dpdk1_id }}" + - type: EMPTY + - type: DPDK + id: "{{ dpdk2_id }}" + mtu: 1500 + state: poweredoff +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect networks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: [] + state: poweredoff +``` + +### Откатить ВМ к состоянию снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Rollback VM to snapshot + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + rollback_to: snapshot_01 + state: poweredoff +``` + +### Изменить + +#### Объём загрузочного диска в большую сторону +``` +- name: Example + hosts: localhost + tasks: + - name: Increase boot disk size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot_disk: 15 + state: poweredoff +``` + +#### Количество ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU amount + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu: 1 + state: poweredoff +``` + +#### Объём ОЗУ +``` +- name: Example + hosts: localhost + tasks: + - name: Change RAM size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + ram: 512 + state: poweredoff +``` + +#### Тэги +``` +- name: Example + hosts: localhost + tasks: + - name: Change tags + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value +``` + +#### Affinity метку +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity label + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + affinity_label: Affinity label 1 +``` + +#### Affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aff_rule: + - topology: compute + policy: REQUIRED + mode: EQ + key: app + value: main + - topology: node + policy: RECOMMENDED + mode: NE + key: state + value: started +``` + +#### Anti-affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aaff_rule: + - topology: compute + policy: REQUIRED + mode: ANY + key: app + value: main +``` + +#### Описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + description: vm description +``` + +#### Чипсет +``` +- name: Example + hosts: localhost + tasks: + - name: Change chipset + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + chipset: i440fx + state: poweredoff +``` + +#### Правило NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Change NUMA affinity rule + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + numa_affinity: loose + state: poweredoff +``` + +#### Запуск на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU Pinning usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + state: poweredoff +``` + +#### Использование Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Change Huge Pages usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + state: poweredoff +``` + +#### Имя +``` +- name: Example + hosts: localhost + tasks: + - name: Rename VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + name: "{{ new_vm_name }}" +``` + +#### XML виртуальной машины + +##### Изменение +``` +- name: Example + hosts: localhost + tasks: + - name: Change XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + fields: + cpu: + mode: custom + vendor: Intel + cache: + mode: enable + os: + type: + machine: pc-i440fx-artful +``` + +##### Отключение управления ВМ через XML +``` +- name: Example + hosts: localhost + tasks: + - name: Disable XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + disable: true +``` + +#### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена + +##### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable auto starting pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: true +``` + +##### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable auto starting of pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: false +``` + +#### Предпочтительные ядра +``` +- name: Example + hosts: localhost + tasks: + - name: Change preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + - 2 + state: poweredoff +``` + +### Удалить + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: absent +``` diff --git a/7.1.0/модуль-decort_lb.md b/7.1.0/модуль-decort_lb.md new file mode 100644 index 0000000..61b5b91 --- /dev/null +++ b/7.1.0/модуль-decort_lb.md @@ -0,0 +1,782 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- отключить/включить/запустить/перезапустить +- изменить конфигурации backend и frontend +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ description + + (str) +
Default: Managed by Ansible module decort_lb +
+ Описание балансировщика. +
+ 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. Обязательный параметр. +
+ 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 +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. +
+ 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 равнозначны + и соответствуют включённому и запущенному балансировщику. +
+ 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/7.1.0/модуль-decort_osimage.md b/7.1.0/модуль-decort_osimage.md new file mode 100644 index 0000000..6f6dca4 --- /dev/null +++ b/7.1.0/модуль-decort_osimage.md @@ -0,0 +1,124 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + +## Параметры модуля decort_osimage +Ниже приведен список параметров для модуля **decort_osimage** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| boottype | (string)
Default: `uefi` | Тип загрузки образа. Используется при создании образа.| +| 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` | Тип образа. Используется при создании образа.| +| 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-адреса. Используется при создании образа. | +| 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/7.1.0/модуль-decort_pfw.md b/7.1.0/модуль-decort_pfw.md new file mode 100644 index 0000000..45dd2ad --- /dev/null +++ b/7.1.0/модуль-decort_pfw.md @@ -0,0 +1,66 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw +Ниже приведен список параметров для модуля **decort_pfw** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| 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`). | +| 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/7.1.0/модуль-decort_rg.md b/7.1.0/модуль-decort_rg.md new file mode 100644 index 0000000..793e865 --- /dev/null +++ b/7.1.0/модуль-decort_rg.md @@ -0,0 +1,221 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + - изменять доступные пулы СХД + +## Параметры модуля decort_rg +Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | + +## Возвращаемые значения модуля 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 | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/7.1.0/модуль-decort_snapshot.md b/7.1.0/модуль-decort_snapshot.md new file mode 100644 index 0000000..9021585 --- /dev/null +++ b/7.1.0/модуль-decort_snapshot.md @@ -0,0 +1,248 @@ +# Модуль decort_snapshot +## Обзор модуля + +Модуль **decort_snapshot** предназначен для выполнения следующих действий над снимками виртуальных машин: +- **создать** (см. [параметр state](#state) и [примеры](#создать)) +- **удалить** (см. [параметр state](#state) и [примеры](#удалить)) +- **получить основную информацию о снимке** (см. [возвращаемые значения](#основная-информация) и [примеры](#получить-основную-информацию-о-снимке)) +- **получить информацию о размере снимка** (см. [параметр usage](#usage), [возвращаемые значения](#размер-снимка) и [примеры](#получить-информацию-о-размере-снимка)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_snapshot** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + label + + + (str) + + Метка снимка виртуальной машины. Если метка не указана при создании, она будет сгенерирована автоматически на основе даты и времени - vm_name_2024-12-10_16-40-52. +
+ + state + + + (str) +
Значения: +
absent +
present +
+ Целевое состояние. +
absent - снимок удален. +
present - снимок существует. +
+ + usage + + + (bool) +
Default:false +
+ Получить информацию о реальном размере снимка виртуальной машины. +
+ + vm_id + + + (int) + + Идентификатор виртуальной машины. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_snapshot** возвращает информацию о снимке виртуальной машины в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Диски +
+ guid + + str + + Идентификатор снимка +
+ label + + str + + Метка снимка +
+ timestamp + + int + + Временная метка создания снимка +
+ vm_id + + int + + Идентификатор виртуальной машины +
+ +### Размер снимка + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ stored + + float + + Размер снимка +
+ +## Примеры использования + +### Создать + +#### С указанием метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: present +``` + +#### Без указания метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + state: present +``` + +### Удалить +``` +- name: Example + hosts: localhost + tasks: + - name: Delete snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: absent +``` + +### Получить основную информацию о снимке +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic snapshot info + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" +``` + +### Получить информацию о размере снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot usage + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + usage: true +``` diff --git a/7.1.0/модуль-decort_user_info.md b/7.1.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c463324 --- /dev/null +++ b/7.1.0/модуль-decort_user_info.md @@ -0,0 +1,1338 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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/7.1.0/модуль-decort_vins.md b/7.1.0/модуль-decort_vins.md new file mode 100644 index 0000000..4c05f25 --- /dev/null +++ b/7.1.0/модуль-decort_vins.md @@ -0,0 +1,110 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + +## Параметры модуля decort_vins +Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется.| +|description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +|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` | Целевое состояние внутренней сети. | +| 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/7.2.0/Home.md b/7.2.0/Home.md new file mode 100644 index 0000000..866c022 --- /dev/null +++ b/7.2.0/Home.md @@ -0,0 +1,25 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью DECS3O](./введение.md#пример-авторизации-с-помощью-decs3o) + - [Пример авторизации с помощью BVS](./введение.md#пример-авторизации-с-помощью-bvs) + - [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token) +2. 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) - получение информации о пользователе + - [Модуль decort_snapshot](./модуль-decort_snapshot.md) - управление снимками виртуальной машины diff --git a/7.2.0/введение.md b/7.2.0/введение.md new file mode 100644 index 0000000..261da07 --- /dev/null +++ b/7.2.0/введение.md @@ -0,0 +1,250 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 10.6.0 +- Python 3.10.12 +- PyJWT 2.10.1 Python module +- requests 2.32.3 Python module +- DynamiX Enterprise 4.2.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо: +- либо разместить директории **library** и **module_utils** в одной директории с плейбуками +- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например: +``` +[defaults] +library=./library +module_utils=./module_utils +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. + Так как он содержит секретную информацию, то его не рекомендуется + задавать непосредственно в playbook. Если параметр не задан в playbook, + то модуль будет использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
bvs +
decs3o +
oauth2 +
jwt +
Default: decs3o +
+ Режим аутентификации для получения токена. + Значение oauth2 является устаревшим и равнозначным + decs3o. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ domain + + (str) + + Домен BVS, использующийся для получения токена в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_DOMAIN. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режимах + authenticator: bvs + или authenticator: decs3o. Данный параметр является + обязательным для указанных режимов. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ password + + (str) + + Пароль пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно + в playbook. Если параметр не задан в playbook, модуль будет + использовать значение переменной окружения + DECORT_PASSWORD. +
+ username + + (str) + + Логин пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_USERNAME. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: DECS3O auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + controller_url: https://dynamix.local + oauth2_url: https://sso-dynamix.local +``` + +### Пример авторизации с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: BVS auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + controller_url: https://dynamix.local + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` + +### Пример авторизации с помощью 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/7.2.0/модуль-decort_account.md b/7.2.0/модуль-decort_account.md new file mode 100644 index 0000000..528e5ce --- /dev/null +++ b/7.2.0/модуль-decort_account.md @@ -0,0 +1,992 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` diff --git a/7.2.0/модуль-decort_account_info.md b/7.2.0/модуль-decort_account_info.md new file mode 100644 index 0000000..ff5563d --- /dev/null +++ b/7.2.0/модуль-decort_account_info.md @@ -0,0 +1,3805 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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: + 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/7.2.0/модуль-decort_bservice.md b/7.2.0/модуль-decort_bservice.md new file mode 100644 index 0000000..96a66aa --- /dev/null +++ b/7.2.0/модуль-decort_bservice.md @@ -0,0 +1,82 @@ +# Модуль 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** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется. | +|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) | Имя ресурсной группы базовой службы. | + +## Возвращаемые значения модуля 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/7.2.0/модуль-decort_disk.md b/7.2.0/модуль-decort_disk.md new file mode 100644 index 0000000..2653825 --- /dev/null +++ b/7.2.0/модуль-decort_disk.md @@ -0,0 +1,159 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + +## Параметры модуля decort_disk +Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| description | (string)
Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +| 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` | Целевое состояние диска. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| 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 + description: "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/7.2.0/модуль-decort_group.md b/7.2.0/модуль-decort_group.md new file mode 100644 index 0000000..cc4a638 --- /dev/null +++ b/7.2.0/модуль-decort_group.md @@ -0,0 +1,97 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен список параметров для модуля **decort_group** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| count | (int) | Количество виртуальных машин. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | + +## Возвращаемые значения модуля 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/7.2.0/модуль-decort_jwt.md b/7.2.0/модуль-decort_jwt.md new file mode 100644 index 0000000..a38b9f3 --- /dev/null +++ b/7.2.0/модуль-decort_jwt.md @@ -0,0 +1,48 @@ +# Модуль decort_jwt +## Обзор модуля +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов для получения токена. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). + +## Параметры модуля decort_jwt +Список параметров для модуля **decort_jwt** почти полностью совпадает с [общими параметрами модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации). + +Отличия от общих параметров: +- Параметр `controller_url` не используется. +- Параметр `jwt` не используется. +- В параметре `authenticator` не используется значение `jwt`. + +## Возвращаемые значения модуля decort_jwt +| Ключ | Тип данных | Описание | +|---| ------ | ------ | +| jwt | str | JWT токен. | + +## Примеры использования +### Пример получения JWT токена с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from DECS3O + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + oauth2_url: https://sso-dynamix.local +``` + +### Пример получения JWT токена с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from BVS + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` diff --git a/7.2.0/модуль-decort_k8s.md b/7.2.0/модуль-decort_k8s.md new file mode 100644 index 0000000..d0b0d85 --- /dev/null +++ b/7.2.0/модуль-decort_k8s.md @@ -0,0 +1,114 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- отключить/включить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_k8s +Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| 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. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не поддерживается изменение в существующем кластере.
Значение по умолчанию при создании: `i440fx`. | +| 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`) | +| 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` | Целевое состояние кластера. | +| lb_sysctl | (dict) | Словарь, описывающий параметры конфигурации sysctl балансировщика нагрузки. Может быть задан только если кластер имеет балансировщик нагрузки. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети. +| workers | (list) | Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `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 +| lb_id | int | Идентификатор балансировщика нагрузки. | +| 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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/7.2.0/модуль-decort_kvmvm.md b/7.2.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..f262cc8 --- /dev/null +++ b/7.2.0/модуль-decort_kvmvm.md @@ -0,0 +1,1054 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- **создать** (см. [примеры](#создать)) + - **с указанием описания** (см. параметр **description** и [примеры](#с-указанием-описания)) + - **с указанием объёма загрузочного диска** (см. параметр **boot.disk_size** и [примеры](#с-указанием-объёма-загрузочного-диска)) + - **с указанием СХД** (см. параметры **sep_id** и **pool** и [примеры](#с-указанием-схд)) + - **с указанием Cloud-init user data** (см. параметр **ci_user_data** и [примеры](#с-указанием-cloud-init-user-data)) + - **с указанием SSH-ключа** (см. параметры **ssh_key** и **ssh_key_user** и [примеры](#с-указанием-ssh-ключа)) + - **с указанием NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#с-указанием-numa-affinity)) + - **с указанием запуска на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#с-указанием-запуска-на-выделенных-ядрах-цп)) + - **с использованием Huge Pages** (см. параметр **hp_backed** и [примеры](#с-использованием-huge-pages)) + - **с указанием custom_fields** (см. параметр **custom_fields** и [примеры](#с-указанием-custom_fields)) + - **с указанием affinity-метки** (см. параметр **affinity_label** и [примеры](#с-указанием-affinity-метки)) + - **с указанием affinity правил** (см. параметр **aff_rule** и [примеры](#с-указанием-affinity-правил)) + - **с указанием anti-affinity правил** (см. параметр **aaff_rule** и [примеры](#с-указанием-anti-affinity-правил)) + - **с указанием тэгов** (см. параметр **tag** и [примеры](#с-указанием-тэгов)) + - **с образом** (см. параметры **image_id** и **image_name** и [примеры](#с-образом)) + - **без образа** (см. параметры **image_id** и **image_name** и [примеры](#без-образа)) + - **с загрузочным диском** (см. параметр **boot.disk_size** и [примеры](#с-загрузочным-диском)) + - **без загрузочного диска** (см. [примеры](#без-загрузочного-диска)) + - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **с указанием чипсета** (см. параметр **chipset** и [примеры](#с-указанием-чипсета)) + - **с указанием предпочтительных ядер** (см. параметр **preferred_cpu_cores** и [примеры](#с-указанием-предпочтительных-ядер)) + - **путём клонирования другой ВМ** (см. параметр **clone_from** и [примеры](#путём-клонирования-другой-вм)) +- **получить основную информацию** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-о-виртуальной-машине)) +- **получить ссылку на консоль** (см. параметр **get_console_url** и [примеры](#получение-ссылки-на-консоль)) +- **остановить/приостановить/запустить** (см. параметр **state** и [примеры](#остановитьприостановитьзапустить)) +- **подключить/отключить диски** (см. параметр **disks** и [примеры](#подключитьотключить-диски)) +- **подключить/отключить сети** (см. параметры **networks** и **network_order_changing** и [примеры](#подключитьотключить-сети)) +- **откатить ВМ к состоянию снимка** (см. параметры **rollback_to** и [примеры](#откатить-вм-к-состоянию-снимка)) +- **изменить** (см. [примеры](#изменить)) + - **объём загрузочного диска в большую сторону** (см. параметр **boot.disk_size** и [примеры](#объём-загрузочного-диска-в-большую-сторону)) + - **количество ЦП** (см. параметр **cpu** и [примеры](#количество-цп)) + - **объём ОЗУ** (см. параметр **ram** и [примеры](#объём-озу)) + - **тэги** (см. параметр **tag** и [примеры](#тэги)) + - **affinity метку** (см. параметр **affinity_label** и [примеры](#affinity-метку)) + - **affinity правила** (см. параметр **aff_rule** и [примеры](#affinity-правила)) + - **anti-affinity правила** (см. параметр **aaff_rule** и [примеры](#anti-affinity-правила)) + - **описание** (см. параметр **description** и [примеры](#описание)) + - **чипсет** (см. параметр **chipset** и [примеры](#чипсет)) + - **правило NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#правило-numa-affinity)) + - **запуск на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#запуск-на-выделенных-ядрах-цп)) + - **использование Huge Pages** (см. параметр **hp_backed** и [примеры](#использование-huge-pages)) + - **имя** (см. параметр **name** и [примеры](#имя)) + - **XML виртуальной машины** (см. параметр **custom_fields** и [примеры](#xml-виртуальной-машины)) + - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **предпочтительные ядра** (см. параметр **preferred_cpu_cores** и [примеры](#предпочтительные-ядра)) + - **загрузочный диск** (см. параметр **boot.disk_id** и [примеры](#загрузочный-диск)) +- **удалить (безвозвратно)** (см. параметр **state** и [примеры](#безвозвратно)) + +## Параметры модуля decort_kvmvm +Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| auto_start | (bool) | Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой. | +| boot | (dict) | Параметры загрузки.
Ключи словаря:
• `disk_id` (int) - идентификатор диска, который будет установлен как загрузочный;
• `disk_size` (int) - объём загрузочного диска виртуальной машины в ГБ. Если параметр не задан, размер будет равен размеру образа. Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. Значение по умолчанию при создании: `i440fx`.| +| ci_user_data | (dict) | конфигурация для cloud-init +| clone_from | (dict) | Словарь параметров для создания ВМ путём клонирования другой ВМ.
Ключи словаря:
• `id` (int) (обязательный) - идентификатор клонируемой ВМ
• `force` (bool) - игнорировать, что ВМ запущена; значение по умолчанию: `false`
• `snapshot` (dict) - словарь параметров клонируемого снимка ВМ. Ключи словаря: `name` (str) - название снимка; `timestamp` (int) - unix-время; `datetime` (str) - дата и время в формате `ггггммддччммсс`, альтернатива параметру `timestamp`, допустимо использовать любой разделитель между группами цифр для повышения читаемости, например, `гггг-мм-дд чч:мм:сс`.
Для создания клона также должен быть указан параметр `name` для указания имени клона.| +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных ядрах ЦП.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| description | (string) | Опциональное описание виртуальной машины. | +| disks | (dict) | Словарь, описывающий диски ВМ.
Ключи словаря:
•`mode` (str) - режим работы параметра; значения: `update` (по умолчанию) - указанные диски подключены, `detach` - указанные диски отключены, `delete` - указанные диски отключены и удалены; удаляются только отключаемые диски, `match` - подключены только указанные диски
•`ids` (list) - список идентификаторов дисков; для отключения всех дисков нужно передать пустой список в режиме match. | +| get_console_url | (bool)
Default:
`false` | Получить ссылку на консоль ВМ. | +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `image_name` игнорируется.
Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. | +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`
• `mtu` (int) (необязательный) - MTU интерфейса; применимо только для `DPDK`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. +| preferred_cpu_cores | (list) | Список номеров предпочтительных выделенных ядер ЦП (см. параметр `cpu_pin`). Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список `[]`. | +| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. | +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| rollback_to | (string) | Имя снимка, к состоянию которого необходимо совершить откат ВМ. | +| 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` | Целевое состояние ВМ.
`present` - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
`absent` - виртуальная машина безвозвратно удалена.
`poweredon` - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
`poweredoff` - виртуальная машина остановлена. Если запущена, то будет остановлена.
`halted` - аналогично `poweredoff`.
`paused` - виртуальная машина приостановлена.
Значение по умолчанию при создании: `present`. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь `{}`.| + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + +### Основная информация + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| arch | string | Архитектура ВМ. | +| auto_start | bool | Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена. | +| clones | list | Список идентификаторов клонов ВМ. | +| clone_reference | int | Идентификатор ВМ, клоном которой является данная ВМ. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных ядрах ЦП. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| disks | list | Список идентификаторов дисков, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| name | string | Имя ВМ. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| password | string | Пароль пользователя ОС по умолчанию. | +| preferred_cpu_cores | list | Список номеров предпочтительных выделенных ядер ЦП. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| snapshots | list | Список словарей, описывающих снимки ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | +| vnc_password | string | Пароль, используемый для подключения к ВМ через VNC. | + +### Ссылка на консоль +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| console_url | string | Ссылка на консоль ВМ. | + +## Примеры использования + +### Создать + +#### С указанием описания +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + description: vm description + state: present +``` + +#### С указанием объёма загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + boot: + disk_size: 10 + state: present +``` + +#### С указанием СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + sep_id: "{{ sep_id }}" + pool: "{{ sep_pool_name }}" + state: present +``` + +#### С указанием Cloud-init user data +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ci_user_data: + packages: + - apache2 + write_files: + - content: | +
+ Hello World! +
+ owner: user:user + path: /var/www/html/index.html + hostname: test-apache + ssh_keys: + - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc + state: present +``` + +#### С указанием SSH-ключа +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... + ssh_key_user: user + state: present +``` + +#### С указанием NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + numa_affinity: strict + state: present +``` + +#### С указанием запуска на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + cpu_pin: true + state: present +``` + +#### С использованием Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + hp_backed: true + state: present +``` + +#### С указанием custom_fields +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + custom_fields: + fields: + title: Title + cpu: + mode: custom + vendor: Intel + cache: + mode: disable + topology: + sockets: 1 + cores: 14 + threads: 1 + match: minimum + check: partial + state: present +``` + +#### С указанием affinity-метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity-label + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + affinity_label: label + state: present +``` + +#### С указанием affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aff_rule: + - topology: compute + policy: RECOMMENDED + mode: EQ + key: key + value: value + state: present +``` + +#### С указанием anti-affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aaff_rule: + - topology: node + policy: REQUIRED + mode: ANY + key: key + value: value + state: present +``` + +#### С указанием тэгов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with tags + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value + state: present +``` + +#### С образом +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + state: present +``` + +#### Без образа + +##### С загрузочным диском +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + disk_size: 10 + state: present +``` + +##### Без загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and without boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + state: present +``` + +#### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + auto_start: true + state: present +``` + +#### С указанием чипсета +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + state: present +``` + +### С указанием предпочтительных ядер +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + state: present +``` + +### Путём клонирования другой ВМ + +#### Без указания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + force: true +``` + +#### С указанием имени снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + name: snapshot_01 + force: true +``` + +#### С указанием временной метки снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + timestamp: 1739792809 + force: true +``` + +#### С указанием даты создания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + datetime: 2024-02-17 14:50:22 + force: true +``` + +### Получение основной информации о виртуальной машине + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by ID + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by name + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" +``` + +### Получение ссылки на консоль +``` +- name: Example + hosts: localhost + tasks: + - name: Get VM console URL + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + get_console_url: true +``` + +### Остановить/приостановить/запустить + +#### Остановить +``` +- name: Example + hosts: localhost + tasks: + - name: Stop VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredoff +``` + +#### Запустить +``` +- name: Example + hosts: localhost + tasks: + - name: Start VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: poweredon +``` + +#### Приостановить +``` +- name: Example + hosts: localhost + tasks: + - name: Pause VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: paused +``` + +### Подключить/отключить диски + +#### Подключить +``` +- name: Example + hosts: localhost + tasks: + - name: Connect data disks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: update + ids: + - "{{ datadisk1_id }}" + - "{{ datadisk2_id }}" +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect data disks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: match + ids: [] +``` + +### Подключить/отключить сети + +#### Подключить не-DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + state: poweredoff +``` + +#### Подключить не-DPDK сети с соблюдением очередности +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM without network order changing + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + network_order_changing: true + state: poweredoff +``` + +#### Подключить DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect DPDK networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + networks: + - type: DPDK + id: "{{ dpdk1_id }}" + - type: EMPTY + - type: DPDK + id: "{{ dpdk2_id }}" + mtu: 1500 + state: poweredoff +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect networks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: [] + state: poweredoff +``` + +### Откатить ВМ к состоянию снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Rollback VM to snapshot + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + rollback_to: snapshot_01 + state: poweredoff +``` + +### Изменить + +#### Объём загрузочного диска в большую сторону +``` +- name: Example + hosts: localhost + tasks: + - name: Increase boot disk size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_size: 15 + state: poweredoff +``` + +#### Количество ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU amount + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu: 1 + state: poweredoff +``` + +#### Объём ОЗУ +``` +- name: Example + hosts: localhost + tasks: + - name: Change RAM size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + ram: 512 + state: poweredoff +``` + +#### Тэги +``` +- name: Example + hosts: localhost + tasks: + - name: Change tags + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value +``` + +#### Affinity метку +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity label + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + affinity_label: Affinity label 1 +``` + +#### Affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aff_rule: + - topology: compute + policy: REQUIRED + mode: EQ + key: app + value: main + - topology: node + policy: RECOMMENDED + mode: NE + key: state + value: started +``` + +#### Anti-affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aaff_rule: + - topology: compute + policy: REQUIRED + mode: ANY + key: app + value: main +``` + +#### Описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + description: vm description +``` + +#### Чипсет +``` +- name: Example + hosts: localhost + tasks: + - name: Change chipset + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + chipset: i440fx + state: poweredoff +``` + +#### Правило NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Change NUMA affinity rule + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + numa_affinity: loose + state: poweredoff +``` + +#### Запуск на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU Pinning usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + state: poweredoff +``` + +#### Использование Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Change Huge Pages usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + state: poweredoff +``` + +#### Имя +``` +- name: Example + hosts: localhost + tasks: + - name: Rename VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + name: "{{ new_vm_name }}" +``` + +#### XML виртуальной машины + +##### Изменение +``` +- name: Example + hosts: localhost + tasks: + - name: Change XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + fields: + cpu: + mode: custom + vendor: Intel + cache: + mode: enable + os: + type: + machine: pc-i440fx-artful +``` + +##### Отключение управления ВМ через XML +``` +- name: Example + hosts: localhost + tasks: + - name: Disable XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + disable: true +``` + +#### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена + +##### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable auto starting pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: true +``` + +##### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable auto starting of pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: false +``` + +#### Предпочтительные ядра +``` +- name: Example + hosts: localhost + tasks: + - name: Change preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + - 2 + state: poweredoff +``` + +#### Загрузочный диск +``` +- name: Example + hosts: localhost + tasks: + - name: Make the disk bootable + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_id: "{{ vm_disk1_id }}" +``` + +### Удалить + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: absent +``` diff --git a/7.2.0/модуль-decort_lb.md b/7.2.0/модуль-decort_lb.md new file mode 100644 index 0000000..4aec498 --- /dev/null +++ b/7.2.0/модуль-decort_lb.md @@ -0,0 +1,806 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- отключить/включить/запустить/перезапустить +- изменить + - конфигурации backend и frontend + - конфигурацию sysctl +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ description + + (str) +
Default: Managed by Ansible module decort_lb +
+ Описание балансировщика. +
+ 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. Обязательный параметр. +
+ 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 +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. +
+ 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 равнозначны + и соответствуют включённому и запущенному балансировщику. +
+ sysctl + + (dict) + + Словарь, описывающий параметры конфигурации sysctl. +
+ 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 + + Статус балансировщика. +
+ sysctl + + dict + + Параметры конфигурации sysctl. +
diff --git a/7.2.0/модуль-decort_osimage.md b/7.2.0/модуль-decort_osimage.md new file mode 100644 index 0000000..aa2290e --- /dev/null +++ b/7.2.0/модуль-decort_osimage.md @@ -0,0 +1,137 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + - удалить + +## Параметры модуля decort_osimage +Ниже приведен список параметров для модуля **decort_osimage** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| boottype | (string)
Default: `uefi` | Тип загрузки образа. Используется при создании образа.| +| 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` | Тип образа. Используется при создании образа.| +| 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-адреса. Используется при создании образа. | +| 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 +``` + +Пример удаления образа + +``` + - name: Delete image + decort_osimage: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_id: 54321 + state: absent +``` diff --git a/7.2.0/модуль-decort_pfw.md b/7.2.0/модуль-decort_pfw.md new file mode 100644 index 0000000..45dd2ad --- /dev/null +++ b/7.2.0/модуль-decort_pfw.md @@ -0,0 +1,66 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw +Ниже приведен список параметров для модуля **decort_pfw** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| 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`). | +| 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/7.2.0/модуль-decort_rg.md b/7.2.0/модуль-decort_rg.md new file mode 100644 index 0000000..5774c12 --- /dev/null +++ b/7.2.0/модуль-decort_rg.md @@ -0,0 +1,224 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + - изменять доступные пулы СХД + - изменять описание + +## Параметры модуля decort_rg +Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (string) | Текстовое описание ресурсной группы. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | + +## Возвращаемые значения модуля decort_rg + +Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами: + +| Ключ | Тип данных | Описание | +|------|------------|----------| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. | +| description | string | Текстовое описание ресурсной группы. | +| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. | +| id | int | Уникальный целочисленный идентификатор ресурсной группы. | +| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. | +| state | string | Текущее состояние ресурсной группы. | +| quota | dict | Текущие квоты ресурсной группы. | +| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. | +| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. | +| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. | +| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. | +| computes | list | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/7.2.0/модуль-decort_snapshot.md b/7.2.0/модуль-decort_snapshot.md new file mode 100644 index 0000000..9021585 --- /dev/null +++ b/7.2.0/модуль-decort_snapshot.md @@ -0,0 +1,248 @@ +# Модуль decort_snapshot +## Обзор модуля + +Модуль **decort_snapshot** предназначен для выполнения следующих действий над снимками виртуальных машин: +- **создать** (см. [параметр state](#state) и [примеры](#создать)) +- **удалить** (см. [параметр state](#state) и [примеры](#удалить)) +- **получить основную информацию о снимке** (см. [возвращаемые значения](#основная-информация) и [примеры](#получить-основную-информацию-о-снимке)) +- **получить информацию о размере снимка** (см. [параметр usage](#usage), [возвращаемые значения](#размер-снимка) и [примеры](#получить-информацию-о-размере-снимка)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_snapshot** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + label + + + (str) + + Метка снимка виртуальной машины. Если метка не указана при создании, она будет сгенерирована автоматически на основе даты и времени - vm_name_2024-12-10_16-40-52. +
+ + state + + + (str) +
Значения: +
absent +
present +
+ Целевое состояние. +
absent - снимок удален. +
present - снимок существует. +
+ + usage + + + (bool) +
Default:false +
+ Получить информацию о реальном размере снимка виртуальной машины. +
+ + vm_id + + + (int) + + Идентификатор виртуальной машины. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_snapshot** возвращает информацию о снимке виртуальной машины в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Диски +
+ guid + + str + + Идентификатор снимка +
+ label + + str + + Метка снимка +
+ timestamp + + int + + Временная метка создания снимка +
+ vm_id + + int + + Идентификатор виртуальной машины +
+ +### Размер снимка + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ stored + + float + + Размер снимка +
+ +## Примеры использования + +### Создать + +#### С указанием метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: present +``` + +#### Без указания метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + state: present +``` + +### Удалить +``` +- name: Example + hosts: localhost + tasks: + - name: Delete snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: absent +``` + +### Получить основную информацию о снимке +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic snapshot info + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" +``` + +### Получить информацию о размере снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot usage + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + usage: true +``` diff --git a/7.2.0/модуль-decort_user_info.md b/7.2.0/модуль-decort_user_info.md new file mode 100644 index 0000000..c463324 --- /dev/null +++ b/7.2.0/модуль-decort_user_info.md @@ -0,0 +1,1338 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ unix + + (int) + + Unix-время. +
+ date_time + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру unix. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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/7.2.0/модуль-decort_vins.md b/7.2.0/модуль-decort_vins.md new file mode 100644 index 0000000..4c05f25 --- /dev/null +++ b/7.2.0/модуль-decort_vins.md @@ -0,0 +1,110 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + +## Параметры модуля decort_vins +Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется.| +|description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +|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` | Целевое состояние внутренней сети. | +| 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/8.0.0/Home.md b/8.0.0/Home.md new file mode 100644 index 0000000..866c022 --- /dev/null +++ b/8.0.0/Home.md @@ -0,0 +1,25 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью DECS3O](./введение.md#пример-авторизации-с-помощью-decs3o) + - [Пример авторизации с помощью BVS](./введение.md#пример-авторизации-с-помощью-bvs) + - [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token) +2. 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) - получение информации о пользователе + - [Модуль decort_snapshot](./модуль-decort_snapshot.md) - управление снимками виртуальной машины diff --git a/8.0.0/введение.md b/8.0.0/введение.md new file mode 100644 index 0000000..af18224 --- /dev/null +++ b/8.0.0/введение.md @@ -0,0 +1,249 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Ansible 10.7.0 +- Python 3.10.12 +- requests 2.32.3 Python module +- DynamiX Enterprise 4.3.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо: +- либо разместить директории **library** и **module_utils** в одной директории с плейбуками +- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например: +``` +[defaults] +library=./library +module_utils=./module_utils +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. + Так как он содержит секретную информацию, то его не рекомендуется + задавать непосредственно в playbook. Если параметр не задан в playbook, + то модуль будет использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
bvs +
decs3o +
oauth2 +
jwt +
Default: decs3o +
+ Режим аутентификации для получения токена. + Значение oauth2 является устаревшим и равнозначным + decs3o. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ domain + + (str) + + Домен BVS, использующийся для получения токена в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_DOMAIN. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режимах + authenticator: bvs + или authenticator: decs3o. Данный параметр является + обязательным для указанных режимов. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ password + + (str) + + Пароль пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно + в playbook. Если параметр не задан в playbook, модуль будет + использовать значение переменной окружения + DECORT_PASSWORD. +
+ username + + (str) + + Логин пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_USERNAME. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: DECS3O auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + controller_url: https://dynamix.local + oauth2_url: https://sso-dynamix.local +``` + +### Пример авторизации с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: BVS auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + controller_url: https://dynamix.local + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` + +### Пример авторизации с помощью 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/8.0.0/модуль-decort_account.md b/8.0.0/модуль-decort_account.md new file mode 100644 index 0000000..0e2cfbf --- /dev/null +++ b/8.0.0/модуль-decort_account.md @@ -0,0 +1,1029 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) +- **изменить описание** (см. [параметр description](#description) и [примеры](#изменить-описание)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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) + + Идентификатор пользователя. +
Обязательный параметр. +
+ + description + + + (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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 + + Дата и время удаления. +
+ description + + 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 +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` + +### Изменить описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + description: New account description +``` diff --git a/8.0.0/модуль-decort_account_info.md b/8.0.0/модуль-decort_account_info.md new file mode 100644 index 0000000..c889bb4 --- /dev/null +++ b/8.0.0/модуль-decort_account_info.md @@ -0,0 +1,3828 @@ +# Модуль 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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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 + + Дата и время удаления. +
+ description + + 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 + + Дата и время удаления. +
+ description + + 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: + 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/8.0.0/модуль-decort_bservice.md b/8.0.0/модуль-decort_bservice.md new file mode 100644 index 0000000..96a66aa --- /dev/null +++ b/8.0.0/модуль-decort_bservice.md @@ -0,0 +1,82 @@ +# Модуль 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** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется. | +|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) | Имя ресурсной группы базовой службы. | + +## Возвращаемые значения модуля 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/8.0.0/модуль-decort_disk.md b/8.0.0/модуль-decort_disk.md new file mode 100644 index 0000000..cc72812 --- /dev/null +++ b/8.0.0/модуль-decort_disk.md @@ -0,0 +1,161 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + +## Параметры модуля decort_disk +Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| description | (string)
Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +| 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` | Целевое состояние диска. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.| +| id | int | Уникальный целочисленный идентификатор данного диска.| +| iotune | dict | Текущие ограничения ввода/вывода диска. | +| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.| +| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.| +|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.| +| size | int | Размер диска в ГБ.| +| size_available | float | Размер незанятого пространства в ГБ.| +| size_used | float | Размер используемого пространства в ГБ.| +| 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 + description: "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/8.0.0/модуль-decort_group.md b/8.0.0/модуль-decort_group.md new file mode 100644 index 0000000..57bcb84 --- /dev/null +++ b/8.0.0/модуль-decort_group.md @@ -0,0 +1,100 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ + - чипсет +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен список параметров для модуля **decort_group** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет.
Значение по умолчанию при создании: `i440fx`. | +| count | (int) | Количество виртуальных машин. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | + +## Возвращаемые значения модуля decort_group + +Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.
Ключи словаря:
• `chipset` (str) - эмулируемый чипсет
• `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 + chipset: Q35 + 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/8.0.0/модуль-decort_jwt.md b/8.0.0/модуль-decort_jwt.md new file mode 100644 index 0000000..a38b9f3 --- /dev/null +++ b/8.0.0/модуль-decort_jwt.md @@ -0,0 +1,48 @@ +# Модуль decort_jwt +## Обзор модуля +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов для получения токена. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). + +## Параметры модуля decort_jwt +Список параметров для модуля **decort_jwt** почти полностью совпадает с [общими параметрами модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации). + +Отличия от общих параметров: +- Параметр `controller_url` не используется. +- Параметр `jwt` не используется. +- В параметре `authenticator` не используется значение `jwt`. + +## Возвращаемые значения модуля decort_jwt +| Ключ | Тип данных | Описание | +|---| ------ | ------ | +| jwt | str | JWT токен. | + +## Примеры использования +### Пример получения JWT токена с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from DECS3O + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + oauth2_url: https://sso-dynamix.local +``` + +### Пример получения JWT токена с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from BVS + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` diff --git a/8.0.0/модуль-decort_k8s.md b/8.0.0/модуль-decort_k8s.md new file mode 100644 index 0000000..b7db22f --- /dev/null +++ b/8.0.0/модуль-decort_k8s.md @@ -0,0 +1,115 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- отключить/включить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_k8s +Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| description | (string) | Целевое описание. | +| 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. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не поддерживается изменение в существующем кластере.
Значение по умолчанию при создании: `i440fx`. | +| master_count | (int)
Значения:
`1`
`3`
`5`
`7`
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`) | +| 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` | Целевое состояние кластера. | +| lb_sysctl | (dict) | Словарь, описывающий параметры конфигурации sysctl балансировщика нагрузки. Может быть задан только если кластер имеет балансировщик нагрузки. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. | +| workers | (list) | Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule`; значение по умолчанию при создании: `[]`. | + +## Возвращаемые значения модуля decort_k8s + +Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| config | str | Kuber config кластера. +| description | str | Описание. | +| 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 +| lb_id | int | Идентификатор балансировщика нагрузки. | +| 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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/8.0.0/модуль-decort_kvmvm.md b/8.0.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..726fa26 --- /dev/null +++ b/8.0.0/модуль-decort_kvmvm.md @@ -0,0 +1,1202 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- **создать** (см. [примеры](#создать)) + - **с указанием описания** (см. параметр **description** и [примеры](#с-указанием-описания)) + - **с указанием объёма загрузочного диска** (см. параметр **boot.disk_size** и [примеры](#с-указанием-объёма-загрузочного-диска)) + - **с указанием СХД** (см. параметры **sep_id** и **pool** и [примеры](#с-указанием-схд)) + - **с указанием Cloud-init user data** (см. параметр **ci_user_data** и [примеры](#с-указанием-cloud-init-user-data)) + - **с указанием SSH-ключа** (см. параметры **ssh_key** и **ssh_key_user** и [примеры](#с-указанием-ssh-ключа)) + - **с указанием NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#с-указанием-numa-affinity)) + - **с указанием запуска на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#с-указанием-запуска-на-выделенных-ядрах-цп)) + - **с использованием Huge Pages** (см. параметр **hp_backed** и [примеры](#с-использованием-huge-pages)) + - **с указанием custom_fields** (см. параметр **custom_fields** и [примеры](#с-указанием-custom_fields)) + - **с указанием affinity-метки** (см. параметр **affinity_label** и [примеры](#с-указанием-affinity-метки)) + - **с указанием affinity правил** (см. параметр **aff_rule** и [примеры](#с-указанием-affinity-правил)) + - **с указанием anti-affinity правил** (см. параметр **aaff_rule** и [примеры](#с-указанием-anti-affinity-правил)) + - **с указанием тэгов** (см. параметр **tag** и [примеры](#с-указанием-тэгов)) + - **с образом** (см. параметры **image_id** и **image_name** и [примеры](#с-образом)) + - **без образа** (см. параметры **image_id** и **image_name** и [примеры](#без-образа)) + - **с загрузочным диском** (см. параметр **boot.disk_size** и [примеры](#с-загрузочным-диском)) + - **без загрузочного диска** (см. [примеры](#без-загрузочного-диска)) + - **с указанием режима загрузки** (см. параметр **boot.mode** и [примеры](#с-указанием-режима-загрузки)) + - **с указанием типа загрузчика ОС** (см. параметр **boot.loader_type** и [примеры](#с-указанием-типа-загрузчика-ос)) + - **с указанием именования сетевых интерфейсов** (см. параметр **network_interface_naming** и [примеры](#с-указанием-именования-сетевых-интерфейсов)) + - **с поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. параметр **hot_resize** и [примеры](#с-поддержкой-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) + - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **с указанием чипсета** (см. параметр **chipset** и [примеры](#с-указанием-чипсета)) + - **с указанием предпочтительных ядер** (см. параметр **preferred_cpu_cores** и [примеры](#с-указанием-предпочтительных-ядер)) + - **путём клонирования другой ВМ** (см. параметр **clone_from** и [примеры](#путём-клонирования-другой-вм)) +- **получить основную информацию** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-о-виртуальной-машине)) +- **получить ссылку на консоль** (см. параметр **get_console_url** и [примеры](#получение-ссылки-на-консоль)) +- **остановить/приостановить/запустить** (см. параметр **state** и [примеры](#остановитьприостановитьзапустить)) +- **подключить/отключить диски** (см. параметр **disks** и [примеры](#подключитьотключить-диски)) +- **подключить/отключить сети** (см. параметры **networks** и **network_order_changing** и [примеры](#подключитьотключить-сети)) +- **откатить ВМ к состоянию снимка** (см. параметры **rollback_to** и [примеры](#откатить-вм-к-состоянию-снимка)) +- **изменить** (см. [примеры](#изменить)) + - **объём загрузочного диска в большую сторону** (см. параметр **boot.disk_size** и [примеры](#объём-загрузочного-диска-в-большую-сторону)) + - **количество ЦП** (см. параметр **cpu** и [примеры](#количество-цп)) + - **объём ОЗУ** (см. параметр **ram** и [примеры](#объём-озу)) + - **тэги** (см. параметр **tag** и [примеры](#тэги)) + - **affinity метку** (см. параметр **affinity_label** и [примеры](#affinity-метку)) + - **affinity правила** (см. параметр **aff_rule** и [примеры](#affinity-правила)) + - **anti-affinity правила** (см. параметр **aaff_rule** и [примеры](#anti-affinity-правила)) + - **описание** (см. параметр **description** и [примеры](#описание)) + - **чипсет** (см. параметр **chipset** и [примеры](#чипсет)) + - **правило NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#правило-numa-affinity)) + - **запуск на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#запуск-на-выделенных-ядрах-цп)) + - **использование Huge Pages** (см. параметр **hp_backed** и [примеры](#использование-huge-pages)) + - **имя** (см. параметр **name** и [примеры](#имя)) + - **XML виртуальной машины** (см. параметр **custom_fields** и [примеры](#xml-виртуальной-машины)) + - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **предпочтительные ядра** (см. параметр **preferred_cpu_cores** и [примеры](#предпочтительные-ядра)) + - **загрузочный диск** (см. параметр **boot.disk_id** и [примеры](#загрузочный-диск)) + - **режим загрузки** (см. параметр **boot.mode** и [примеры](#режим-загрузки)) + - **тип загрузчика ОС** (см. параметр **boot.loader_type** и [примеры](#тип-загрузчика-ос)) + - **именование сетевых интерфейсов** (см. параметр **network_interface_naming** и [примеры](#именование-сетевых-интерфейсов)) + - **поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. параметр **hot_resize** и [примеры](#поддержку-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) + - **MAC-адрес сетевого интерфейса** (см. параметр **networks.mac** и [примеры](#mac-адрес-сетевого-интерфейса)) +- **удалить (безвозвратно)** (см. параметр **state** и [примеры](#безвозвратно)) + +## Параметры модуля decort_kvmvm +Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| auto_start | (bool) | Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой. | +| boot | (dict) | Параметры загрузки.
Ключи словаря:
• `disk_id` (int) - идентификатор диска, который будет установлен как загрузочный;
• `disk_size` (int) - объём загрузочного диска виртуальной машины в ГБ. Если параметр не задан, размер будет равен размеру образа. Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска;
• `mode` (str) - режим загрузки, значения: `bios`, `uefi`, значение по умолчанию при создании: `bios`;
• `loader_type` (str) - тип загрузчика операционной системы, значения: `linux`, `windows`, `unknown`, значение по умолчанию при создании: `unknown`. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. Значение по умолчанию при создании: `i440fx`.| +| ci_user_data | (dict) | конфигурация для cloud-init +| clone_from | (dict) | Словарь параметров для создания ВМ путём клонирования другой ВМ.
Ключи словаря:
• `id` (int) (обязательный) - идентификатор клонируемой ВМ
• `force` (bool) - игнорировать, что ВМ запущена; значение по умолчанию: `false`
• `snapshot` (dict) - словарь параметров клонируемого снимка ВМ. Ключи словаря: `name` (str) - название снимка; `timestamp` (int) - unix-время; `datetime` (str) - дата и время в формате `ггггммддччммсс`, альтернатива параметру `timestamp`, допустимо использовать любой разделитель между группами цифр для повышения читаемости, например, `гггг-мм-дд чч:мм:сс`.
Для создания клона также должен быть указан параметр `name` для указания имени клона.| +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных ядрах ЦП.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| description | (string) | Опциональное описание виртуальной машины. | +| disks | (dict) | Словарь, описывающий диски ВМ.
Ключи словаря:
•`mode` (str) - режим работы параметра; значения: `update` (по умолчанию) - указанные диски подключены, `detach` - указанные диски отключены, `delete` - указанные диски отключены и удалены; удаляются только отключаемые диски, `match` - подключены только указанные диски
•`ids` (list) - список идентификаторов дисков; для отключения всех дисков нужно передать пустой список в режиме match. | +| get_console_url | (bool)
Default:
`false` | Получить ссылку на консоль ВМ. | +| hot_resize | (bool) | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
Значение по умолчанию при создании: `false`. | +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `image_name` игнорируется.
Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. | +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. | +| network_interface_naming | (string)
Значения:
`ens`
`eth`| Шаблон именования сетевых интерфейсов в ОС Linux.
Значение по умолчанию при создании: `ens`. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)
• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`
• `mac` (str) (необязательный) - MAC-адрес сетевого интерфейса; не применим для сети типа `EMPTY`
• `mtu` (int) (необязательный) - MTU интерфейса; применимо только для `DPDK`.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. +| preferred_cpu_cores | (list) | Список номеров предпочтительных выделенных ядер ЦП (см. параметр `cpu_pin`). Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список `[]`. | +| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. | +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| rollback_to | (string) | Имя снимка, к состоянию которого необходимо совершить откат ВМ. | +| 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`
`started`
`stopped`
`paused` | Целевое состояние ВМ.
`present` - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
`absent` - виртуальная машина безвозвратно удалена.
`started` - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
`stopped` - виртуальная машина остановлена. Если запущена, то будет остановлена.
`paused` - виртуальная машина приостановлена.
Значение по умолчанию при создании: `present`. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь `{}`.| + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + +### Основная информация + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| affinity_label | string | Метка affinity. | +| affinity_rules | list | Список словарей, описывающих affinity правила. | +| anti_affinity_rules | list | Список словарей, описывающих anti-affinity правила. | +| arch | string | Архитектура ВМ. | +| auto_start | bool | Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена. | +| boot_mode | string | Режим загрузки. | +| clones | list | Список идентификаторов клонов ВМ. | +| clone_reference | int | Идентификатор ВМ, клоном которой является данная ВМ. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных ядрах ЦП. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| disks | list | Список идентификаторов дисков, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| hot_resize | bool | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| boot_loader_type | string | Тип загрузчика операционной системы. | +| name | string | Имя ВМ. | +| network_interface_naming | string | Шаблон именования сетевых интерфейсов в ОС Linux. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| password | string | Пароль пользователя ОС по умолчанию. | +| pinned_to_stack | bool | ВМ привязана к вычислительному узлу. | +| preferred_cpu_cores | list | Список номеров предпочтительных выделенных ядер ЦП. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| snapshots | list | Список словарей, описывающих снимки ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | +| vnc_password | string | Пароль, используемый для подключения к ВМ через VNC. | + +### Ссылка на консоль +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| console_url | string | Ссылка на консоль ВМ. | + +## Примеры использования + +### Создать + +#### С указанием описания +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + description: vm description + state: present +``` + +#### С указанием объёма загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + boot: + disk_size: 10 + state: present +``` + +#### С указанием СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + sep_id: "{{ sep_id }}" + pool: "{{ sep_pool_name }}" + state: present +``` + +#### С указанием Cloud-init user data +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ci_user_data: + packages: + - apache2 + write_files: + - content: | +
+ Hello World! +
+ owner: user:user + path: /var/www/html/index.html + hostname: test-apache + ssh_keys: + - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc + state: present +``` + +#### С указанием SSH-ключа +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... + ssh_key_user: user + state: present +``` + +#### С указанием NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + numa_affinity: strict + state: present +``` + +#### С указанием запуска на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + cpu_pin: true + state: present +``` + +#### С использованием Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + hp_backed: true + state: present +``` + +#### С указанием custom_fields +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + custom_fields: + fields: + title: Title + cpu: + mode: custom + vendor: Intel + cache: + mode: disable + topology: + sockets: 1 + cores: 14 + threads: 1 + match: minimum + check: partial + state: present +``` + +#### С указанием affinity-метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity-label + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + affinity_label: label + state: present +``` + +#### С указанием affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aff_rule: + - topology: compute + policy: RECOMMENDED + mode: EQ + key: key + value: value + state: present +``` + +#### С указанием anti-affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aaff_rule: + - topology: node + policy: REQUIRED + mode: ANY + key: key + value: value + state: present +``` + +#### С указанием тэгов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with tags + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value + state: present +``` + +#### С образом +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + state: present +``` + +#### Без образа + +##### С загрузочным диском +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + disk_size: 10 + state: present +``` + +##### Без загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and without boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + state: present +``` + +##### С указанием режима загрузки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot mode + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + mode: bios +``` + +##### С указанием типа загрузчика ОС +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with loader type + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + loader_type: linux +``` + +##### С указанием именования сетевых интерфейсов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with network interface naming + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + network_interface_naming: ens +``` + +##### С поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with hot resize + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + hot_resize: true +``` + +#### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + auto_start: true + state: present +``` + +#### С указанием чипсета +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + state: present +``` + +### С указанием предпочтительных ядер +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + state: present +``` + +### Путём клонирования другой ВМ + +#### Без указания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + force: true +``` + +#### С указанием имени снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + name: snapshot_01 + force: true +``` + +#### С указанием временной метки снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + timestamp: 1739792809 + force: true +``` + +#### С указанием даты создания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + datetime: 2024-02-17 14:50:22 + force: true +``` + +### Получение основной информации о виртуальной машине + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by ID + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by name + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" +``` + +### Получение ссылки на консоль +``` +- name: Example + hosts: localhost + tasks: + - name: Get VM console URL + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + get_console_url: true +``` + +### Остановить/приостановить/запустить + +#### Остановить +``` +- name: Example + hosts: localhost + tasks: + - name: Stop VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: stopped +``` + +#### Запустить +``` +- name: Example + hosts: localhost + tasks: + - name: Start VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: started +``` + +#### Приостановить +``` +- name: Example + hosts: localhost + tasks: + - name: Pause VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: paused +``` + +### Подключить/отключить диски + +#### Подключить +``` +- name: Example + hosts: localhost + tasks: + - name: Connect data disks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: update + ids: + - "{{ datadisk1_id }}" + - "{{ datadisk2_id }}" +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect data disks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: match + ids: [] +``` + +### Подключить/отключить сети + +#### Подключить не-DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + mac: "00:11:22:33:44:55" + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + state: stopped +``` + +#### Подключить не-DPDK сети с соблюдением очередности +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM without network order changing + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + mac: "00:11:22:33:44:55" + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + network_order_changing: true + state: stopped +``` + +#### Подключить DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect DPDK networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + networks: + - type: DPDK + id: "{{ dpdk1_id }}" + - type: EMPTY + - type: DPDK + id: "{{ dpdk2_id }}" + mtu: 1500 + state: stopped +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect networks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: [] + state: stopped +``` + +### Откатить ВМ к состоянию снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Rollback VM to snapshot + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + rollback_to: snapshot_01 + state: stopped +``` + +### Изменить + +#### Объём загрузочного диска в большую сторону +``` +- name: Example + hosts: localhost + tasks: + - name: Increase boot disk size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_size: 15 + state: stopped +``` + +#### Количество ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU amount + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu: 1 + state: stopped +``` + +#### Объём ОЗУ +``` +- name: Example + hosts: localhost + tasks: + - name: Change RAM size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + ram: 512 + state: stopped +``` + +#### Тэги +``` +- name: Example + hosts: localhost + tasks: + - name: Change tags + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value +``` + +#### Affinity метку +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity label + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + affinity_label: Affinity label 1 +``` + +#### Affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aff_rule: + - topology: compute + policy: REQUIRED + mode: EQ + key: app + value: main + - topology: node + policy: RECOMMENDED + mode: NE + key: state + value: started +``` + +#### Anti-affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aaff_rule: + - topology: compute + policy: REQUIRED + mode: ANY + key: app + value: main +``` + +#### Описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + description: vm description +``` + +#### Чипсет +``` +- name: Example + hosts: localhost + tasks: + - name: Change chipset + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + chipset: i440fx + state: stopped +``` + +#### Правило NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Change NUMA affinity rule + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + numa_affinity: loose + state: stopped +``` + +#### Запуск на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU Pinning usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + state: stopped +``` + +#### Использование Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Change Huge Pages usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + state: stopped +``` + +#### Имя +``` +- name: Example + hosts: localhost + tasks: + - name: Rename VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + name: "{{ new_vm_name }}" +``` + +#### XML виртуальной машины + +##### Изменение +``` +- name: Example + hosts: localhost + tasks: + - name: Change XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + fields: + cpu: + mode: custom + vendor: Intel + cache: + mode: enable + os: + type: + machine: pc-i440fx-artful +``` + +##### Отключение управления ВМ через XML +``` +- name: Example + hosts: localhost + tasks: + - name: Disable XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + disable: true +``` + +#### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена + +##### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable auto starting pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: true +``` + +##### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable auto starting of pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: false +``` + +#### Предпочтительные ядра +``` +- name: Example + hosts: localhost + tasks: + - name: Change preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + - 2 + state: stopped +``` + +#### Загрузочный диск +``` +- name: Example + hosts: localhost + tasks: + - name: Make the disk bootable + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_id: "{{ vm_disk1_id }}" +``` + +#### Режим загрузки +``` +- name: Example + hosts: localhost + tasks: + - name: Change boot mode + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + mode: uefi +``` + +#### Тип загрузчика ОС +``` +- name: Example + hosts: localhost + tasks: + - name: Change loader type + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + loader_type: windows +``` + +#### Именование сетевых интерфейсов +``` +- name: Example + hosts: localhost + tasks: + - name: Change network interface naming + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + network_interface_naming: eth +``` + +#### Поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ +``` +- name: Example + hosts: localhost + tasks: + - name: Change hot resize support + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hot_resize: true +``` + +#### MAC-адрес сетевого интерфейса +``` +- name: Example + hosts: localhost + tasks: + - name: Change network interface MAC address + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + mac: "11:22:33:44:55:66" +``` + +### Удалить + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: absent +``` diff --git a/8.0.0/модуль-decort_lb.md b/8.0.0/модуль-decort_lb.md new file mode 100644 index 0000000..4aec498 --- /dev/null +++ b/8.0.0/модуль-decort_lb.md @@ -0,0 +1,806 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- отключить/включить/запустить/перезапустить +- изменить + - конфигурации backend и frontend + - конфигурацию sysctl +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ description + + (str) +
Default: Managed by Ansible module decort_lb +
+ Описание балансировщика. +
+ 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. Обязательный параметр. +
+ 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 +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. +
+ 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 равнозначны + и соответствуют включённому и запущенному балансировщику. +
+ sysctl + + (dict) + + Словарь, описывающий параметры конфигурации sysctl. +
+ 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 + + Статус балансировщика. +
+ sysctl + + dict + + Параметры конфигурации sysctl. +
diff --git a/8.0.0/модуль-decort_osimage.md b/8.0.0/модуль-decort_osimage.md new file mode 100644 index 0000000..7a64bb9 --- /dev/null +++ b/8.0.0/модуль-decort_osimage.md @@ -0,0 +1,146 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + - удалить + +## Параметры модуля decort_osimage +Ниже приведен список параметров для модуля **decort_osimage** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| boot | (dict) | Параметры загрузки.
Ключи словаря:
• `mode` (str) - режим загрузки, значения: `bios`, `uefi`, значение по умолчанию при создании: `bios`;
• `loader_type` (str) - тип загрузчика операционной системы, значения: `linux`, `windows`, `unknown`, значение по умолчанию при создании: `unknown`. | +| drivers | (string)
Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.| +| hot_resize | (bool) | Поддержка изменения объёма ОЗУ и количества процессоров у запущенных ВМ, созданных на основе образа.
Значение по умолчанию при создании: `false`. | +| image_id | (int) | Идентификатор шаблонного образа. +| image_name | (str) | Имя шаблонного образа. +| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.| +| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. | +| network_interface_naming | (string)
Значения:
`ens`
`eth`| Шаблон именования сетевых интерфейсов в ОС Linux.
Значение по умолчанию при создании: `ens`. | +| 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-адреса. Используется при создании образа. | +| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.| +| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.| + + +## Возвращаемые значения модуля decort_osimage + +Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| accountId | int | Идентификатор аккаунта. | +| boot_mode | string | Режим загрузки. | +| boot_loader_type | string | Тип загрузчика операционной системы. | +| hot_resize | bool | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ. | +| id | int | Уникальный целочисленный идентификатор данного образа. | +| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. | +| name | string | Имя образа. | +| network_interface_naming | string | Шаблон именования сетевых интерфейсов в ОС Linux. | +| 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 + boot: + mode: uefi + loader_type: linux + network_interface_naming: eth + hot_resize: true + 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 +``` + +Пример удаления образа + +``` + - name: Delete image + decort_osimage: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_id: 54321 + state: absent +``` diff --git a/8.0.0/модуль-decort_pfw.md b/8.0.0/модуль-decort_pfw.md new file mode 100644 index 0000000..45dd2ad --- /dev/null +++ b/8.0.0/модуль-decort_pfw.md @@ -0,0 +1,66 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw +Ниже приведен список параметров для модуля **decort_pfw** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| 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`). | +| 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/8.0.0/модуль-decort_rg.md b/8.0.0/модуль-decort_rg.md new file mode 100644 index 0000000..5774c12 --- /dev/null +++ b/8.0.0/модуль-decort_rg.md @@ -0,0 +1,224 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + - изменять доступные пулы СХД + - изменять описание + +## Параметры модуля decort_rg +Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (string) | Текстовое описание ресурсной группы. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | + +## Возвращаемые значения модуля decort_rg + +Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами: + +| Ключ | Тип данных | Описание | +|------|------------|----------| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. | +| description | string | Текстовое описание ресурсной группы. | +| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. | +| id | int | Уникальный целочисленный идентификатор ресурсной группы. | +| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. | +| state | string | Текущее состояние ресурсной группы. | +| quota | dict | Текущие квоты ресурсной группы. | +| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. | +| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. | +| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. | +| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. | +| computes | list | Список идентификаторов виртуальных машин ресурсной группы. | +| uniqPools | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/8.0.0/модуль-decort_snapshot.md b/8.0.0/модуль-decort_snapshot.md new file mode 100644 index 0000000..9021585 --- /dev/null +++ b/8.0.0/модуль-decort_snapshot.md @@ -0,0 +1,248 @@ +# Модуль decort_snapshot +## Обзор модуля + +Модуль **decort_snapshot** предназначен для выполнения следующих действий над снимками виртуальных машин: +- **создать** (см. [параметр state](#state) и [примеры](#создать)) +- **удалить** (см. [параметр state](#state) и [примеры](#удалить)) +- **получить основную информацию о снимке** (см. [возвращаемые значения](#основная-информация) и [примеры](#получить-основную-информацию-о-снимке)) +- **получить информацию о размере снимка** (см. [параметр usage](#usage), [возвращаемые значения](#размер-снимка) и [примеры](#получить-информацию-о-размере-снимка)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_snapshot** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + label + + + (str) + + Метка снимка виртуальной машины. Если метка не указана при создании, она будет сгенерирована автоматически на основе даты и времени - vm_name_2024-12-10_16-40-52. +
+ + state + + + (str) +
Значения: +
absent +
present +
+ Целевое состояние. +
absent - снимок удален. +
present - снимок существует. +
+ + usage + + + (bool) +
Default:false +
+ Получить информацию о реальном размере снимка виртуальной машины. +
+ + vm_id + + + (int) + + Идентификатор виртуальной машины. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_snapshot** возвращает информацию о снимке виртуальной машины в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Диски +
+ guid + + str + + Идентификатор снимка +
+ label + + str + + Метка снимка +
+ timestamp + + int + + Временная метка создания снимка +
+ vm_id + + int + + Идентификатор виртуальной машины +
+ +### Размер снимка + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ stored + + float + + Размер снимка +
+ +## Примеры использования + +### Создать + +#### С указанием метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: present +``` + +#### Без указания метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + state: present +``` + +### Удалить +``` +- name: Example + hosts: localhost + tasks: + - name: Delete snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: absent +``` + +### Получить основную информацию о снимке +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic snapshot info + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" +``` + +### Получить информацию о размере снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot usage + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + usage: true +``` diff --git a/8.0.0/модуль-decort_user_info.md b/8.0.0/модуль-decort_user_info.md new file mode 100644 index 0000000..483d9b7 --- /dev/null +++ b/8.0.0/модуль-decort_user_info.md @@ -0,0 +1,1411 @@ +# Модуль 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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ timestamp + + (int) + + Unix-время. +
+ datetime + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру timestamp. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
Call +
Guid +
Response Time +
Status Code +
Time +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + 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 + + Дата и время удаления. +
+ description + + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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: + timestamp: 1724668267 + end: + datetime: 2024-08-26_13-40-00 +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: + pagination: + size: 2 +``` + +#### С сортировкой по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits sorted by status code + decort_user_info: + # Параметры для авторизации упущены + audits: + sorting: + field: Status Code +``` + +### Получение доступных методов 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/8.0.0/модуль-decort_vins.md b/8.0.0/модуль-decort_vins.md new file mode 100644 index 0000000..4c05f25 --- /dev/null +++ b/8.0.0/модуль-decort_vins.md @@ -0,0 +1,110 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + +## Параметры модуля decort_vins +Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется.| +|description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +|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` | Целевое состояние внутренней сети. | +| 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/9.0.0/Home.md b/9.0.0/Home.md new file mode 100644 index 0000000..a725f8c --- /dev/null +++ b/9.0.0/Home.md @@ -0,0 +1,27 @@ +1. [Введение](./введение.md) + - [Введение](./введение.md#введение) + - [Системные требования](./введение.md#системные-требования) + - [Подготовка к работе](./введение.md#подготовка-к-работе) + - [Авторизация](./введение.md#авторизация) + - [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации) + - [Пример авторизации с помощью DECS3O](./введение.md#пример-авторизации-с-помощью-decs3o) + - [Пример авторизации с помощью BVS](./введение.md#пример-авторизации-с-помощью-bvs) + - [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token) +2. 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) - получение информации о пользователе + - [Модуль decort_snapshot](./модуль-decort_snapshot.md) - управление снимками виртуальной машины + - [Модуль decort_zone](./модуль-decort_zone.md) - получение информации о зоне + - [Модуль decort_trunk](./модуль-decort_trunk.md) - получение информации о транковом порте diff --git a/9.0.0/введение.md b/9.0.0/введение.md new file mode 100644 index 0000000..367333d --- /dev/null +++ b/9.0.0/введение.md @@ -0,0 +1,249 @@ +# Модули Ansible для управления облачными ресурсами в платформе DECORT +## Введение + +Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology). + +По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования. + +## Системные требования +Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT. +Системные требования для работы модуля: +- Интерпретатор Python 3.12 + - необходимые библиотеки Python указаны в файле **requirements.txt** корневой папки проекта +- DynamiX Enterprise 4.4.0 + +## Подготовка к работе + +Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей, а также настроить удобный для визуального восприятия формат вывода результата работы модулей. Для этого необходимо в рабочей директории, из которой будет запускаться Ansible, разместить файл ansible.cfg: +``` +[defaults] +library=./library ; Путь к директории library +module_utils=./module_utils ; Путь к директории module_utils + +callback_result_format=yaml ; Настройка удобного формата вывода результата работы модулей + +``` + +## Авторизация + +### Общие параметры модулей для авторизации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ app_id + + (str) + + Идентификатор приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. Если + параметр не задан в playbook, модуль будет использовать значение + переменной окружения DECORT_APP_ID. +
+ app_secret + + (str) + + Секретный ключ приложения, использующийся для получения токена в режимах + authenticator: bvs или authenticator: decs3o. + Данный параметр является обязательным для указанных режимов. + Так как он содержит секретную информацию, то его не рекомендуется + задавать непосредственно в playbook. Если параметр не задан в playbook, + то модуль будет использовать значение переменной окружения + DECORT_APP_SECRET. +
+ authenticator + + (str) +
Значения: +
bvs +
decs3o +
oauth2 +
jwt +
Default: decs3o +
+ Режим аутентификации для получения токена. + Значение oauth2 является устаревшим и равнозначным + decs3o. +
+ controller_url + + (str) + + URL контроллера, соответствующего экземпляру облачной платформы + DECORT. Данный параметр является обязательным. +
+ domain + + (str) + + Домен BVS, использующийся для получения токена в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_DOMAIN. +
+ jwt + + (str) + + JSON Web Token (JWT), который будет использоваться для подключения + к контроллеру облачной платформы DECORT в режиме + authenticator: jwt. Данный параметр является + обязательным для указанного режима. Так как он содержит + потенциально секретную информацию, а сам JWT, как правило, + имеет ограниченное время жизни, то его не рекомендуется задавать + непосредственно в playbook. Если этот параметр не определен в + playbook, то модуль будет использовать значение переменной + окружения DECORT_JWT. +
+ oauth2_url + + (str) + + URL авторизационного сервера, работающего по протоколу Oauth2, + который должен использоваться в режимах + authenticator: bvs + или authenticator: decs3o. Данный параметр является + обязательным для указанных режимов. Если параметр не задан в + playbook, модуль будет использовать значение переменной + окружения DECORT_OAUTH2_URL. +
+ password + + (str) + + Пароль пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Так как он содержит секретную + информацию, то его не рекомендуется задавать непосредственно + в playbook. Если параметр не задан в playbook, модуль будет + использовать значение переменной окружения + DECORT_PASSWORD. +
+ username + + (str) + + Логин пользователя, который должен использоваться в режиме + authenticator: bvs. Данный параметр является + обязательным для указанного режима. Если параметр не задан в playbook, + модуль будет использовать значение переменной окружения + DECORT_USERNAME. +
+ verify_ssl + + (bool) +
Default: true +
+ Позволяет отключить проверку SSL сертификатов при выполнении API + вызовов в адрес контроллера облачной инфраструктуры, например, + при работе с изолированной облачной инфраструктурой, использующей + самоподписанные сертификаты. Применяйте данный параметр с + осторожностью, предпочтительно в защищенных средах. +
+ +### Пример авторизации с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: DECS3O auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + controller_url: https://dynamix.local + oauth2_url: https://sso-dynamix.local +``` + +### Пример авторизации с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: BVS auth + decort_module_name: + # Специфичные для модулей параметры упущены + # Пример демонстрирует только параметры для авторизации + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + controller_url: https://dynamix.local + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` + +### Пример авторизации с помощью 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/9.0.0/модуль-decort_account.md b/9.0.0/модуль-decort_account.md new file mode 100644 index 0000000..bc84dba --- /dev/null +++ b/9.0.0/модуль-decort_account.md @@ -0,0 +1,1113 @@ +# Модуль decort_account +## Обзор модуля + +Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом: +- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) +- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно)) +- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) +- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить)) +- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа)) +- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать)) +- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты)) +- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам)) +- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд)) +- **изменить описание** (см. [параметр description](#description) и [примеры](#изменить-описание)) +- **изменить зону по умолчанию** (см. [параметр default_zone_id](#default_zone_id) и [примеры](#изменить-зону-по-умолчанию)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + 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) + + Идентификатор пользователя. +
Обязательный параметр. +
+ + default_zone_id + + + (int) + + Идентификатор зоны по умолчанию. +
+ + description + + + (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 - удалить квоту. +
+ + sep_pools + + + (list) + + Список словарей, описывающих доступные пулы СХД. +
+ sep_id + + (int) + + Идентификатор системы хранения данных. +
+ pool_names + + (list) + + Список названий пулов системы хранения данных. +
+ + 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 + + Может ли быть удалён. +
+ emails + + list + + Адреса эл. почты. +
+ explicit + + bool + + Видимость аккаунта. +
+ guid + + str + + Идентификатор. +
+ 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 + + Дата и время выключения. +
+ defaultZoneId + + int + + Идентификатор зоны по умолчанию. +
+ deletedBy + + str + + Идентификатор пользователя, который удалил. +
+ deletedTime + + int + + Unix-время удаления. +
+ deletedTime_readable + + str + + Дата и время удаления. +
+ description + + 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 + + Количество внутренних сетей. +
+ zoneIds + + list + + Идентификаторы доступных зон. +
+ +## Примеры использования + +### Удалить + +#### В корзину +``` +- name: Example + hosts: localhost + tasks: + - name: Delete account + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + state: absent +``` + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete account + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + state: absent_permanently +``` + +### Восстановить из корзины +``` +- name: Example + hosts: localhost + tasks: + - name: Restore account from recycle bin + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + state: present +``` + +### Выключить/включить + +#### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable account + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + state: disabled +``` + +#### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable account + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + state: confirmed +``` + +### Изменить права доступа + +#### Отозвать +``` +- name: Example + hosts: localhost + tasks: + - name: Revoke user access rights + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + acl: + mode: revoke + users: + - id: "{{ user1_id }}" + - id: "{{ user2_id }}" +``` + +#### Обновить +``` +- name: Example + hosts: localhost + tasks: + - name: Update user access rights + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + acl: + mode: update + users: + - id: "{{ user1_id }}" + rights: R + - id: "{{ user2_id }}" + rights: RCX +``` + +#### Привести в соответствие +``` +- name: Example + hosts: localhost + tasks: + - name: Match user access rights + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + acl: + mode: match + users: + - id: "{{ user1_id }}" + rights: ARCXDU + - id: "{{ user2_id }}" + rights: RCX +``` + +### Переименовать +``` +- name: Example + hosts: localhost + tasks: + - name: Rename account + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + name: "{{ account_new_name }}" +``` + +### Изменить квоты + +#### На объём дисков +``` +- name: Example + hosts: localhost + tasks: + - name: Update account quota of disks size + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + quotas: + disks_size: 500 +``` + +#### На количество внешних IP-адресов +``` +- name: Example + hosts: localhost + tasks: + - name: Update account quota of public IP amount + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + quotas: + public_ip: 10 +``` + +### Выключить/включить отправку уведомлений о предоставлении доступа к ресурсам + +#### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable sending access emails + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + access_emails: false +``` + +#### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable sending access emails + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + access_emails: true +``` + +### Изменить доступные пулы СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Change available sep pools + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + sep_pools: + - sep_id: 1 + pool_names: + - pool1 +``` + +### Изменить описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + description: New account description +``` + +### Изменить зону по умолчанию +``` +- name: Example + hosts: localhost + tasks: + - name: Change default zone + decort_account: + # Параметры для авторизации упущены + id: "{{ account_id }}" + default_zone_id: 8 +``` diff --git a/9.0.0/модуль-decort_account_info.md b/9.0.0/модуль-decort_account_info.md new file mode 100644 index 0000000..3cac2fe --- /dev/null +++ b/9.0.0/модуль-decort_account_info.md @@ -0,0 +1,3868 @@ +# Модуль 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 +
CLONING +
DOWN +
MERGE +
MIGRATING +
PAUSED +
PAUSING +
ROLLBACK +
SCHEDULED +
SNAPCREATE +
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) + + Получить информацию об образах, которые доступны к использованию + в аккаунте, с учётом заданных параметров вывода. +
Чтобы получить информацию без использования параметров вывода, + необходимо задать пустой словарь {}. +
+ 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 + + (str) + + По внешнему 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 + + Может ли быть удалён. +
+ emails + + list + + Адреса эл. почты. +
+ explicit + + bool + + Видимость аккаунта. +
+ guid + + str + + Идентификатор. +
+ 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 + + Дата и время удаления. +
+ description + + 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 + + Дата и время удаления. +
+ description + + 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: + 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/9.0.0/модуль-decort_bservice.md b/9.0.0/модуль-decort_bservice.md new file mode 100644 index 0000000..4fa05b1 --- /dev/null +++ b/9.0.0/модуль-decort_bservice.md @@ -0,0 +1,84 @@ +# Модуль 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** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется. | +| state | (str)
Значения:
`absent`
`disabled`
`enabled`
`present`
`started`
`stopped`
Default: `present`| Целевое состояние базовой службы.
`absent` - безвозвратно удалена.
`disabled` - выключена. Если включена, то будет выключена. Если удалена в корзину, то будет восстановлена из корзины и выключена.
`enabled` - включена. Если выключена, то будет включена. Если удалена в корзину, то будет восстановлена из корзины и включена.
`present` - равнозначно `enabled`.
`started` - запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины и запущена.
`stopped` - остановлена. Если запущена, то будет остановлена. Если удалена в корзину, то будет восстановлена из корзины и остановлена.| +| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. | +| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. | +| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. | +| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. | +| rg_name | (string) | Имя ресурсной группы базовой службы. | +| zone_id | (int) | Идентификатор зоны. | + +## Возвращаемые значения модуля decort_bservice + +Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +|id | int | Уникальный целочисленный идентификатор базовой службы.| +|name | string | Имя базовой службы.| +| techStatus | string | Технический статус базовой службы. | +|state | string | Статус базовой службы.| +| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.| +| groups | list | Список словарей с информацией о группах базовой службы.| +| zone_id | int | Идентификатор зоны. | + + +## Пример использования модуля 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/9.0.0/модуль-decort_disk.md b/9.0.0/модуль-decort_disk.md new file mode 100644 index 0000000..bd720f1 --- /dev/null +++ b/9.0.0/модуль-decort_disk.md @@ -0,0 +1,161 @@ +# Модуль decort_disk +## Обзор модуля decort_disk + +Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия: +- создавать +- удалять (в корзину или безвозвратно) +- восстановливать из корзины +- изменять: + - имя + - размер + - лимиты ввода/вывода + - включать/отключать общий доступ + +## Параметры модуля decort_disk +Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| +|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| description | (string) | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.| +|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.| +| iops | (int)
Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. | +| force_detach | (bool)
Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. | +| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. | +| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.| +| 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` | Целевое состояние диска. | + +## Возвращаемые значения модуля decort_disk + +Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.| +| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.| +| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.| +| id | int | Уникальный целочисленный идентификатор данного диска.| +| iotune | dict | Текущие ограничения ввода/вывода диска. | +| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.| +| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.| +|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.| +| size | int | Размер диска в ГБ.| +| size_available | float | Размер незанятого пространства в ГБ.| +| size_used | float | Размер используемого пространства в ГБ.| +| 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 + description: "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/9.0.0/модуль-decort_group.md b/9.0.0/модуль-decort_group.md new file mode 100644 index 0000000..57bcb84 --- /dev/null +++ b/9.0.0/модуль-decort_group.md @@ -0,0 +1,100 @@ +# Модуль decort_group +## Обзор модуля decort_group +Модуль **decort_group** позволяет производить следующие действия над группами базовой службы: +- создать +- получить информацию +- запустить/остановить +- подключить/отключить сети (для существующей группы только внутренние сети) +- изменить + - имя + - объём загрузочного диска + - количество ВМ + - роль + - количество виртуальных процессоров + - объём ОЗУ + - чипсет +- удалить (безвозвратно) + +## Параметры модуля decort_group +Ниже приведен список параметров для модуля **decort_group** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| boot_disk | (int) | Обьём загрузочного диска. | +| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет.
Значение по умолчанию при создании: `i440fx`. | +| count | (int) | Количество виртуальных машин. | +| cpu | (int) | Количество виртуальных процессоров. | +| driver | (string)
Значения:
`KVM_X86`
`SVA_KVM_X86`
Default: `KVM_X86` | Драйвер. | +| id | (int) | Идентификатор группы. | +| image_id | (int) | Идентификатор образа. | +| name | (str) | Имя группы.
Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. | +| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)
• `id` (int) (обязательный) - идентификатор сети | +| ram | (int) | Объём оперативной памяти. | +| role | (string) | Тег роли. | +| state | (str)
Значения:
`present`
`absent`
`started`
`stopped`
`check`
Default: `present` | +| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. | + +## Возвращаемые значения модуля decort_group + +Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами: + + +|Ключ | Тип данных | Описание| +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.
Ключи словаря:
• `chipset` (str) - эмулируемый чипсет
• `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 + chipset: Q35 + 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/9.0.0/модуль-decort_jwt.md b/9.0.0/модуль-decort_jwt.md new file mode 100644 index 0000000..a38b9f3 --- /dev/null +++ b/9.0.0/модуль-decort_jwt.md @@ -0,0 +1,48 @@ +# Модуль decort_jwt +## Обзор модуля +Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов для получения токена. + +По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`). + +## Параметры модуля decort_jwt +Список параметров для модуля **decort_jwt** почти полностью совпадает с [общими параметрами модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации). + +Отличия от общих параметров: +- Параметр `controller_url` не используется. +- Параметр `jwt` не используется. +- В параметре `authenticator` не используется значение `jwt`. + +## Возвращаемые значения модуля decort_jwt +| Ключ | Тип данных | Описание | +|---| ------ | ------ | +| jwt | str | JWT токен. | + +## Примеры использования +### Пример получения JWT токена с помощью DECS3O +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from DECS3O + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: decs3o + oauth2_url: https://sso-dynamix.local +``` + +### Пример получения JWT токена с помощью BVS +``` +- name: Example + hosts: localhost + tasks: + - name: Obtain JWT from BVS + decort_jwt: + app_id: "{{ app_id }}" + app_secret: "{{ app_secret }}" + authenticator: bvs + oauth2_url: https://bvs.local + domain: dynamix + username: "{{ username }}" + password: "{{ password }}" +``` diff --git a/9.0.0/модуль-decort_k8s.md b/9.0.0/модуль-decort_k8s.md new file mode 100644 index 0000000..c6a7be8 --- /dev/null +++ b/9.0.0/модуль-decort_k8s.md @@ -0,0 +1,117 @@ +# Модуль decort_k8s +## Обзор модуля decort_k8s + +Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: +- создать +- получить информацию +- выключить/включить/остановить/запустить +- изменить группы Worker-узлов +- удалить (в корзину или безвозвратно) +- восстановить из корзины +- изменить зону + +## Параметры модуля decort_k8s +Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. | +| account_name | (string) | Имя аккаунта. | +| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. +| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | +| description | (string) | Целевое описание. | +| 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. | +| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. | +| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | +| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | +| master_chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет master-узлов. Не поддерживается изменение в существующем кластере.
Значение по умолчанию при создании: `i440fx`. | +| master_count | (int)
Значения:
`1`
`3`
`5`
`7`
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`) | +| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера. +| permanent | (bool)
Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). | +| rg_id | (int) | Идентификатор ресурсной группы. | +| rg_name | (str) | Имя ресурсной группы. | +| state | (str)
Значения:
`present`
`absent`
`disabled`
`enabled`
`started`
`stopped` | Целевое состояние кластера.
`present` - существует и не удален. Если удален в корзину, то будет восстановлен из корзины.
`absent` - удалён в корзину или безвозвратно удалён, в зависимости от значения параметра `permanent`.
`disabled` - выключен. Если включён, то будет выключен. Если удален в корзину, то будет восстановлен из корзины и выключен.
`enabled` - включён. Если выключен, то будет включён. Если удален в корзину, то будет восстановлен из корзины и включён.
`started` - запущен. Если остановлен, то будет запущен. Если удален в корзину, то будет восстановлен из корзины и запущен.
`stopped` - остановлен. Если запущен, то будет остановлен. Если удален в корзину, то будет восстановлен из корзины и остановлен.
Значение по умолчанию при создании: `present`. | +| lb_sysctl | (dict) | Словарь, описывающий параметры конфигурации sysctl балансировщика нагрузки. Может быть задан только если кластер имеет балансировщик нагрузки. | +| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. +| with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. | +| workers | (list) | Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`
• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`
• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`
• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`
• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой
• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`
• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule`; значение по умолчанию при создании: `[]`. | +| zone_id | (int) | Идентификатор зоны. | + +## Возвращаемые значения модуля decort_k8s + +Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| config | str | Kuber config кластера. +| description | str | Описание. | +| 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 +| lb_id | int | Идентификатор балансировщика нагрузки. | +| name | string | Имя кластера. | +| rg_id | int | Идентификатор ресурсной группы. | +| state | string | Статус кластера. | +| techStatus | string | Технический статус кластера. | +| vins_id | int | Идентификатор внутренней сети кластера. | +| zone_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 + ram: 1024 + chipset: i440fx + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + - cpu: 10 + disk: 10 + name: wg2 + num: 2 + ram: 1024 + chipset: Q35 + ci_user_data: {} + taints: + - key=value:NoSchedule + annotations: + - key=value + labels: + - label=value + register: k8s_cluster +``` \ No newline at end of file diff --git a/9.0.0/модуль-decort_kvmvm.md b/9.0.0/модуль-decort_kvmvm.md new file mode 100644 index 0000000..cf03f82 --- /dev/null +++ b/9.0.0/модуль-decort_kvmvm.md @@ -0,0 +1,1334 @@ +# Модуль decort_kvmvm +## Обзор модуля decort_kvmvm + +Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: +- **создать** (см. [примеры](#создать)) + - **с указанием описания** (см. параметр **description** и [примеры](#с-указанием-описания)) + - **с указанием объёма загрузочного диска** (см. параметр **boot.disk_size** и [примеры](#с-указанием-объёма-загрузочного-диска)) + - **с указанием СХД** (см. параметры **sep_id** и **pool** и [примеры](#с-указанием-схд)) + - **с указанием Cloud-init user data** (см. параметр **ci_user_data** и [примеры](#с-указанием-cloud-init-user-data)) + - **с указанием SSH-ключа** (см. параметры **ssh_key** и **ssh_key_user** и [примеры](#с-указанием-ssh-ключа)) + - **с указанием NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#с-указанием-numa-affinity)) + - **с указанием запуска на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#с-указанием-запуска-на-выделенных-ядрах-цп)) + - **с использованием Huge Pages** (см. параметр **hp_backed** и [примеры](#с-использованием-huge-pages)) + - **с указанием custom_fields** (см. параметр **custom_fields** и [примеры](#с-указанием-custom_fields)) + - **с указанием affinity-метки** (см. параметр **affinity_label** и [примеры](#с-указанием-affinity-метки)) + - **с указанием affinity правил** (см. параметр **aff_rule** и [примеры](#с-указанием-affinity-правил)) + - **с указанием anti-affinity правил** (см. параметр **aaff_rule** и [примеры](#с-указанием-anti-affinity-правил)) + - **с указанием тэгов** (см. параметр **tag** и [примеры](#с-указанием-тэгов)) + - **с образом** (см. параметры **image_id** и **image_name** и [примеры](#с-образом)) + - **без образа** (см. параметры **image_id** и **image_name** и [примеры](#без-образа)) + - **с загрузочным диском** (см. параметр **boot.disk_size** и [примеры](#с-загрузочным-диском)) + - **без загрузочного диска** (см. [примеры](#без-загрузочного-диска)) + - **с указанием режима загрузки** (см. параметр **boot.mode** и [примеры](#с-указанием-режима-загрузки)) + - **с указанием типа загрузчика ОС** (см. параметр **boot.loader_type** и [примеры](#с-указанием-типа-загрузчика-ос)) + - **с указанием именования сетевых интерфейсов** (см. параметр **network_interface_naming** и [примеры](#с-указанием-именования-сетевых-интерфейсов)) + - **с поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. параметр **hot_resize** и [примеры](#с-поддержкой-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) + - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **с указанием чипсета** (см. параметр **chipset** и [примеры](#с-указанием-чипсета)) + - **с указанием предпочтительных ядер** (см. параметр **preferred_cpu_cores** и [примеры](#с-указанием-предпочтительных-ядер)) + - **путём клонирования другой ВМ** (см. параметр **clone_from** и [примеры](#путём-клонирования-другой-вм)) + - **с указанием зоны** (см. параметр **zone_id** и [примеры](#с-указанием-зоны)) +- **получить основную информацию** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-о-виртуальной-машине)) +- **получить ссылку на консоль** (см. параметр **get_console_url** и [примеры](#получение-ссылки-на-консоль)) +- **остановить/приостановить/запустить** (см. параметр **state** и [примеры](#остановитьприостановитьзапустить)) +- **подключить/отключить диски** (см. параметр **disks** и [примеры](#подключитьотключить-диски)) +- **подключить/отключить сети** (см. параметры **networks** и **network_order_changing** и [примеры](#подключитьотключить-сети)) +- **откатить ВМ к состоянию снимка** (см. параметр **rollback_to** и [примеры](#откатить-вм-к-состоянию-снимка)) +- **взаимодействовать c QEMU Guest Agent** (см. параметр **guest_agent** и [примеры](#взаимодействовать-c-qemu-guest-agent)) +- **получить статус копирования данных из удаляемого снимка на СХД Shared** (см. параметр **get_snapshot_merge_status** и [примеры](#получение-статуса-копирования-данных-из-удаляемого-снимка-на-схд-shared)) +- **изменить** (см. [примеры](#изменить)) + - **объём загрузочного диска в большую сторону** (см. параметр **boot.disk_size** и [примеры](#объём-загрузочного-диска-в-большую-сторону)) + - **количество ЦП** (см. параметр **cpu** и [примеры](#количество-цп)) + - **объём ОЗУ** (см. параметр **ram** и [примеры](#объём-озу)) + - **тэги** (см. параметр **tag** и [примеры](#тэги)) + - **affinity метку** (см. параметр **affinity_label** и [примеры](#affinity-метку)) + - **affinity правила** (см. параметр **aff_rule** и [примеры](#affinity-правила)) + - **anti-affinity правила** (см. параметр **aaff_rule** и [примеры](#anti-affinity-правила)) + - **описание** (см. параметр **description** и [примеры](#описание)) + - **чипсет** (см. параметр **chipset** и [примеры](#чипсет)) + - **правило NUMA Affinity** (см. параметр **numa_affinity** и [примеры](#правило-numa-affinity)) + - **запуск на выделенных ядрах ЦП** (см. параметр **cpu_pin** и [примеры](#запуск-на-выделенных-ядрах-цп)) + - **использование Huge Pages** (см. параметр **hp_backed** и [примеры](#использование-huge-pages)) + - **имя** (см. параметр **name** и [примеры](#имя)) + - **XML виртуальной машины** (см. параметр **custom_fields** и [примеры](#xml-виртуальной-машины)) + - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. параметр **auto_start** и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) + - **предпочтительные ядра** (см. параметр **preferred_cpu_cores** и [примеры](#предпочтительные-ядра)) + - **загрузочный диск** (см. параметр **boot.disk_id** и [примеры](#загрузочный-диск)) + - **режим загрузки** (см. параметр **boot.mode** и [примеры](#режим-загрузки)) + - **тип загрузчика ОС** (см. параметр **boot.loader_type** и [примеры](#тип-загрузчика-ос)) + - **именование сетевых интерфейсов** (см. параметр **network_interface_naming** и [примеры](#именование-сетевых-интерфейсов)) + - **поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. параметр **hot_resize** и [примеры](#поддержку-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) + - **MAC-адрес сетевого интерфейса** (см. параметр **networks.mac** и [примеры](#mac-адрес-сетевого-интерфейса)) + - **зону ВМ** (см. параметр **zone_id** и [примеры](#зону-вм)) +- **удалить (безвозвратно)** (см. параметр **state** и [примеры](#безвозвратно)) + +## Параметры модуля decort_kvmvm +Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.
Ключи словаря:
• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)
• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`
• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)
• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила
• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).
Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. | +| 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 правила, нужно указать пустой список `[]`. | +| affinity_label | (str) | Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку `""`. | +| auto_start | (bool) | Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой. | +| boot | (dict) | Параметры загрузки.
Ключи словаря:
• `disk_id` (int) - идентификатор диска, который будет установлен как загрузочный;
• `disk_size` (int) - объём загрузочного диска виртуальной машины в ГБ. Если параметр не задан, размер будет равен размеру образа. Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска;
• `mode` (str) - режим загрузки, значения: `bios`, `uefi`, значение по умолчанию при создании: `bios`;
• `loader_type` (str) - тип загрузчика операционной системы, значения: `linux`, `windows`, `unknown`, значение по умолчанию при создании: `unknown`. | +| chipset | (string)
Значения:
`Q35`
`i440fx` | Эмулируемый чипсет. Значение по умолчанию при создании: `i440fx`.| +| ci_user_data | (dict) | конфигурация для cloud-init +| clone_from | (dict) | Словарь параметров для создания ВМ путём клонирования другой ВМ.
Ключи словаря:
• `id` (int) (обязательный) - идентификатор клонируемой ВМ
• `force` (bool) - игнорировать, что ВМ запущена; значение по умолчанию: `false`
• `snapshot` (dict) - словарь параметров клонируемого снимка ВМ. Ключи словаря: `name` (str) - название снимка; `timestamp` (int) - unix-время; `datetime` (str) - дата и время в формате `ггггммддччммсс`, альтернатива параметру `timestamp`, допустимо использовать любой разделитель между группами цифр для повышения читаемости, например, `гггг-мм-дд чч:мм:сс`.
Для создания клона также должен быть указан параметр `name` для указания имени клона.| +| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. | +| cpu_pin | (bool) | Запуск виртуальной машины на выделенных ядрах ЦП.
Значение по умолчанию при создании: `false`. | +| custom_fields | (dict) | Словарь, управляющий XML виртуальной машины.
Ключи словаря:
• `disable` (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: `true`
• `fields` (dict) - поля для управления XML виртуальной машины. | +| description | (string) | Опциональное описание виртуальной машины. | +| disks | (dict) | Словарь, описывающий диски ВМ.
Ключи словаря:
•`mode` (str) - режим работы параметра; значения: `update` (по умолчанию) - указанные диски подключены, `detach` - указанные диски отключены, `delete` - указанные диски отключены и удалены; удаляются только отключаемые диски, `match` - подключены только указанные диски
•`ids` (list) - список идентификаторов дисков; для отключения всех дисков нужно передать пустой список в режиме match. | +| get_console_url | (bool)
Default:
`false` | Получить ссылку на консоль ВМ. | +| get_snapshot_merge_status | (bool) | Получить статус копирования данных из удаляемого снимка на СХД Shared. | +| guest_agent | (dict) | Параметры для взаимодействия с QEMU Guest Agent.
Ключи словаря:
•`enabled` (bool) - включить/выключить
•`exec` (dict) - команда, которую необходимо выполнить. Ключи словаря: `cmd` (str) (обязательный) - название; `args` (dict) - аргументы, значение по умолчанию: `{}`
•`update_available_commands` (bool) - обновить список доступных команд. | +| hot_resize | (bool) | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
Значение по умолчанию при создании: `false`. | +| hp_backed | (bool) | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: `false`. | +| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. | +| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.
Если заданы оба параметра (`image_id` и `image_name`), то `image_name` игнорируется.
Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. | +| image_name | (string) | Название образа, на базе которого следует создать ВМ.
Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. | +| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. | +| network_interface_naming | (string)
Значения:
`ens`
`eth`| Шаблон именования сетевых интерфейсов в ОС Linux.
Значение по умолчанию при создании: `ens`. | +| network_order_changing | (bool)
Default:
`false` | Соблюдение очерёдности сетей при их изменении.
Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром `networks`.
Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. | +| networks | (list) | Список словарей, описывающих сети ВМ.
Ключи словаря:
• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `SDN`, `TRUNK`, `EMPTY` (без подключения к сети)
• `id` (int \| str) (необязательный) - идентификатор внутренней/внешней/DPDK сети, пула вирт. функций или логического порта SDN
• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`
• `mac` (str) (необязательный) - MAC-адрес сетевого интерфейса; не применим для сети типа `EMPTY`; обязателен для `SDN`.
• `mtu` (int) (необязательный) - MTU интерфейса; применимо только для `EXTNET` и `DPDK`

ВМ не может одновременно быть подключена к сети `DPDK` и к сети другого типа, кроме `EMPTY`.

ВМ не может одновременно быть подключена к сети `SDN` и к сети другого типа, кроме `EMPTY`, `VFNIC`.

Чтобы отключить все сети, нужно указать пустой список `[]`. | +| numa_affinity | (str)
Значения:
`strict`
`loose`
`none` | Правило применения NUMA affinity к виртуальной машине.
`strict` - строго с NUMA affinity, `loose` - использовать NUMA affinity, если возможно, `none` - отменить применение NUMA affinity.
Значение по умолчанию при создании: `none`. | +| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. +| preferred_cpu_cores | (list) | Список номеров предпочтительных выделенных ядер ЦП (см. параметр `cpu_pin`). Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список `[]`. | +| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. | +| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).| +| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.| +| rollback_to | (string) | Имя снимка, к состоянию которого необходимо совершить откат ВМ. | +| 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`
`started`
`stopped`
`paused` | Целевое состояние ВМ.
`present` - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
`absent` - виртуальная машина безвозвратно удалена.
`started` - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
`stopped` - виртуальная машина остановлена. Если запущена, то будет остановлена.
`paused` - виртуальная машина приостановлена.
Значение по умолчанию при создании: `present`. | +| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь `{}`.| +| zone_id | (int) | Идентификатор зоны ВМ.| + +## Возвращаемые значения модуля decort_kvmvm + +Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: + +### Основная информация + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| account_id | int | Идентификатор аккаунта. | +| affinity_label | string | Метка affinity. | +| affinity_rules | list | Список словарей, описывающих affinity правила. | +| anti_affinity_rules | list | Список словарей, описывающих anti-affinity правила. | +| arch | string | Архитектура ВМ. | +| auto_start | bool | Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена. | +| boot_mode | string | Режим загрузки. | +| clones | list | Список идентификаторов клонов ВМ. | +| clone_reference | int | Идентификатор ВМ, клоном которой является данная ВМ. | +| chipset | string | Эмулируемый чипсет. | +| cpu | int | Количество виртуальных процессоров. | +| cpu_pin | bool | Запуск виртуальной машины на выделенных ядрах ЦП. | +| custom_fields | dict | Словарь, управляющий XML виртуальной машины. Если `null`, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено. | +| disks | list | Список идентификаторов дисков, подключенных к ВМ. | +| disk_size | int | Размер загрузочного диска в ГБ. | +| guest_agent | dict | Информация о QEMU Guest Agent ВМ.
Ключи словаря:
•`enabled` (bool) - включен/выключен
•`enabled_agent_features` (list) - список доступных команд
•`exec_result` (any) - результат выполнения команды
•`guid` (str) - идентификатор
•`last_update` (int) - временная метка последнего обновления доступных команд
•`user` (str) - пользователь, совершивший последнее обновление доступных команд. | +| hot_resize | bool | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ. | +| hp_backed | bool | Использовать Huge Pages для выделения оперативной памяти виртуальной машины. | +| id | int | Идентификатор ВМ. | +| image_id | id | Идентификатор образа. +| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. | +| boot_loader_type | string | Тип загрузчика операционной системы. | +| name | string | Имя ВМ. | +| network_interface_naming | string | Шаблон именования сетевых интерфейсов в ОС Linux. | +| numa_affinity | str | Правило применения NUMA affinity к виртуальной машине. | +| password | string | Пароль пользователя ОС по умолчанию. | +| pinned_to_stack | bool | ВМ привязана к вычислительному узлу. | +| preferred_cpu_cores | list | Список номеров предпочтительных выделенных ядер ЦП. | +| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. | +| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. | +| ram | int | Объём ОЗУ ВМ в МБ. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. | +| snapshots | list | Список словарей, описывающих снимки ВМ. | +| state | string | Состояние ВМ.| +| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ. +| tech_status | str | Технический статус ВМ. +| username | string | Имя пользователя ОС по умолчанию. | +| vnc_password | string | Пароль, используемый для подключения к ВМ через VNC. | +| zone_id | int | Идентификатор зоны ВМ. | + +### Ссылка на консоль +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| console_url | string | Ссылка на консоль ВМ. | + +### Статус копирования данных из удаляемого снимка на СХД Shared +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| snapshot_merge_status | dict | Словарь, где ключ - идентификатор диска, а значение - статус. | + +## Примеры использования + +### Создать + +#### С указанием описания +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + description: vm description + state: present +``` + +#### С указанием объёма загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + boot: + disk_size: 10 + state: present +``` + +#### С указанием СХД +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + sep_id: "{{ sep_id }}" + pool: "{{ sep_pool_name }}" + state: present +``` + +#### С указанием Cloud-init user data +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ci_user_data: + packages: + - apache2 + write_files: + - content: | +
+ Hello World! +
+ owner: user:user + path: /var/www/html/index.html + hostname: test-apache + ssh_keys: + - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc + state: present +``` + +#### С указанием SSH-ключа +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... + ssh_key_user: user + state: present +``` + +#### С указанием NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + numa_affinity: strict + state: present +``` + +#### С указанием запуска на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + cpu_pin: true + state: present +``` + +#### С использованием Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + hp_backed: true + state: present +``` + +#### С указанием custom_fields +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + custom_fields: + fields: + title: Title + cpu: + mode: custom + vendor: Intel + cache: + mode: disable + topology: + sockets: 1 + cores: 14 + threads: 1 + match: minimum + check: partial + state: present +``` + +#### С указанием affinity-метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity-label + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + affinity_label: label + state: present +``` + +#### С указанием affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aff_rule: + - topology: compute + policy: RECOMMENDED + mode: EQ + key: key + value: value + state: present +``` + +#### С указанием anti-affinity правил +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + aaff_rule: + - topology: node + policy: REQUIRED + mode: ANY + key: key + value: value + state: present +``` + +#### С указанием тэгов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with tags + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value + state: present +``` + +#### С образом +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with image + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + image_id: "{{ image_id }}" + state: present +``` + +#### Без образа + +##### С загрузочным диском +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + disk_size: 10 + state: present +``` + +##### Без загрузочного диска +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and without boot disk + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + state: present +``` + +##### С указанием режима загрузки +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with boot mode + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + mode: bios +``` + +##### С указанием типа загрузчика ОС +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with loader type + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + boot: + loader_type: linux +``` + +##### С указанием именования сетевых интерфейсов +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with network interface naming + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + network_interface_naming: ens +``` + +##### С поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM without image and with hot resize + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + hot_resize: true +``` + +#### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + auto_start: true + state: present +``` + +#### С указанием чипсета +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + chipset: Q35 + state: present +``` + +### С указанием предпочтительных ядер +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + state: present +``` + +### Путём клонирования другой ВМ + +#### Без указания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + force: true +``` + +#### С указанием имени снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + name: snapshot_01 + force: true +``` + +#### С указанием временной метки снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + timestamp: 1739792809 + force: true +``` + +#### С указанием даты создания снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM clone + decort_kvmvm: + # Параметры для авторизации упущены + name: vm_clone + clone_from: + id: "{{ vm_id }}" + snapshot: + datetime: 2024-02-17 14:50:22 + force: true +``` + +### С указанием зоны +``` +- name: Example + hosts: localhost + tasks: + - name: Create VM with zone id + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" + cpu: 1 + ram: 512 + zone_id: 2 + state: present +``` + +### Получение основной информации о виртуальной машине + +#### По идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by ID + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" +``` + +#### По имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic VM info by name + decort_kvmvm: + # Параметры для авторизации упущены + rg_id: "{{ rg_id }}" + name: "{{ vm_name }}" +``` + +### Получение ссылки на консоль +``` +- name: Example + hosts: localhost + tasks: + - name: Get VM console URL + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + get_console_url: true +``` + +### Остановить/приостановить/запустить + +#### Остановить +``` +- name: Example + hosts: localhost + tasks: + - name: Stop VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: stopped +``` + +#### Запустить +``` +- name: Example + hosts: localhost + tasks: + - name: Start VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: started +``` + +#### Приостановить +``` +- name: Example + hosts: localhost + tasks: + - name: Pause VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: paused +``` + +### Подключить/отключить диски + +#### Подключить +``` +- name: Example + hosts: localhost + tasks: + - name: Connect data disks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: update + ids: + - "{{ datadisk1_id }}" + - "{{ datadisk2_id }}" +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect data disks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + disks: + mode: match + ids: [] +``` + +### Подключить/отключить сети + +#### Подключить VINS/EXTNET/VFNIC-сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + mac: "00:11:22:33:44:55" + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + mtu: 1500 + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + - type: TRUNK + id: "{{ trunk_id }}" + state: stopped +``` + +#### Подключить VINS/EXTNET/VFNIC-сети с соблюдением очередности +``` +- name: Example + hosts: localhost + tasks: + - name: Connect networks to VM with network order changing + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + ip_addr: 192.168.4.0 + mac: "00:11:22:33:44:55" + - type: EMPTY + - type: EXTNET + id: "{{ extnet_id }}" + mtu: 1500 + ip_addr: 35.21.230.0 + - type: VFNIC + id: "{{ vfpool_id }}" + - type: TRUNK + id: "{{ trunk_id }}" + network_order_changing: true + state: stopped +``` + +#### Подключить DPDK сети +``` +- name: Example + hosts: localhost + tasks: + - name: Connect DPDK networks to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + networks: + - type: DPDK + id: "{{ dpdk1_id }}" + - type: DPDK + id: "{{ dpdk2_id }}" + mtu: 1500 + state: stopped +``` + +#### Подключить SDN сеть +``` +- name: Example + hosts: localhost + tasks: + - name: Connect SDN network to VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: SDN + mac: "11:22:33:44:55:66" + id: "{{ sdn_logical_port_id }}" + state: stopped +``` + +#### Отключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disconnect networks from VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: [] + state: stopped +``` + +### Откатить ВМ к состоянию снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Rollback VM to snapshot + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + rollback_to: snapshot_01 + state: stopped +``` + +### Взаимодействовать c QEMU Guest Agent +#### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable guest agent + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + guest_agent: + enabled: true +``` + +#### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable guest agent + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + guest_agent: + enabled: false +``` + +#### Обновить список доступных команд +``` +- name: Example + hosts: localhost + tasks: + - name: Update available guest agent commands + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + guest_agent: + update_available_commands: true +``` + +#### Выполнить команду +``` +- name: Example + hosts: localhost + tasks: + - name: Execute guest agent command + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + guest_agent: + exec: + cmd: guest-set-user-password + args: + username: user + password: newPassword +``` + +### Получение статуса копирования данных из удаляемого снимка на СХД Shared +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot merge status + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + get_snapshot_merge_status: true +``` + +### Изменить + +#### Объём загрузочного диска в большую сторону +``` +- name: Example + hosts: localhost + tasks: + - name: Increase boot disk size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_size: 15 + state: stopped +``` + +#### Количество ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU amount + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu: 1 + state: stopped +``` + +#### Объём ОЗУ +``` +- name: Example + hosts: localhost + tasks: + - name: Change RAM size + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + ram: 512 + state: stopped +``` + +#### Тэги +``` +- name: Example + hosts: localhost + tasks: + - name: Change tags + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + tag: + tag1_key: tag1_value + tag2_key: tag2_value +``` + +#### Affinity метку +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity label + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + affinity_label: Affinity label 1 +``` + +#### Affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aff_rule: + - topology: compute + policy: REQUIRED + mode: EQ + key: app + value: main + - topology: node + policy: RECOMMENDED + mode: NE + key: state + value: started +``` + +#### Anti-affinity правила +``` +- name: Example + hosts: localhost + tasks: + - name: Change anti-affinity rules + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + aaff_rule: + - topology: compute + policy: REQUIRED + mode: ANY + key: app + value: main +``` + +#### Описание +``` +- name: Example + hosts: localhost + tasks: + - name: Change description + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + description: vm description +``` + +#### Чипсет +``` +- name: Example + hosts: localhost + tasks: + - name: Change chipset + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + chipset: i440fx + state: stopped +``` + +#### Правило NUMA Affinity +``` +- name: Example + hosts: localhost + tasks: + - name: Change NUMA affinity rule + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + numa_affinity: loose + state: stopped +``` + +#### Запуск на выделенных ядрах ЦП +``` +- name: Example + hosts: localhost + tasks: + - name: Change CPU Pinning usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + state: stopped +``` + +#### Использование Huge Pages +``` +- name: Example + hosts: localhost + tasks: + - name: Change Huge Pages usage + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hp_backed: true + state: stopped +``` + +#### Имя +``` +- name: Example + hosts: localhost + tasks: + - name: Rename VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + name: "{{ new_vm_name }}" +``` + +#### XML виртуальной машины + +##### Изменение +``` +- name: Example + hosts: localhost + tasks: + - name: Change XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + fields: + cpu: + mode: custom + vendor: Intel + cache: + mode: enable + os: + type: + machine: pc-i440fx-artful +``` + +##### Отключение управления ВМ через XML +``` +- name: Example + hosts: localhost + tasks: + - name: Disable XML management + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + custom_fields: + disable: true +``` + +#### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена + +##### Включить +``` +- name: Example + hosts: localhost + tasks: + - name: Enable auto starting pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: true +``` + +##### Выключить +``` +- name: Example + hosts: localhost + tasks: + - name: Disable auto starting of pinned VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + auto_start: false +``` + +#### Предпочтительные ядра +``` +- name: Example + hosts: localhost + tasks: + - name: Change preferred CPU cores + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + cpu_pin: true + preferred_cpu_cores: + - 0 + - 1 + - 2 + state: stopped +``` + +#### Загрузочный диск +``` +- name: Example + hosts: localhost + tasks: + - name: Make the disk bootable + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + disk_id: "{{ vm_disk1_id }}" +``` + +#### Режим загрузки +``` +- name: Example + hosts: localhost + tasks: + - name: Change boot mode + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + mode: uefi +``` + +#### Тип загрузчика ОС +``` +- name: Example + hosts: localhost + tasks: + - name: Change loader type + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + boot: + loader_type: windows +``` + +#### Именование сетевых интерфейсов +``` +- name: Example + hosts: localhost + tasks: + - name: Change network interface naming + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + network_interface_naming: eth +``` + +#### Поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ +``` +- name: Example + hosts: localhost + tasks: + - name: Change hot resize support + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + hot_resize: true +``` + +#### MAC-адрес сетевого интерфейса +``` +- name: Example + hosts: localhost + tasks: + - name: Change network interface MAC address + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + networks: + - type: VINS + id: "{{ vins_id }}" + mac: "11:22:33:44:55:66" +``` + +#### Зону ВМ +``` +- name: Example + hosts: localhost + tasks: + - name: Change VM zone + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + zone_id: 2 +``` + +### Удалить + +#### Безвозвратно +``` +- name: Example + hosts: localhost + tasks: + - name: Delete VM + decort_kvmvm: + # Параметры для авторизации упущены + id: "{{ vm_id }}" + state: absent +``` diff --git a/9.0.0/модуль-decort_lb.md b/9.0.0/модуль-decort_lb.md new file mode 100644 index 0000000..710858f --- /dev/null +++ b/9.0.0/модуль-decort_lb.md @@ -0,0 +1,858 @@ +# Модуль decort_lb +## Обзор модуля decort_lb + +Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки: +- создать +- получить информацию +- выключить/включить/запустить/остановить/перезапустить +- изменить + - конфигурации backend и frontend + - конфигурацию sysctl + - зону +- удалить (в корзину или безвозвратно) +- восстановить из корзины + +## Параметры модуля decort_lb +Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ account_id + + (int) + + Идентификатор аккаунта. +
+ account_name + + (str) + + Имя аккаунта. +
Может быть альтернативой параметру account_id. +
+ description + + (str) + + Описание балансировщика. +
+ 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. Обязательный параметр. +
+ 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 +
+ Использовать схему высокой доступности для создаваемого балансировщика. +
+ lb_id + + (int) + + Идентификатор балансировщика нагрузки. +
+ lb_name + + (str) + + Имя балансировщика. +
+ 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) +
Значения: +
absent +
disabled +
enabled +
present +
restart +
started +
stopped +
+ Целевое состояние балансировщика нагрузки. +
absent - удалён в корзину или безвозвратно удалён, + в зависимости от значения параметра + permanently. +
disabled - выключен. Если включён, то будет выключен. +
enabled - включён. Если выключен, то будет включён. + Если удалён в корзину, то будет восстановлен из корзины и включён. +
present - существует и не удалён. Если удалён в + корзину, то будет восстановлен из корзины. +
restart - выполнен перезапуск. +
started - запущен. Если остановлен, то будет запущен. +
stopped - остановлен. Если запущен, то будет остановлен. +
Значение по умолчанию при создании: present +
+ sysctl + + (dict) + + Словарь, описывающий параметры конфигурации sysctl. +
+ vins_id + + (int) + + Идентификатор внутренней сети. +
Может быть не задан, если задан ext_net_id - + в таком случае балансировщик будет подключён только к + внешней сети. +
+ vins_name + + (str) + + Имя внутренней сети. +
В комбинации с заданной РГ может быть альтернативой для + параметра vins_id. +
+ zone_id + + (int) + + Идентификатор зоны. +
+ +## Возвращаемые значения модуля decort_lb + +Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ account_id + + int + + Идентификатор аккаунта. +
+ 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 + + Статус балансировщика. +
+ sysctl + + dict + + Параметры конфигурации sysctl. +
+ tech_status + + str + + Технический статус балансировщика. +
+ zone_id + + int + + Идентификатор зоны. +
diff --git a/9.0.0/модуль-decort_osimage.md b/9.0.0/модуль-decort_osimage.md new file mode 100644 index 0000000..04e9729 --- /dev/null +++ b/9.0.0/модуль-decort_osimage.md @@ -0,0 +1,147 @@ +# Модуль decort_osimage +## Обзор модуля decort_osimage + +Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: +- шаблонные образы: + - создать + - получить информацию + - изменить имя + - удалить +- виртуальные образы + - создать + - получить информацию + - изменить + - имя + - целевой образ + - удалить + +## Параметры модуля decort_osimage +Ниже приведен список параметров для модуля **decort_osimage** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| account_id | (int) | Идентификатор аккаунта. Используется для поиска образов, а также для их создания. | +| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | +| boot | (dict) | Параметры загрузки.
Ключи словаря:
• `mode` (str) - режим загрузки, значения: `bios`, `uefi`, значение по умолчанию при создании: `bios`;
• `loader_type` (str) - тип загрузчика операционной системы, значения: `linux`, `windows`, `unknown`, значение по умолчанию при создании: `unknown`. | +| drivers | (string)
Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.| +| hot_resize | (bool) | Поддержка изменения объёма ОЗУ и количества процессоров у запущенных ВМ, созданных на основе образа.
Значение по умолчанию при создании: `false`. | +| image_id | (int) | Идентификатор шаблонного образа. +| image_name | (str) | Имя шаблонного образа. +| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.| +| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. | +| network_interface_naming | (string)
Значения:
`ens`
`eth`| Шаблон именования сетевых интерфейсов в ОС Linux.
Значение по умолчанию при создании: `ens`. | +| 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-адреса. Используется при создании образа. | +| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.| +| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.| + + +## Возвращаемые значения модуля decort_osimage + +Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами: + + +| Ключ | Тип данных | Описание | +| ------ | ------ | ------ | +| accountId | int | Идентификатор аккаунта. | +| boot_mode | string | Режим загрузки. | +| boot_loader_type | string | Тип загрузчика операционной системы. | +| hot_resize | bool | Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ. | +| id | int | Уникальный целочисленный идентификатор данного образа. | +| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. | +| name | string | Имя образа. | +| network_interface_naming | string | Шаблон именования сетевых интерфейсов в ОС Linux. | +| 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 + boot: + mode: uefi + loader_type: linux + network_interface_naming: eth + hot_resize: true + 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" + account_id: 12345 + 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 +``` + +Пример удаления образа + +``` + - name: Delete image + decort_osimage: + app_id: "{{ my_app_id }}" + app_secret: "{{ my_app_secret }}" + authenticator: oauth2 + controller_url: "https://ds1.digitalenergy.online" + image_id: 54321 + state: absent +``` diff --git a/9.0.0/модуль-decort_pfw.md b/9.0.0/модуль-decort_pfw.md new file mode 100644 index 0000000..45dd2ad --- /dev/null +++ b/9.0.0/модуль-decort_pfw.md @@ -0,0 +1,66 @@ +# Модуль decort_pfw +## Обзор модуля decort_pfw + +Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины. +Модуль поддерживает выполнение следующих действий над правилами: +- добавить +- получить информацию +- удалить + +## Параметры модуля decort_pfw +Ниже приведен список параметров для модуля **decort_pfw** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание| +| ------ | ------ | ------ | +| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. | +| 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`). | +| 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/9.0.0/модуль-decort_rg.md b/9.0.0/модуль-decort_rg.md new file mode 100644 index 0000000..f3229bc --- /dev/null +++ b/9.0.0/модуль-decort_rg.md @@ -0,0 +1,226 @@ +# Модуль decort_rg + +## Обзор модуля decort_rg + +Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: + +- создавать ресурсные группы +- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) +- восстанавливать ресурсные группы из корзины +- включать/отключать ресурсные группы +- запрашивать информацию об уже существующих ресурсных группах +- изменять ресурсные группы: + - переименовывать + - настраивать квоты + - задавать стандартную сеть + - настраивать права доступа для пользователей + - изменять доступные пулы СХД + - изменять описание + +## Параметры модуля decort_rg +Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +|----------|--------------------------|----------| +| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | +| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | +| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. | +| description | (string) | Текстовое описание ресурсной группы. | +| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | +| def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | +| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | +| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | +| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | +| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | +| permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | +| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. | +| recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | +| rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | +| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | +| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | +| sdn_access_group_id | (string) | Идентификатор группы доступа SDN. | +| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| +| state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | + +## Возвращаемые значения модуля decort_rg + +Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами: + +| Ключ | Тип данных | Описание | +|------|------------|----------| +| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. | +| computes | list | Список идентификаторов виртуальных машин ресурсной группы. | +| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. | +| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. | +| description | string | Текстовое описание ресурсной группы. | +| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. | +| id | int | Уникальный целочисленный идентификатор ресурсной группы. | +| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. | +| quota | dict | Текущие квоты ресурсной группы. | +| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. | +| sdn_access_group_id | str | Идентификатор группы доступа SDN. | +| state | string | Текущее состояние ресурсной группы. | +| uniqPools | list | Список доступных пулов СХД. | +| ViNS | 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 }}" +``` + +В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. + +``` +- name: change available sep pools + 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" + sep_pools: + - sep_id: 1 + pool_names: + - sep1_pool1 + - sep1_pool2 + - sep_id: 2 + pool_names: + - sep2_pool1 + state: present + register: my_rg + delegate_to: localhost +``` diff --git a/9.0.0/модуль-decort_snapshot.md b/9.0.0/модуль-decort_snapshot.md new file mode 100644 index 0000000..6f0c92d --- /dev/null +++ b/9.0.0/модуль-decort_snapshot.md @@ -0,0 +1,264 @@ +# Модуль decort_snapshot +## Обзор модуля + +Модуль **decort_snapshot** предназначен для выполнения следующих действий над снимками виртуальных машин: +- **создать** (см. [параметр state](#state) и [примеры](#создать)) +- **удалить** (см. [параметр state](#state) и [примеры](#удалить)) +- **отменить копирование данных из удаляемого снимка на СХД Shared** (см. [параметр state](#state) и [примеры](#отменить-копирование-данных-из-удаляемого-снимка-на-схд-shared)) +- **получить основную информацию о снимке** (см. [возвращаемые значения](#основная-информация) и [примеры](#получить-основную-информацию-о-снимке)) +- **получить информацию о размере снимка** (см. [параметр usage](#usage), [возвращаемые значения](#размер-снимка) и [примеры](#получить-информацию-о-размере-снимка)) + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_snapshot** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПараметрТипОписание
+ + label + + + (str) + + Метка снимка виртуальной машины. Если метка не указана при создании, она будет сгенерирована автоматически на основе даты и времени - vm_name_2024-12-10_16-40-52. +
+ + state + + + (str) +
Значения: +
absent +
merge_aborted +
present +
+ Целевое состояние. +
absent - снимок удален. +
merge_aborted - копирование данных из удаляемого снимка на СХД Shared отменено. +
present - снимок существует. +
+ + usage + + + (bool) +
Default:false +
+ Получить информацию о реальном размере снимка виртуальной машины. +
+ + vm_id + + + (int) + + Идентификатор виртуальной машины. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **decort_snapshot** возвращает информацию о снимке виртуальной машины в виде словаря `facts` со следующими ключами: + +### Основная информация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ disks + + list + + Диски +
+ guid + + str + + Идентификатор снимка +
+ label + + str + + Метка снимка +
+ timestamp + + int + + Временная метка создания снимка +
+ vm_id + + int + + Идентификатор виртуальной машины +
+ +### Размер снимка + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ stored + + float + + Размер снимка +
+ +## Примеры использования + +### Создать + +#### С указанием метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: present +``` + +#### Без указания метки +``` +- name: Example + hosts: localhost + tasks: + - name: Create snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + state: present +``` + +### Удалить +``` +- name: Example + hosts: localhost + tasks: + - name: Delete snapshot + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: absent +``` + +### Отменить копирование данных из удаляемого снимка на СХД Shared +``` +- name: Example + hosts: localhost + tasks: + - name: Abort merge + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + state: merge_aborted +``` + +### Получить основную информацию о снимке +``` +- name: Example + hosts: localhost + tasks: + - name: Get basic snapshot info + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" +``` + +### Получить информацию о размере снимка +``` +- name: Example + hosts: localhost + tasks: + - name: Get snapshot usage + decort_snapshot: + # Параметры для авторизации упущены + vm_id: "{{ vm_id }}" + label: "{{ snapshot_label }}" + usage: true +``` diff --git a/9.0.0/модуль-decort_trunk.md b/9.0.0/модуль-decort_trunk.md new file mode 100644 index 0000000..2a41d5a --- /dev/null +++ b/9.0.0/модуль-decort_trunk.md @@ -0,0 +1,237 @@ +# Модуль decort_trunk +## Обзор модуля + +Модуль **decort_trunk** предназначен для получения информации о транковом порте (см. [возвращаемые значения](#возвращаемые-значения) и [примеры](#получение-информации-о-транковом-порте)). + + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_trunk** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + +
ПараметрТипОписание
+ + id + + + (int) + + Идентификатор транкового порта. +
+ +## Возвращаемые значения + +Модуль **decort_trunk** возвращает информацию о транковом порте в виде словаря `facts` со следующими ключами: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ account_ids + + list | null + + Список идентификаторов аккаунтов. +
+ created_by + + str + + Пользователь, создавший объект. +
+ created_timestamp + + int + + Unix-время создания. +
+ deleted_by + + str | null + + Пользователь, удаливший объект. +
+ deleted_timestamp + + int | null + + Unix-время удаления. +
+ description + + str + + Описание. +
+ guid + + int + + Идентификатор. +
+ id + + int + + Идентификатор. +
+ mac + + str + + MAC-адрес. +
+ name + + str + + Название. +
+ native_vlan_id + + int | null + + Идентификатор VLAN для нетегированного трафика. +
+ ovs_bridge + + str + + Сетевой мост Open vSwitch. +
+ status + + str + + Статус. +
+ updated_by + + str | null + + Пользователь, обновивший объект. +
+ updated_timestamp + + int | null + + Unix-время обновления. +
+ vlan_ids + + list + + Список идентификаторов VLAN. +
+ +## Примеры использования + +### Получение информации о транковом порте +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunk info + decort_trunk: + # Параметры для авторизации упущены + id: 1 +``` diff --git a/9.0.0/модуль-decort_user_info.md b/9.0.0/модуль-decort_user_info.md new file mode 100644 index 0000000..716980e --- /dev/null +++ b/9.0.0/модуль-decort_user_info.md @@ -0,0 +1,2368 @@ +# Модуль 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), [возвращаемые значения](#найденные-объекты) и [примеры](#поиск-доступных-объектов)) +- **зоны доступных аккаунтов** (см. [параметр zones](#zones), [возвращаемые значения](#зоны-доступных-аккаунтов) и [примеры](#получение-зон-доступных-аккаунтов)) +- **доступные транковые порты** (см. [параметр trunks](#trunks), [возвращаемые значения](#доступные-транковые-порты) и [примеры](#получение-доступных-транковых-портов)) + +## Параметры модуля +Ниже приведен список параметров для модуля **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 + + (dict) + + По коду ответа HTTP. +
+ min + + (int) + + По минимальному коду ответа HTTP. +
+ max + + (int) + + По максимальному коду ответа HTTP. +
+ time + + (dict) + + По временному периоду. +
+ start + + (dict) + + Начало периода. +
+ timestamp + + (int) + + Unix-время. +
+ datetime + + (str) + + Дата и время в формате ггггммддччммсс. + Альтернатива параметру timestamp. +
Допустимо использовать любой разделитель между + группами цифр для повышения читаемости. Например, + гггг-мм-дд чч:мм:сс. +
+ end + + (dict) + + Конец периода. +
Структура словаря аналогична параметру + start. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) +
Default: 50 +
+ Размер страниц. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
Call +
Guid +
Response Time +
Status Code +
Time +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + objects_search + + + (str) + + Получить информацию о доступных пользователю объектах, + найденных по строчному значению данного параметра. +
+ + resource_consumption + + + (bool) +
Default: false +
+ Получить информацию об используемых и зарезервированных ресурсах, + к которым имеет доступ пользователь. +
+ + zones + + + (dict) + + Получить информацию о зонах доступных аккаунтов, с учётом заданных параметров вывода. +
Чтобы получить информацию с параметрами вывода по умолчанию, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ deletable + + (bool) + + По возможности удалить. +
+ description + + (str) + + По описанию. +
+ grid_id + + (int) + + По идентификатору ЦОДа. +
+ id + + (int) + + По идентификатору зоны. +
+ name + + (str) + + По имени. +
+ node_id + + (int) + + По идентификатору узла. +
+ status + + (str) +
Значения: +
CREATED +
DESTROYED +
+ По статусу. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
created_timestamp +
deletable +
description +
grid_id +
guid +
id +
name +
node_ids +
status +
updated_timestamp +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ + trunks + + + (dict) + + Получить информацию о доступных транковых портах, с учётом заданных параметров вывода. +
Чтобы получить информацию с параметрами вывода по умолчанию, + необходимо задать пустой словарь {}. +
+ filter + + (dict) + + Фильтр. +
+ account_ids + + (list) + + По идентификаторам аккаунтов. +
+ ids + + (list) + + По идентификаторам. +
+ status + + (str) +
Значения: +
CREATED +
DESTROYED +
DESTROYING +
DISABLED +
ENABLED +
ENABLING +
MODELED +
+ По статусу. +
+ vlan_ids + + (list) + + По идентификаторам VLAN. +
+ pagination + + (dict) + + Постраничный вывод. +
+ number + + (int) +
Default: 1 +
+ Номер страницы. +
+ size + + (int) + + Размер страниц. +
+ sorting + + (dict) + + Сортировка. +
+ asc + + (bool) +
Default: true +
+ Сортировать по возрастанию. +
true - по возрастанию. +
false - по убыванию. +
+ field + + (str) +
Значения: +
account_ids +
created_timestamp +
created_by +
deleted_timestamp +
deleted_by +
description +
guid +
id +
mac +
name +
native_vlan_id +
ovs_bridge +
status +
vlan_ids +
updated_timestamp +
updated_by +
+ Название поля, по которому сортировать. +
Обязательный параметр. +
+ +## Возвращаемые значения + +Модуль **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 + + Дата и время удаления. +
+ description + + 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. +
+ Guid + + str + + Уникальный идентификатор аудита. +
+ 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 + + Список словарей, описывающих найденные объекты. +
+ +### Зоны доступных аккаунтов + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ zones + + list + + Список словарей, описывающих зоны доступных аккаунтов. +
+ created_timestamp + + int + + Unix-время создания. +
+ deletable + + bool + + Возможность удаления. +
+ grid_id + + int + + Идентификатор ЦОДа. +
+ guid + + int + + Идентификатор. +
+ id + + int + + Идентификатор. +
+ name + + str + + Название. +
+ node_ids + + list + + Идентификаторы физических узлов. +
+ status + + str + + Статус. +
+ updated_timestamp + + int + + Unix-время обновления. +
+ +### Доступные транковые порты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ trunks + + list + + Список словарей, описывающих доступные транковые порты. +
+ account_ids + + list | null + + Идентификаторы аккаунтов. +
+ created_timestamp + + int + + Unix-время создания. +
+ created_by + + str + + Пользователь, создавший объект. +
+ deleted_timestamp + + int | null + + Unix-время удаления. +
+ deleted_by + + str | null + + Пользователь, удаливший объект. +
+ description + + str + + Описание. +
+ guid + + int + + Идентификатор. +
+ id + + int + + Идентификатор. +
+ mac + + str + + MAC-адрес. +
+ name + + str + + Название. +
+ native_vlan_id + + int | null + + Идентификатор VLAN нетегированного трафика. +
+ ovs_bridge + + str + + Сетевой мост Open vSwitch. +
+ status + + str + + Статус. +
+ vlan_ids + + str + + Список идентификаторов VLAN. +
+ updated_timestamp + + int | null + + Unix-время обновления. +
+ updated_by + + str | null + + Пользователь, изменивший объект. +
+ +## Примеры использования + +### Получение основной информации о пользователе +``` +- 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: + timestamp: 1724668267 + end: + datetime: 2024-08-26_13-40-00 +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits + decort_user_info: + # Параметры для авторизации упущены + audits: + pagination: + size: 2 +``` + +#### С сортировкой по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get user info with audits sorted by status code + decort_user_info: + # Параметры для авторизации упущены + audits: + sorting: + field: Status Code +``` + +### Получение доступных методов 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 +``` + +### Получение зон доступных аккаунтов + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: {} +``` + +#### С фильтрацией по возможности удаления +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + deletable: true +``` + +#### С фильтрацией по описанию +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + description: default description +``` + +#### С фильтрацией по идентификатору ЦОДа +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + grid_id: 500 +``` + +#### С фильтрацией по идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + id: 10 +``` + +#### С фильтрацией по имени +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + name: zone1 +``` + +#### С фильтрацией по идентификатору узла +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + node_id: 12 +``` + +#### С фильтрацией по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + filter: + status: CREATED +``` + +#### С постраничным выводом +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones + decort_user_info: + # Параметры для авторизации упущены + zones: + pagination: + size: 2 +``` + +#### С сортировкой по идентификатору +``` +- name: Example + hosts: localhost + tasks: + - name: Get zones sorted by id + decort_user_info: + # Параметры для авторизации упущены + zones: + sorting: + field: id +``` + +### Получение доступных транковых портов + +#### Без использования параметров вывода +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunks + decort_user_info: + # Параметры для авторизации упущены + trunks: {} +``` + +#### С фильтрацией по идентификаторам +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunks + decort_user_info: + # Параметры для авторизации упущены + trunks: + filter: + ids: + - 1 + - 2 +``` + +#### С фильтрацией по идентификаторам аккаунтов +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunks + decort_user_info: + # Параметры для авторизации упущены + trunks: + filter: + account_ids: + - 10 + - 12 +``` + +#### С фильтрацией по идентификаторам VLAN +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunks + decort_user_info: + # Параметры для авторизации упущены + trunks: + filter: + vlan_ids: + - 5 + - 6 +``` + +#### С фильтрацией по статусу +``` +- name: Example + hosts: localhost + tasks: + - name: Get trunks + decort_user_info: + # Параметры для авторизации упущены + trunks: + filter: + status: ENABLED +``` diff --git a/9.0.0/модуль-decort_vins.md b/9.0.0/модуль-decort_vins.md new file mode 100644 index 0000000..a33db5a --- /dev/null +++ b/9.0.0/модуль-decort_vins.md @@ -0,0 +1,113 @@ +# Модуль decort_vins +## Обзор модуля decort_vins + +Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: +- создавать + - на уровне ресурсной группы (если РГ задана) + - на уровне аккаунта (если РГ не задана) +- удалять (безвозвратно) +- восстанавливать из корзины +- запрашивать информацию +- включать/отключать +- соединять (необходимы права администратора) +- изменять: + - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) + - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) + - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) + - зону + +## Параметры модуля decort_vins +Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + +| Параметр | Тип, допустимые значения | Описание | +| ------ | ------ | ------ | +| 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` игнорируется.| +|description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| +| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | +| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. +| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| +|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` | Целевое состояние внутренней сети. | +| 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) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры. +| zone_id | (int) | Идентификатор зоны.| + +## Возвращаемые значения модуля 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) | Состояние внутренней сети. | +| zone_id | (int) | Идентификатор зоны.| + + + +## Пример использования модуля 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/9.0.0/модуль-decort_zone.md b/9.0.0/модуль-decort_zone.md new file mode 100644 index 0000000..4c55b9d --- /dev/null +++ b/9.0.0/модуль-decort_zone.md @@ -0,0 +1,171 @@ +# Модуль decort_zone +## Обзор модуля + +Модуль **decort_zone** предназначен для получения информации о зоне (см. [возвращаемые значения](#возвращаемые-значения) и [примеры](#получение-информации-о-зоне)). + + +## Параметры модуля +Ниже приведен список параметров для модуля **decort_zone** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)): + + + + + + + + + + + + +
ПараметрТипОписание
+ + id + + + (int) + + Идентификатор зоны. +
+ +## Возвращаемые значения + +Модуль **decort_zone** возвращает информацию о зоне в виде словаря `facts` со следующими ключами: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Ключ + + Тип +
данных +
+ Описание +
+ created_timestamp + + int + + Unix-время создания. +
+ deletable + + bool + + Возможность удаления. +
+ description + + str + + Описание. +
+ grid_id + + int + + Идентификатор ЦОДа. +
+ guid + + int + + Идентификатор. +
+ id + + int + + Идентификатор. +
+ name + + str + + Название. +
+ node_ids + + list + + Идентификаторы физических узлов. +
+ status + + str + + Статус. +
+ updated_timestamp + + int + + Unix-время обновления. +
+ +## Примеры использования + +### Получение информации о зоне +``` +- name: Example + hosts: localhost + tasks: + - name: Get zone info + decort_zone: + # Параметры для авторизации упущены + id: 1 +``` diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..8a0533a --- /dev/null +++ b/Home.md @@ -0,0 +1,14 @@ +## Документация: + +- [Модули Ansible версии 9.0.0](./9.0.0/Home.md) +- [Модули Ansible версии 8.0.0](./8.0.0/Home.md) +- [Модули Ansible версии 7.2.0](./7.2.0/Home.md) +- [Модули Ansible версии 7.1.0](./7.1.0/Home.md) +- [Модули Ansible версии 7.0.0](./7.0.0/Home.md) +- [Модули Ansible версии 6.1.0](./6.1.0/Home.md) +- [Модули Ansible версии 6.0.0](./6.0.0/Home.md) +- [Модули 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) +- [Модули Ansible версии 5.2.6](./5.2.6/Home.md) \ No newline at end of file