tansudasli.gcp_instances

Nom du rôle

Provisionner une ou plusieurs instances de calcul sur GCP avec des exigences de niveau production.

  • instance(s)
  • disque de démarrage dédié
  • disque de données et de journaux dédié
  • une adresse IP statique

Exigences

  • client ansible
  • fichier ansible.cfg
  • compte de service et compte GCP

Variables du rôle

Le rôle prend en charge par défaut le provisionnement autonome. Si vous souhaitez un provisionnement distribué, vous pouvez fournir plus de nœuds, avec une convention de nommage appropriée, sous forme de liste dans votre fichier yaml en cours d'exécution.

defaults/main.yml,

# Projet GCP
general:
    project: sandbox-236618       # ID du projet GCP 
    region: europe-west4          # région GCP
    auth_kind: serviceaccount     
    service_account_file: ~/.ssh/ansible.json
scopes:
    - https://www.googleapis.com/auth/compute

# Concevez votre architecture d'infrastructure
nodes:
  - name: standalone-node    # nom du nœud tel que standalone-node/name-node/secondary-name-node/data-node1/data-node2 ..
    zone: europe-west4-a     # choisissez des régions proches, distribuez à d'autres nœuds
    machine_type: f1-micro   # augmenter si nécessaire
    ips:
        - nic: 
            name: "ip-01"
    tags: hadoop             # balises réseau utilisées par les règles FW ! Utilisez le nom de l'outil comme hadoop, elasticsearch ...
    labels:                  # filtrage ! Utilisez le nom de l'outil comme type + master/worker comme nom
        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 est préférable pour les cas d'utilisation en production
            boot: false
        - disk: 
            name: "log-disk-01"
            size: 300
            auto_delete: true     # false est préférable pour les cas d'utilisation en production
            boot: false

Dépendances

n/a

Exemple de Playbook

Click pour tester et voir des exemples de playbooks.

ansible.cfg

[defaults]
host_key_checking = False
inventory = hosts

remote_user = tansudasli                          # votre compte GCP
private_key_file = ~/.ssh/google_compute_engine   # Si défini, utilise toujours ceci pour l'authentification

[inventory]
# Liste des plugins d'inventaire activés et l'ordre dans lequel ils sont utilisés.
enable_plugins = host_list, script, yaml, ini, auto, gcp_compute

provision.yaml

- name: Créer des instances de calcul
  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:
    # exécuter avec les valeurs par défaut
    - role: tansudasli.gcp_instances  

Licence

Apache-2.0

Informations sur l'auteur

tansudasli

À propos du projet

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

Installer
ansible-galaxy install tansudasli.gcp_instances
Licence
apache-2.0
Téléchargements
85
Propriétaire
Ansible role boilerplates to inject into the projects that runs on GCP