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
Информация об авторе
О проекте
Provisions compute instance(s) on GCP with production grade requirements.
Установить
ansible-galaxy install ansible-injection/gcp-instances
Лицензия
apache-2.0
Загрузки
74
Владелец
Ansible role boilerplates to inject into the projects that runs on GCP