gcp_instances

Название роли

Создание вычислительных инстансов в GCP с требованиями уровня производства.

  • инстансы
  • выделенный загрузочный диск
  • выделенный диск для данных и логов
  • статический IP

Требования

  • клиент ansible
  • файл ansible.cfg
  • учетная запись сервиса и учетная запись GCP

Переменные роли

Роль по умолчанию поддерживает самостоятельное развертывание. Если вы хотите распределенное развертывание, вы можете указать больше узлов с соответствующим именованием в вашем рабочем yaml файле.

defaults/main.yml,

# GCP проект
general:
    project: sandbox-236618       #ID проекта GCP 
    region: europe-west4          #регион GCP
    auth_kind: serviceaccount     
    service_account_file: ~/.ssh/ansible.json
scopes:
    - https://www.googleapis.com/auth/compute

# спроектируйте архитектуру вашей инфраструктуры
nodes:
  - name: standalone-node    #имя узла, например standalone-node/name-node/secondary-name-node/data-node1/data-node2 ..
    zone: europe-west4-a     #выбирайте близкие регионы, распределите по другим узлам
    machine_type: f1-micro   #увеличьте при необходимости
    ips:
        - nic: 
            name: "ip-01"
    tags: hadoop             #сетевые теги, используемые правилами FW! Используйте имя инструмента, например hadoop, elasticsearch ...
    labels:                  #фильтрация! Используйте имя инструмента как тип + master/worker как имя
        type: hdfs
        name: master
    boot_disk:
        - disk:
            name: "boot-disk-01"
            size: 100
            image: "projects/ubuntu-os-cloud/global/images/family/ubuntu-2004-lts"
            auto_delete: true
            boot: true
    additional_disks:
        - disk: 
            name: "data-disk-01"
            size: 300
            auto_delete: true     #false лучше для производственных случаев
            boot: false
        - disk: 
            name: "log-disk-01"
            size: 300
            auto_delete: true     #false лучше для производственных случаев
            boot: false

Зависимости

не применимо

Пример Playbook

Нажмите здесь, чтобы протестировать и посмотреть примеры playbook.

ansible.cfg

[defaults]
host_key_checking = False
inventory = hosts

remote_user = tansudasli                          #ваша учетная запись GCP
private_key_file = ~/.ssh/google_compute_engine   #Если задано, всегда используется для аутентификации

[inventory]
# Список включенных плагинов инвентаризации и порядок их использования.
enable_plugins = host_list, script, yaml, ini, auto, gcp_compute

provision.yaml

- name: Создание вычислительных инстансов
  hosts: localhost
  gather_facts: no

   vars:
     general:
         project: sandbox-236618
         region: europe-west4
         auth_kind: serviceaccount
         service_account_file: ~/.ssh/ansible.json
     scopes:
         - https://www.googleapis.com/auth/compute
          
  tasks:

  roles:
    #запуск с исходными значениями переменных
    - role: tansudasli.gcp_instances  

Лицензия

Apache-2.0

Информация об авторе

tansudasli

О проекте

Provisions compute instance(s) on GCP with production grade requirements.

Установить
ansible-galaxy install ansible-injection/gcp-instances
Лицензия
apache-2.0
Загрузки
71
Владелец
Ansible role boilerplates to inject into the projects that runs on GCP