Skip to content

Instantly share code, notes, and snippets.

@vallard
Last active May 30, 2018 18:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vallard/73c297d8bfc0bce5e5e90002d693d8bc to your computer and use it in GitHub Desktop.
Save vallard/73c297d8bfc0bce5e5e90002d693d8bc to your computer and use it in GitHub Desktop.

UCS automatización pipeline con KUBAM y RHV 4.1

Ya Fijado

  • Ya existe una service profile template
  • KUBAM ya está instalado
  • supongamos que solo hay uno UCS para empezar
  • Los isos ya están mapeados

Pasos de automatización para crear un nuevo nodo

1. Conseguir información del IP de infoblox

Nos da:

ip
netmask
subnet
dns

2. Seleccionar los blades que serán asignados

todos los grupos del server:

curl $KUBAM/api/v2/servers

para poner un nuevo grupo dentro de KUBAM de servers, crear un archivo que tiene la informacion llamada servers.json:

{
     "name": "kube-group1",
     "credentials": {
       "user": "admin",
       "password": "Nbv_12345",
       "ip" : "172.28.225.163"
     },
     "type": "ucsc",
     "vlan": "default",
     "org": org-root/org-O-IAAS/org-O-IAAS-PHY/org-O-IAAS-PHY-S1"
}

para poner este nuevo grupo:

curl -X POST -H "Content-Type: application/json" -d "@./servers.json" $KUBAM/api/v2/servers

Con esto puedes ver los service profile templates que están:

curl $KUBAM/api/v2/servers/kube-group1/templates

para ver los blades que están usados:

✅ (actualizado con ucsc)

curl $KUBAM/api/v2/servers/kube-group1/servers

2. Poner los datos dentro de KUBAM

2.1 Grupos de Red

  • Ver si ya existe el network_group, si no crearlo:

curl -X POST -H "Content-Type: application/json" -d "@./netgrp1.json" $KUBAM/api/v2/networks

donde el archivo de netgrp1.json tiene:

{
 "gateway": "172.28.224.1",
 "name": "net01",
 "nameserver": "171.70.168.183",
 "netmask": "255.255.254.0",
 "ntpserver": "72.163.32.44"
}

que son los datos que obtuviste de infoblox.

curl $KUBAM/api/v2/networks

Para asegurar que la neuva red está.

2.2 Hosts

Tendrás que añadir los hosts a los hosts que ya existe

Consiguir los nodos que ya existe:

curl $KUBAM/api/v2/hosts

Hosts solo tiene GET,POST o DELETE. Para añadir otra host, tienes que aggregar todo:

curl -X POST -H "Content-Type: application/json" -d "@./hosts.json $KUBAM/api/v2/hosts

Supongamos que agregamos dos hosts nuevos, hosts.json parace así

[
   {
      "name": "kubam02",
      "ip": "172.28.225.131",
      "os": "rhvh4.1",
      "role": "generic",
      "network_group": "net01",
      "service_profile_template": "org-root/org-O-IAAS/org-O-IAAS-PHY/org-O-IAAS-PHY-S1/ls-kubam_pruebas"
      "server_group": "ucs01",
      "server": "1003/2/6"
    },
    {
      "name": "kubam03",
      "ip": "172.28.225.132",
      "os": "rhvh4.1",
      "role": "generic",
      "network_group": "net01",
      "service_profile_template": "org-root/org-O-IAAS/org-O-IAAS-PHY/org-O-IAAS-PHY-S1/ls-kubam_pruebas",
      "server_group": "ucs01",
      "server": "1003/2/7"
    }
]
  • Fijate que server es la combinación de: //. El <domain id> se puede encontrar corriendo curl $KUBAM/api/v2/servers/<server_group>/servers.

3. Despleigar los nodos

3.1 Despleigar los imagenes

curl -X POST -H "Content-Type: application/json" -d ["kubam02", "kubam03"]' $KUBAM/api/v2/deploy/images

3.2 Despleigar los nodos

curl -X POST -H "Content-Type: application/json" $KUBAM/api/v2/<server_group>/deploy

3.3 Despleigar solo vmedia

curl -X POST -H "Content-Type: application/json" $KUBAM/api/v2/<server_group>/vmedia
@vallard
Copy link
Author

vallard commented May 14, 2018

curl -X POST -H "Content-Type: application/json"  $KUBAM/api/v2/<server_group>/deploy
  • If service profile template is defined in the host, then just deploy servers from existing template
  • if not create everything
curl -X POST -H "Content-Type: application/json"  $KUBAM/api/v2/<server_group>/clone
  • clone spt if defined and add vmedia and boot order to it
curl -X POST -H "Content-Type: application/json"  $KUBAM/api/v2/<server_group>/deploy/vmedia
  • just create vmedia policies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment