google.cloud.gcp_compute_autoscaler – Создаёт масштабируемую группу GCP
Примечание
Этот плагин является частью коллекции google.cloud (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в плейбуке укажите: google.cloud.gcp_compute_autoscaler.
Описание
- Представляет собой ресурс Autoscaler.
- Масштабируемые группы позволяют автоматически масштабировать виртуальные машины в управляемых группах экземпляров в соответствии с политикой автоматического масштабирования, которую вы определяете.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | ||
| autoscaling_policy словарь / обязательно | Параметры конфигурации для алгоритма автоматического масштабирования. Вы можете определить одну или несколько политик для масштабируемой группы: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не указана, по умолчанию будет происходить масштабирование на основе cpuUtilization до 0,6 или 60%. | |||
| cool_down_period_sec целое число | Значение по умолчанию: "60" | Количество секунд, которое масштабируемая группа должна ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает сбор информации при инициализации экземпляра, во время которой собранные данные использования будут ненадежны. Время ожидания масштабируемой группы по умолчанию составляет 60 секунд. Время инициализации виртуальных машин может варьироваться из-за многих факторов. Рекомендуется проверить, сколько времени может потребоваться для инициализации экземпляра. Для этого создайте экземпляр и замерьте процесс запуска. Псевдонимы: cooldownPeriod | ||
| cpu_utilization словарь | Определяет политику использования ЦП, которая позволяет масштабируемой группе масштабироваться на основе среднего использования ЦП управляемой группой экземпляров. | |||
| utilization_target строка | Целевое использование ЦП, которое должна поддерживать масштабируемая группа. Должно быть значение с плавающей точкой в диапазоне (0, 1]. Если не указано, по умолчанию является 0,6. Если уровень ЦП ниже целевого использования, масштабируемая группа уменьшает количество экземпляров до минимального количества, указанного вами, или до тех пор, пока средний уровень ЦП ваших экземпляров не достигнет целевого использования. Если средний уровень ЦП выше целевого использования, масштабируемая группа увеличивает количество экземпляров до максимального количества, указанного вами, или до тех пор, пока среднее использование не достигнет целевого использования. Псевдонимы: target | |||
| custom_metric_utilizations список / элементы=словарь | Параметры конфигурации автоматического масштабирования на основе пользовательской метрики. Псевдонимы: metric | |||
| metric строка / обязательно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательных значений. Метрика должна иметь тип значения INT64 или DOUBLE. Псевдонимы: name | |||
| utilization_target строка | Целевое значение метрики, которое масштабируемая группа должна поддерживать. Оно должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Масштабируемая группа будет работать, чтобы поддерживать это значение постоянным для каждого экземпляра. Псевдонимы: target | |||
| utilization_target_type строка | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. Некоторые допустимые значения: "GAUGE", "DELTA_PER_SECOND", "DELTA_PER_MINUTE" Псевдонимы: type | |||
| load_balancing_utilization словарь | Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. | |||
| utilization_target строка | Доля использования пропускной способности бэкенда (установленная в конфигурации HTTP(s) балансировщика нагрузки), которую масштабируемая группа должна поддерживать. Должно быть положительное значение с плавающей точкой. Если не определено, по умолчанию является 0,8. Псевдонимы: target | |||
| max_num_replicas целое число / обязательно | Максимальное количество экземпляров, до которого может масштабироваться масштабируемая группа. Это обязательно при создании или обновлении масштабируемой группы. Максимальное количество реплик не должно быть меньше минимального. Псевдонимы: maxReplicas | |||
| min_num_replicas целое число | Минимальное количество реплик, до которого может уменьшаться масштабируемая группа. Не может быть меньше 0. Если не указано, масштабируемая группа выберет значение по умолчанию в зависимости от максимального разрешенного количества экземпляров. Псевдонимы: minReplicas | |||
| mode строка | Значение по умолчанию: "ON" | Определяет режим работы этой политики. Некоторые допустимые значения: "OFF", "ONLY_UP", "ON" | ||
| description строка | Необязательное описание этого ресурса. | |||
| env_type строка | Указывает, в какой среде Ansible вы выполняете этот модуль. Это значение не должно устанавливаться, если вы не знаете, что делаете. Это только изменяет строку User Agent для любых запросов к API. | |||
| name строка / обязательно | Имя ресурса. Длина имени должна составлять 1-63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |||
| project строка | Проект Google Cloud Platform, который нужно использовать. | |||
| scopes список / элементы=строка | Массив областей, которые необходимо использовать. | |||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в виде словаря, либо как строка JSON, которая его представляет. | |||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес электронной почты по умолчанию. | |||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | |||
| state строка |
| Определяет, должен ли данный объект существовать в GCP. | ||
| target словарь / обязательно | URL управляемой группы экземпляров, которую будет масштабировать этот Autoscaler. Это поле представляет собой ссылку на ресурс InstanceGroupManager в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Либо вы можете добавить `register: имя-ресурса` к задаче gcp_compute_instance_group_manager и затем установить это поле target в "{{ имя-ресурса }}" | |||
| zone строка / обязательно | URL зоны, в которой расположена группа экземпляров. | |||
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/rest/v1/autoscalers
- Группы автоматического масштабирования виртуальных машин: https://cloud.google.com/compute/docs/autoscaler/
- для аутентификации можно установить service_account_file с помощью переменной среды
gcp_service_account_file. - для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры service_account_email и service_account_file являются взаимоисключающими.
Примеры
- name: create a network
google.cloud.gcp_compute_network:
name: network-instancetemplate
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a address
google.cloud.gcp_compute_address:
name: address-instancetemplate
region: us-central1
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: address
- name: create a instance template
google.cloud.gcp_compute_instance_template:
name: "{{ resource_name }}"
properties:
disks:
- auto_delete: 'true'
boot: 'true'
initialize_params:
source_image: projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts
machine_type: n1-standard-1
network_interfaces:
- network: "{{ network }}"
access_configs:
- name: test-config
type: ONE_TO_ONE_NAT
nat_ip: "{{ address }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: instancetemplate
- name: create a instance group manager
google.cloud.gcp_compute_instance_group_manager:
name: "{{ resource_name }}"
base_instance_name: test1-child
instance_template: "{{ instancetemplate }}"
target_size: 3
zone: us-central1-a
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: igm
- name: create a autoscaler
google.cloud.gcp_compute_autoscaler:
name: test_object
zone: us-central1-a
target: "{{ igm }}"
autoscaling_policy:
max_num_replicas: 5
min_num_replicas: 1
cool_down_period_sec: 60
cpu_utilization:
utilization_target: 0.5
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое | Описание | ||
|---|---|---|---|---|
| autoscalingPolicy complex | успешно | Параметры конфигурации алгоритма автоматического масштабирования. Можно задать один или несколько политик для автоматического масштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни один из них не указан, по умолчанию будет выполнено автоматическое масштабирование на основе cpuUtilization до 0,6 или 60%. | ||
| coolDownPeriodSec целое число | успешно | Количество секунд, которое автоматический масштабировщик должен ждать, прежде чем начать сбор информации с новой виртуальной машины. Это предотвращает сбор информации во время инициализации виртуальной машины, когда собранные данные будут ненадёжными. По умолчанию автоматический масштабировщик ждёт 60 секунд. Время инициализации виртуальных машин может варьироваться по многим причинам. Рекомендуется проверить, сколько времени занимает инициализация виртуальной машины. Для этого создайте виртуальную машину и измерьте время запуска. | ||
| cpuUtilization complex | успешно | Определяет политику использования ЦП, которая позволяет автоматическому масштабировщику масштабировать количество виртуальных машин на основе среднего использования ЦП группой виртуальных машин. | ||
| utilizationTarget строка | успешно | Целевое значение использования ЦП, которое автоматический масштабировщик должен поддерживать. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, значение по умолчанию равно 0,6. Если уровень использования ЦП ниже целевого, автоматический масштабировщик уменьшает количество виртуальных машин до минимального количества виртуальных машин, указанного вами, или пока среднее использование ЦП виртуальных машин не достигнет целевого значения. Если среднее использование ЦП выше целевого, автоматический масштабировщик увеличивает количество виртуальных машин до максимального количества виртуальных машин, указанного вами, или пока среднее использование не достигнет целевого значения. | ||
| customMetricUtilizations complex | успешно | Параметры конфигурации автоматического масштабирования на основе пользовательского метрика. | ||
| metric строка | успешно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательные значения. Метрика должна иметь тип значения INT64 или DOUBLE. | ||
| utilizationTarget строка | успешно | Целевое значение метрики, которую автоматический масштабировщик должен поддерживать. Это должно быть положительное значение. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автоматический масштабировщик будет стремиться поддерживать это значение постоянным для каждой из виртуальных машин. | ||
| utilizationTargetType строка | успешно | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. | ||
| loadBalancingUtilization complex | успешно | Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. | ||
| utilizationTarget строка | успешно | Доля использования пропускной способности бэкенда (установленная в конфигурации балансировщика HTTP(s)) которую автоматический масштабировщик должен поддерживать. Должно быть положительное число с плавающей точкой. Если не определено, значение по умолчанию равно 0,8. | ||
| maxNumReplicas целое число | успешно | Максимальное количество виртуальных машин, до которого автоматический масштабировщик может масштабироваться. Это необходимо при создании или обновлении автоматического масштабировщика. Максимальное количество реплик не должно быть меньше минимального количества реплик. | ||
| minNumReplicas целое число | успешно | Минимальное количество реплик, до которого автоматический масштабировщик может уменьшиться. Это не может быть меньше 0. Если не указано, автоматический масштабировщик выберет значение по умолчанию в зависимости от максимального количества разрешенных виртуальных машин. | ||
| mode строка | успешно | Определяет режим работы данной политики. | ||
| creationTimestamp строка | успешно | Дата и время создания в формате RFC3339. | ||
| description строка | успешно | Необязательное описание данного ресурса. | ||
| id целое число | успешно | Уникальный идентификатор ресурса. | ||
| name строка | успешно | Имя ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | ||
| target словарь | успешно | URL управляемой группы виртуальных машин, которую будет масштабировать этот автоматический масштабировщик. | ||
| zone строка | успешно | URL зоны, в которой расположена группа виртуальных машин. | ||
Авторы
- Google Inc. (@googlecloudplatform)
© 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/google/cloud/gcp_compute_autoscaler_module.html