community.general.clc_server – Создание, удаление, запуск и остановка серверов в CenturyLink Cloud.
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в playbook, укажите: community.general.clc_server.
Описание
- Модуль Ansible для создания, удаления, запуска и остановки серверов в CenturyLink Cloud.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python = 2.7
- requests >= 2.5.0
- clc-sdk
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| add_public_ip boolean |
| Добавлять ли общедоступный IP-адрес к серверу |
| additional_disks список / элементы=строка | Значение по умолчанию: [] | Список дополнительных дисков для сервера |
| alert_policy_id строка | Политика оповещения для назначения серверу. Взаимоисключающее с 'alert_policy_name'. | |
| alert_policy_name строка | Политика оповещения для назначения серверу. Взаимоисключающее с 'alert_policy_id'. | |
| alias строка | Псевдоним учетной записи для предоставления серверов. | |
| anti_affinity_policy_id строка | Политика противоаффинитета для назначения серверу. Взаимоисключающее с 'anti_affinity_policy_name'. | |
| anti_affinity_policy_name строка | Политика противоаффинитета для назначения серверу. Взаимоисключающее с 'anti_affinity_policy_id'. | |
| configuration_id строка | Требуется только для серверов bare metal. Указывает идентификатор для определенного типа конфигурации сервера bare metal для развертывания. | |
| count целое число | Значение по умолчанию: 1 | Количество серверов для построения (взаимоисключающее с exact_count) |
| count_group строка | Требуется, когда указано exact_count. Группа серверов, используемая для определения количества развертываемых серверов. | |
| cpu целое число | Значение по умолчанию: 1 | Количество процессоров для предоставления на сервере |
| cpu_autoscale_policy_id строка | Политика автоматического масштабирования для назначения серверу. | |
| custom_fields список / элементы=строка | Значение по умолчанию: [] | Список пользовательских полей для установки на сервере. |
| description строка | Описание для установки для сервера. | |
| exact_count целое число | Выполнение в идемпотентном режиме. Обеспечит, что в указанной группе работает ровно это количество серверов, создавая и удаляя их, чтобы достичь этого количества. Требуется count_group. | |
| group строка | Значение по умолчанию: "Группа по умолчанию" | Группа серверов, для которой будут созданы серверы. |
| ip_address строка | IP-адрес сервера. При отсутствии присваивается один. | |
| location строка | Центр обработки данных для создания серверов. | |
| managed_os boolean |
| Создавать сервер как 'Управляемый' или нет. |
| memory целое число | Значение по умолчанию: 1 | Память в ГБ. |
| name строка | Идентификатор длиной от 1 до 6 символов для использования для сервера. Требуется, когда состояние равно 'present'. | |
| network_id строка | UUID сети, в которой нужно создать серверы. | |
| os_type строка |
| Требуется только для серверов bare metal. Указывает операционную систему для предоставления с сервером bare metal. |
| packages список / элементы=строка | Значение по умолчанию: [] | Список пакетов blue print для выполнения на сервере после его создания. |
| password строка | Пароль администратора/пользователя root. | |
| primary_dns строка | Основной DNS, используемый сервером. | |
| public_ip_ports список / элементы=строка | Значение по умолчанию: [] | Список портов для разрешения на брандмауэре для общедоступного IP-адреса сервера, если add_public_ip установлен в True. |
| public_ip_protocol строка |
| Протокол для использования для общедоступного IP-адреса, если add_public_ip установлен в True. |
| secondary_dns строка | Вспомогательный DNS, используемый сервером. | |
| server_ids список / элементы=строка | Значение по умолчанию: [] | Требуется для состояний started, stopped и absent. Список идентификаторов серверов, чтобы убедиться, что они запущены, остановлены или отсутствуют. |
| source_server_password строка | Пароль исходного сервера, если указан клон. | |
| state строка |
| Состояние, в котором необходимо убедиться, что предоставленные ресурсы находятся. |
| storage_type строка |
| Тип хранилища, который следует подключить к серверу. |
| template строка | Шаблон для создания сервера. Будет искать шаблон, если предоставлена частичная строка. Требуется, когда состояние равно 'present'. | |
| ttl строка | Срок действия сервера в секундах. Сервер будет удален, когда этот срок истечет. | |
| type строка |
| Тип сервера для создания. |
| wait boolean |
| Ожидать ли завершения задач предоставления перед возвратом. |
Примечания
Примечание
- Для использования этого модуля необходимо установить следующие переменные среды, которые обеспечивают доступ к CenturyLink Cloud – CLC_V2_API_USERNAME, идентификатор входа в учетную запись CenturyLink Cloud – CLC_V2_API_PASSWORD, пароль учетной записи CenturyLink Cloud.
- В качестве альтернативы модуль принимает токен API и псевдоним учетной записи. Токен API можно получить, используя вход в учетную запись CLC и пароль через вызов HTTP-API по адресу https://api.ctl.io/v2/authentication/login – CLC_V2_API_TOKEN, токен API, полученный с https://api.ctl.io/v2/authentication/login – CLC_ACCT_ALIAS, псевдоним учетной записи, связанный с CenturyLink Cloud.
- Пользователи могут установить CLC_V2_API_URL, чтобы указать конечную точку для подключения к другой среде CLC.
Примеры
# Note - You must set the CLC_V2_API_USERNAME And CLC_V2_API_PASSWD Environment variables before running these examples
- name: Provision a single Ubuntu Server
community.general.clc_server:
name: test
template: ubuntu-14-64
count: 1
group: Default Group
state: present
- name: Ensure 'Default Group' has exactly 5 servers
community.general.clc_server:
name: test
template: ubuntu-14-64
exact_count: 5
count_group: Default Group
group: Default Group
- name: Stop a Server
community.general.clc_server:
server_ids:
- UC1ACCT-TEST01
state: stopped
- name: Start a Server
community.general.clc_server:
server_ids:
- UC1ACCT-TEST01
state: started
- name: Delete a Server
community.general.clc_server:
server_ids:
- UC1ACCT-TEST01
state: absent
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание |
|---|---|---|
| partially_created_server_ids список / элементы=строка | успех | Список идентификаторов серверов, частично созданных Пример: ['UC1TEST-SVR01', 'UC1TEST-SVR02'] |
| server_ids список / элементы=строка | успех | Список идентификаторов серверов, созданных Пример: ['UC1TEST-SVR01', 'UC1TEST-SVR02'] |
| servers список / элементы=строка | успех | Список объектов серверов, возвращённых из CLC Пример: [{'changeInfo': {'createdBy': 'service.wfad', 'createdDate': 1438196820, 'modifiedBy': 'service.wfad', 'modifiedDate': 1438196820}, 'description': 'test-сервер', 'details': {'alertPolicies': [], 'cpu': 1, 'customFields': [], 'diskCount': 3, 'disks': [{'id': '0:0', 'partitionPaths': [], 'sizeGB': 1}, {'id': '0:1', 'partitionPaths': [], 'sizeGB': 2}, {'id': '0:2', 'partitionPaths': [], 'sizeGB': 14}], 'hostName': '', 'inMaintenanceMode': False, 'ipAddresses': [{'internal': '10.1.1.1'}], 'memoryGB': 1, 'memoryMB': 1024, 'partitions': [], 'powerState': 'started', 'snapshots': [], 'storageGB': 17}, 'groupId': '086ac1dfe0b6411989e8d1b77c4065f0', 'id': 'test-сервер', 'ipaddress': '10.120.45.23', 'isTemplate': False, 'links': [{'href': '/v2/servers/wfad/test-сервер', 'id': 'test-сервер', 'rel': 'self', 'verbs': ['GET', 'PATCH', 'DELETE']}, {'href': '/v2/groups/wfad/086ac1dfe0b6411989e8d1b77c4065f0', 'id': '086ac1dfe0b6411989e8d1b77c4065f0', 'rel': 'group'}, {'href': '/v2/accounts/wfad', 'id': 'wfad', 'rel': 'account'}, {'href': '/v2/billing/wfad/serverPricing/test-сервер', 'rel': 'billing'}, {'href': '/v2/servers/wfad/test-сервер/publicIPAddresses', 'rel': 'publicIPAddresses', 'verbs': ['POST']}, {'href': '/v2/servers/wfad/test-сервер/credentials', 'rel': 'credentials'}, {'href': '/v2/servers/wfad/test-сервер/statistics', 'rel': 'statistics'}, {'href': '/v2/servers/wfad/510ec21ae82d4dc89d28479753bf736a/upcomingScheduledActivities', 'rel': 'upcomingScheduledActivities'}, {'href': '/v2/servers/wfad/510ec21ae82d4dc89d28479753bf736a/scheduledActivities', 'rel': 'scheduledActivities', 'verbs': ['GET', 'POST']}, {'href': '/v2/servers/wfad/test-сервер/capabilities', 'rel': 'capabilities'}, {'href': '/v2/servers/wfad/test-сервер/alertPolicies', 'rel': 'alertPolicyMappings', 'verbs': ['POST']}, {'href': '/v2/servers/wfad/test-сервер/antiAffinityPolicy', 'rel': 'antiAffinityPolicyMapping', 'verbs': ['PUT', 'DELETE']}, {'href': '/v2/servers/wfad/test-сервер/cpuAutoscalePolicy', 'rel': 'cpuAutoscalePolicyMapping', 'verbs': ['PUT', 'DELETE']}], 'locationId': 'UC1', 'name': 'test-сервер', 'os': 'ubuntu14_64Bit', 'osType': 'Ubuntu 14 64-разрядная', 'status': 'active', 'storageType': 'standard', 'type': 'standard'}] |
Авторы
- CLC Runner (@clc-runner)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/clc_server_module.html