Spec-Zone.ru › Ansible 2.6

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)
    Варианты:
  • no
  • да ←
если установлено, то диск загрузки будет удален после уничтожения экземпляра
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)
    Варианты:
  • bigquery
  • cloud-platform
  • compute-ro
  • compute-rw
  • useraccounts-ro
  • useraccounts-rw
  • datastore
  • logging-write
  • monitoring
  • sql-admin
  • storage-full
  • storage-ro
  • storage-rw
  • taskqueue
  • userinfo-email
разрешения учетной записи службы (см. https://cloud.google.com/sdk/gcloud/reference/compute/instances/create, раздел «--scopes» для получения подробной информации)
state
    Варианты:
  • active
  • present ←
  • absent
  • deleted
  • started
  • stopped
  • terminated
желаемое состояние ресурса
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API