QuickStart
Gettinng started with Metamorph (Standalone)
Contents
Prerequisites
Requirements
- Metamorph installation done.
- Metamorph Controller running
- Metamorph API server running
- Web Server hosting ISO running on the port specified in Metamorph config.yaml file
- Any REST client (ex Postman)
- Baremetal Host with known IPMI IP/Username/password
Setting up OS in a Remote Baremetal host.
Metamorph API server could be made to run the following steps to install OS using REST API calls. Any deviation in the steps below may lead to OS not being successfully installed.
-
Create the Node object within Metamorph using the followng body in a
POSTmessageURL :
http://<Metamorph API Server>:8080/nodeBody :
json { "name": "<HostName>", "IPMIUser": "<IPMIUser>", "IPMIPassword": "<IPMIPassword>", "IPMIIP": "<IPMIIP>" } -
Update the Node information using
PUTmessage.URL :
http://<Metamorph API Server>:8080/node/<node_uuid>Example
Body:
json { "Domain": "vt.xyz.com", "ISOURL": "http://x.y.z.a:31180/ubuntu-18.04.4-server-amd64.iso", "ISOChecksum": "http://x.y.z.a:31180/ubuntu-18.04.4-server-amd64.iso.md5sum", "OsDisk": "/dev/sda", "Partitions": [ { "partitionName": "root", "size": "30g", "filesystem": { "mountpoint": "/", "fstype": "ext4", "mount-options": "defaults" } }, { "name": "boot", "size": "1g", "bootable": true, "primary": true, "filesystem": { "mountpoint": "/boot", "fstype": "ext4", "mount-options": "defaults" } }, { "name": "var-log", "size": "100g", "filesystem": { "mountpoint": "/var/log", "fstype": "ext4", "mount-options": "defaults" } }, { "name": "var", "size": ">300g", "filesystem": { "mountpoint": "/var", "fstype": "ext4", "mount-options": "defaults" } } ], "grubConfig": "image=bionic isolcpus=0-3,44-47 amd_iommu=on kernel_package=linux-image-5.0.0-23-generic kernel=hwe-18.04 hugepagesz=1G hugepages=160 intel_iommu=on console=ttyS1,115200n8 transparent_hugepage=never", "kvmPolicy": { "cpuAllocation": "1:1", "cpuPinning": "enabled", "cpuHyperthreading": "enabled" } } -
Check the state of the Node Object at this state using the following
GETmessageURL :
http://<Metamorph API Server>:8080/node/<node_uuid>The node should be in
READYWAITstate. -
Change the state of the node to
READYstate using the followingPUTmessage.URL :
http://<Metamorph API Server>:8080/node/<node_uuid>Body:
json { "State" : "ready" } -
Check the state of the Node Object at this state using the following
GETmessageURL :
http://<Metamorph API Server>:8080/node/<node_uuid>The node should be in
SETUPREADYWAITstate. -
Change the state of the node to
SETUPREADYstate using the followingPUTmessage.URL :
http://<Metamorph API Server>:8080/node/<node_uuid>Body:
json { "State" : "setupready" } -
On successful update, the ISO installation on the said node will get initiated with preliminary firmware upgrade/RAID configuration started if requested.
-
On successfull completion, the node state should be set to deployed.
Check the state of the Node Object at this state using the following
GETmessageURL :
http://<Metamorph API Server>:8080/node/<node_uuid>The node should be in
DEPLOYEDstate.
Troubleshooting
Please refer to the [troubleshooting guide][troubleshooting].