tansudasli.gcp_instances

Nazwa roli

Provisioning instancji obliczeniowych na GCP z wymaganiami na poziomie produkcyjnym.

  • instancje
  • dedykowany dysk rozruchowy
  • dedykowany dysk danych i logów
  • statyczny adres IP

Wymagania

  • klient ansible
  • plik ansible.cfg
  • konto usługi i konto GCP

Zmienne roli

Rola domyślnie wspiera samodzielne provisionowanie. Jeśli chcesz rozproszone provisionowanie, możesz dodać więcej węzłów z odpowiednią konwencją nazewnictwa, jako listę w Twoim uruchamianym pliku yaml.

defaults/main.yml,

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

# zaprojektuj swoją architekturę infrastruktury
nodes:
  - name: standalone-node    # nazwa węzła, np. standalone-node/name-node/secondary-name-node/data-node1/data-node2 ..
    zone: europe-west4-a     # wybierz bliskie regiony, rozdziel na inne węzły
    machine_type: f1-micro   # zwiększ, gdy potrzebujesz
    ips:
        - nic: 
            name: "ip-01"
    tags: hadoop             # tagi sieciowe używane przez zasady FW! Użyj nazwy narzędzia, np. hadoop, elasticsearch ...
    labels:                  # filtrowanie! Użyj nazwy narzędzia jako typ + master/worker jako nazwę
        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 jest lepsze dla przypadków produkcyjnych
            boot: false
        - disk: 
            name: "log-disk-01"
            size: 300
            auto_delete: true     # false jest lepsze dla przypadków produkcyjnych
            boot: false

Zależności

n/a

Przykładowy playbook

Kliknij aby przetestować i zobaczyć przykładowe playbooki.

ansible.cfg

[defaults]
host_key_checking = False
inventory = hosts

remote_user = tansudasli                          # twoje konto GCP
private_key_file = ~/.ssh/google_compute_engine   # Jeśli ustawione, zawsze używa tego do autoryzacji

[inventory]
# Lista włączonych wtyczek do inwentarza i kolejność, w jakiej są używane.
enable_plugins = host_list, script, yaml, ini, auto, gcp_compute

provision.yaml

- name: Utwórz instancję obliczeniową
  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:
    # uruchom z domyślnymi wartościami zmiennych
    - role: tansudasli.gcp_instances  

Licencja

Apache-2.0

Informacje o autorze

tansudasli

O projekcie

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

Zainstaluj
ansible-galaxy install tansudasli.gcp_instances
Licencja
apache-2.0
Pobrania
85
Właściciel
Ansible role boilerplates to inject into the projects that runs on GCP