89luca89/terrible

[IMPROVEMENT] Improve inventory defaults

開放

#91 建立於 2021年7月5日

 (0 則留言) (0 個反應) (1 位負責人)YAML (29 個分叉)github user discovery
enhancementexperimentalhelp wantedrefactoring

倉庫指標

星標
 (257 顆星)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

Right now, setting up a VM can be quite a bit of YAML code, so we should improve this giving better and sane defaults for all aspects of a VM

Right now we could improve setting up:

  1. if only 1 network is defined, it's default_route by default
  2. if only 1 network is defined, DNS and Gateway will default to xxx.xxx.xxx.1
  3. if only 1 network is defined, IP should default to ansible_host
  4. if a disk is declared, it will default to the first FStype (ext4, ufs, etc...)
  5. if a disk is declared, it will default mount to /mnt/${ disk name }
  6. if a disk is declared, it will default to the pool_name
  7. if a disk is declared, and it's a swap it should default mount_point to none without having to declare it
  8. pool_name should default to default
  9. if only 1 hypervisor is declared, VMs should default to it.

Ideally a simple inventory without many variables should be able to declare VMs in a simple manner like:

all:
  vars:
     disk_source: "/mnt/template.qcow2"
     os_family: RedHat
  hosts:
    terraform_node:
      ansible_host: localhost
      ansible_connection: local
    hypervisor_1:
      ansible_host: 10.90.20.12
      ansible_user: root
  children:
    deploy:
      children:
        my_nodes:
          hosts:
            node-0:
              cpu: 2
              memory: 2512
              ansible_host: 192.168.122.200
              data_disks:
                disk-1:
                  size: 5
...

Or even simpler if no external disks are declared

all:
  vars:
     disk_source: "/mnt/template.qcow2"
     os_family: RedHat
  hosts:
    terraform_node:
      ansible_host: localhost
      ansible_connection: local
    hypervisor_1:
      ansible_host: 10.90.20.12
      ansible_user: root
  children:
    deploy:
      children:
        my_nodes:
          hosts:
            node-0:
              cpu: 2
              memory: 2512
              ansible_host: 192.168.122.200
            node-1:
              cpu: 2
              memory: 2512
              ansible_host: 192.168.122.201

....

貢獻者指南