gce — создание или завершение работы экземпляров GCE
Новое в версии 1.4.
Описание
- Создает или завершает работу экземпляров Google Compute Engine (GCE). См. https://cloud.google.com/compute для обзора. Полные инструкции по установке и настройке модулей gce* можно найти в комментариях к файлу ansible/test/gce_tests.py.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- apache-libcloud >= 0.13.3, >= 0.17.0 при использовании JSON-аутентификации, >= 0.20.0 при использовании предварительно резервируемого варианта
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| credentials_file (добавлено в 2.1.0) | путь к JSON-файлу, связанному с адресом электронной почты учетной записи службы | |
| disk_auto_delete bool (добавлено в 1.9) |
| если установлено, то диск загрузки будет удален после уничтожения экземпляра |
| disk_size (добавлено в 2.3) | По умолчанию: 10 | Размер диска загрузки, созданного для этого экземпляра (в ГБ) |
| disks (добавлено в 1.7) | список постоянных дисков для подключения к экземпляру; строковое значение задает имя диска; в качестве альтернативы, значение словаря может определить 'name' и 'mode' ('READ_ONLY' или 'READ_WRITE'). Первая запись будет загрузочным диском (который должен быть READ_WRITE). | |
| external_ip (добавлено в 1.9) | По умолчанию: "ephemeral" | тип внешнего IP-адреса, по умолчанию временный; в качестве альтернативы можно указать фиксированный IP-адрес GCE или имя IP-адреса. Укажите 'none', если внешний IP-адрес не требуется. |
| external_projects (добавлено в 2.4) | Список других проектов (доступных с учетными данными предоставления) для поиска образа. | |
| image | По умолчанию: "debian-8" | строковое значение образа для использования в экземпляре (значение по умолчанию будет соответствовать последнему стабильному образу debian) |
| image_family (добавлено в 2.4) | семейство образов для выбора образа. Будет использоваться самый новый не устаревший образ в семействе. | |
| instance_names | список имён экземпляров, разделенных запятыми, для создания или уничтожения | |
| ip_forward bool (добавлено в 1.9) |
| установите в yes если экземпляр может пересылать пакеты IP (полезно для шлюзов) |
| machine_type | По умолчанию: "n1-standard-1" | тип машины для использования в экземпляре, по умолчанию используется 'n1-standard-1' |
| metadata | словарь/словарь пользовательских данных для экземпляра; '{"key":"value", ...}' | |
| name | либо имя одного экземпляра, либо, при использовании с 'num_instances', базовое имя кластера узлов псевдонимы: base_name | |
| network | По умолчанию: "default" | имя сети, будет использоваться 'default', если не указано |
| num_instances (добавлено в 2.3) | можно использовать с 'name', указывает количество узлов, которые нужно предоставить, используя 'name' в качестве базового имени | |
| pem_file (добавлено в 1.5.1) | путь к файлу pem, связанному с адресом электронной почты учетной записи службы. Этот параметр устарел. Используйте 'credentials_file'. | |
| persistent_boot_disk bool |
| если установлено, создайте экземпляр с постоянным загрузочным диском |
| preemptible bool (добавлено в 2.1) |
| если установлено в yes, экземпляры будут предварительно резервируемыми и ограниченными по времени. (требуется libcloud >= 0.20.0) |
| project_id (добавлено в 1.5.1) | ваш идентификатор проекта GCE | |
| service_account_email (добавлено в 1.5.1) | адрес электронной почты учетной записи службы | |
| service_account_permissions (добавлено в 2.0) |
| разрешения учетной записи службы (см. https://cloud.google.com/sdk/gcloud/reference/compute/instances/create, раздел «--scopes» для получения подробной информации) |
| state |
| желаемое состояние ресурса |
| subnetwork (добавлено в 2.2) | имя подсети, в которой должен быть создан экземпляр | |
| tags | список меток, разделенных запятыми, для присвоения экземпляру | |
| zone обязательно | По умолчанию: "us-central1-a" | зона GCE для использования. Список доступных зон находится по адресу https://cloud.google.com/compute/docs/regions-zones/regions-zones#available. |
Примечания
Примечание
- Требуется либо instance_names, либо name.
- JSON-аутентификация предпочтительнее.
Примеры
# Basic provisioning example. Create a single Debian 8 instance in the
# us-central1-a Zone of the n1-standard-1 machine type.
# Create multiple instances by specifying multiple names, separated by
# commas in the instance_names field
# (e.g. my-test-instance1,my-test-instance2)
- gce:
instance_names: my-test-instance1
zone: us-central1-a
machine_type: n1-standard-1
image: debian-8
state: present
service_account_email: "your-sa@your-project-name.iam.gserviceaccount.com"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
disk_size: 32
# Create a single instance of an image from the "my-base-image" image family
# in the us-central1-a Zone of the n1-standard-1 machine type.
# This image family is in the "my-other-project" GCP project.
- gce:
instance_names: my-test-instance1
zone: us-central1-a
machine_type: n1-standard-1
image_family: my-base-image
external_projects:
- my-other-project
state: present
service_account_email: "your-sa@your-project-name.iam.gserviceaccount.com"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
disk_size: 32
# Create a single Debian 8 instance in the us-central1-a Zone
# Use existing disks, custom network/subnetwork, set service account permissions
# add tags and metadata.
- gce:
instance_names: my-test-instance
zone: us-central1-a
machine_type: n1-standard-1
state: present
metadata: '{"db":"postgres", "group":"qa", "id":500}'
tags:
- http-server
- my-other-tag
disks:
- name: disk-2
mode: READ_WRITE
- name: disk-3
mode: READ_ONLY
disk_auto_delete: false
network: foobar-network
subnetwork: foobar-subnetwork-1
preemptible: true
ip_forward: true
service_account_permissions:
- storage-full
- taskqueue
- bigquery
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
service_account_email: "your-sa@your-project-name.iam.gserviceaccount.com"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
---
# Example Playbook
- name: Compute Engine Instance Examples
hosts: localhost
vars:
service_account_email: "your-sa@your-project-name.iam.gserviceaccount.com"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
tasks:
- name: create multiple instances
# Basic provisioning example. Create multiple Debian 8 instances in the
# us-central1-a Zone of n1-standard-1 machine type.
gce:
instance_names: test1,test2,test3
zone: us-central1-a
machine_type: n1-standard-1
image: debian-8
state: present
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
metadata : '{ "startup-script" : "apt-get update" }'
register: gce
- name: Save host data
add_host:
hostname: "{{ item.public_ip }}"
groupname: gce_instances_ips
with_items: "{{ gce.instance_data }}"
- name: Wait for SSH for instances
wait_for:
delay: 1
host: "{{ item.public_ip }}"
port: 22
state: started
timeout: 30
with_items: "{{ gce.instance_data }}"
- name: Configure Hosts
hosts: gce_instances_ips
become: yes
become_method: sudo
roles:
- my-role-one
- my-role-two
tags:
- config
- name: delete test-instances
# Basic termination of instance.
gce:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
instance_names: "{{ gce.instance_names }}"
zone: us-central1-a
state: absent
tags:
- delete
Статус
Этот модуль помечен как экспериментальный, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Дополнительную информацию см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. в разделе здесь.
Автор
- Eric Johnson (@erjohnso) <erjohnso@google.com>, Tom Melendez (@supertom) <supertom@google.com>
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 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/gce_module.html