tansudasli.gcp_instances

Nombre del Rol

Provisionar instancia(s) de cómputo en GCP con requisitos de grado de producción.

  • instancia(s)
  • disco de arranque dedicado
  • disco dedicado para datos y registros
  • una IP estática

Requisitos

  • cliente de ansible
  • archivo ansible.cfg
  • cuenta de servicio y cuenta de GCP

Variables del Rol

El rol, por defecto, soporta la provisión independiente. Si deseas una provisión distribuida, puedes proporcionar más nodos, con la convención de nombres apropiada, como una lista en tu archivo yaml en ejecución.

defaults/main.yml,

# proyecto GCP
general:
    project: sandbox-236618       # ID del proyecto GCP
    region: europe-west4          # región GCP
    auth_kind: serviceaccount     
    service_account_file: ~/.ssh/ansible.json
scopes:
    - https://www.googleapis.com/auth/compute

# diseña la arquitectura de tu infraestructura
nodes:
  - name: standalone-node    # nombre del nodo, por ejemplo, standalone-node/nombre-nodo/nombre-secundario/nodo-datos1/nodo-datos2..
    zone: europe-west4-a     # elige regiones cercanas, distribuye a otros nodos
    machine_type: f1-micro   # aumenta cuando sea necesario
    ips:
        - nic: 
            name: "ip-01"
    tags: hadoop             # etiquetas de red utilizadas por regla de firewall. Usa el nombre de la herramienta como hadoop, elasticsearch ...
    labels:                  # filtrado. Usa el nombre de la herramienta como tipo + maestro/trabajador como nombre
        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 es mejor para casos de uso en producción
            boot: false
        - disk: 
            name: "log-disk-01"
            size: 300
            auto_delete: true     # false es mejor para casos de uso en producción
            boot: false

Dependencias

n/a

Ejemplo de Playbook

Haz clic para probar y ver ejemplos de playbooks.

ansible.cfg

[defaults]
host_key_checking = False
inventory = hosts

remote_user = tansudasli                          # tu cuenta de GCP
private_key_file = ~/.ssh/google_compute_engine   # Si está configurado, siempre utiliza esto para autenticación

[inventory]
# Lista de plugins de inventario habilitados y el orden en el que se usan.
enable_plugins = host_list, script, yaml, ini, auto, gcp_compute

provision.yaml

- name: Crear Instancia(s) de Cómputo
  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:
    # ejecuta con valores var predeterminados
    - role: tansudasli.gcp_instances  

Licencia

Apache-2.0

Información del Autor

tansudasli

Acerca del proyecto

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

Instalar
ansible-galaxy install tansudasli.gcp_instances
Licencia
apache-2.0
Descargas
85
Propietario
Ansible role boilerplates to inject into the projects that runs on GCP