clc_server — Создание, удаление, запуск и остановка серверов в CenturyLink Cloud.
Новая версия с 2.0.
Описание
- Модуль Ansible для создания, удаления, запуска и остановки серверов в CenturyLink Cloud.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python = 2.7
- requests >= 2.5.0
- clc-sdk
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| add_public_ip bool |
| Добавить ли публичный 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 | Значение по умолчанию: "Default Group" | Группа серверов для создания серверов. |
| ip_address | IP-адрес сервера. Назначается, если не указан. | |
| location | Дата-центр для создания серверов. | |
| managed_os bool |
| Создавать ли сервер как 'Управляемый' или нет. |
| memory | Значение по умолчанию: 1 | Память в ГБ. |
| name | Идентификатор длиной от 1 до 6 символов для сервера. Требуется, когда state = 'present'. | |
| network_id | UUID сети, в которой нужно создать серверы. | |
| os_type |
| Требуется только для серверов bare metal. Указывает ОС, с которой необходимо создать сервер bare metal. |
| packages | Значение по умолчанию: [] | Список пакетов шаблона, которые нужно запустить на сервере после его создания. |
| 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. Список идентификаторов серверов для обеспечения их состояния started, stopped или absent. |
| source_server_password | Пароль для исходного сервера, если указан клон. | |
| state |
| Состояние, которое необходимо гарантировать для предоставленных ресурсов. |
| storage_type |
| Тип хранилища для подключения к серверу. |
| template | Шаблон для создания сервера. Будет искать шаблон, если указана частичная строка. Требуется, когда state = 'present'. | |
| ttl | Время жизни сервера в секундах. Сервер будет удален по истечении этого времени. | |
| type |
| Тип создаваемого сервера. |
| wait bool |
| Ожидать ли завершения задач развертывания перед возвратом. |
Примечания
Примечание
- Для использования данного модуля необходимо установить переменные среды, которые обеспечивают доступ к 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
clc_server:
name: test
template: ubuntu-14-64
count: 1
group: Default Group
state: present
- name: Ensure 'Default Group' has exactly 5 servers
clc_server:
name: test
template: ubuntu-14-64
exact_count: 5
count_group: Default Group
group: Default Group
- name: Stop a Server
clc_server:
server_ids:
- UC1ACCT-TEST01
state: stopped
- name: Start a Server
clc_server:
server_ids:
- UC1ACCT-TEST01
state: started
- name: Delete a Server
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-server', '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-server', 'ipaddress': '10.120.45.23', 'isTemplate': False, 'links': [{'href': '/v2/servers/wfad/test-server', 'id': 'test-server', '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-server', 'rel': 'billing'}, {'href': '/v2/servers/wfad/test-server/publicIPAddresses', 'rel': 'publicIPAddresses', 'verbs': ['POST']}, {'href': '/v2/servers/wfad/test-server/credentials', 'rel': 'credentials'}, {'href': '/v2/servers/wfad/test-server/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-server/capabilities', 'rel': 'capabilities'}, {'href': '/v2/servers/wfad/test-server/alertPolicies', 'rel': 'alertPolicyMappings', 'verbs': ['POST']}, {'href': '/v2/servers/wfad/test-server/antiAffinityPolicy', 'rel': 'antiAffinityPolicyMapping', 'verbs': ['PUT', 'DELETE']}, {'href': '/v2/servers/wfad/test-server/cpuAutoscalePolicy', 'rel': 'cpuAutoscalePolicyMapping', 'verbs': ['PUT', 'DELETE']}], 'locationId': 'UC1', 'name': 'test-server', 'os': 'ubuntu14_64Bit', 'osType': 'Ubuntu 14 64-bit', 'status': 'active', 'storageType': 'standard', 'type': 'standard'}] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимости.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, поддерживаемых сообществом Ansible, см. здесь.
Автор
- 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.6/modules/clc_server_module.html