Làm việc với Nova bằng CLI (openstack client).
Một số khái niệm cần thiết để sử dụng nova
Instances là những máy ảo chạy trên cloud. Trước khi có thể chạy một instance, cần thu thập các thông tin sau:
- Instance source- nguồn để khởi tạo máy ảo, có thể là image, snapshot hoặc volume mà chứa image hay snapshot.
- Tên cho máy ảo
- Flavor cho máy ảo, nó định nghĩa compute, bộ nhớ, khả năng lưu trữ của máy ảo. Nó như một cấu hình phần cứng, định nghĩa kích thước của máy ảo.
- User data file
- Thông tin đăng nhập và bảo mật: key pair và security group.
- Có thể gán floating (public) IP address cho máy ảo để máy ảo có thể truy cập được từ bên ngoài cloud nếu muốn.
- Có thể gán cho máy ảo volume từ dich vụ block storage để lưu trữ lâu dài.
Làm việc với Openstack Nova sử dụng CLI.
Flavor
- Tạo flavor:
openstack flavor create --id auto --ram <dung lượng ram> --disk <dung lượng disk> --vcpu <số lượng cpu> --public <tên flavor>
- Liệt kê flavor:
openstack flavor list
- Hiển thị thông tin chi tiết về một flavor:
openstack flavor show <flavor id or name>
- Xóa một flavor:
openstack flavor delete <flavor id or name>
keypair
- Tạo keypair:
openstack keypair create [--public-key <file> | --private-key <file>] <tên keypair>
- Liệt kê các keypair trên hệ thống:
openstack keypair list
- Xóa bỏ 1 keypair
openstack keypair delete <tên keypair>
server
- Tạo máy ảo từ image
openstack server create --flavor <tên flavor> --image <tên image> \ --nic net-id=<id của network> --security-group <tên security group> \ --key-name <tên keypair> <tên vm>
- Tạo máy ảo từ volume
openstack server create --flavor <tên flavor> --volume <tên volume> \ --nic net-id=<id của network> --security-group <tên security group> \ --key-name <tên keypair> <tên vm>
- Xóa máy ảo
openstack server delete <tên VM>
- Tắt máy ảo
openstack server stop <tên VM>
- Bật máy ảo
openstack server start <tên VM>
- reboot một VM đang chạy.
openstack server reboot <tên VM>
- List tất cả VM
openstack server list
snapshot
- Tạo mới snapshot
openstack snapshot create <tên snapshot> <tên máy ảo>
- Hiển thị danh sách các snapshot
openstack snapshot list
- Xóa snapshot
openstack snapshot delete <tên hoặc ID của snapshot>
hypervisor
- Xem danh sách các hypervisor
openstack hypervisor list
Làm việc với Nova thông qua API sử dụng Curl.
- Get token từ keystone
curl -i -H "Content-Type: application/json" -d ' { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "admin", "domain": { "id": "default" }, "password": "osadmin" } } }, "scope": { "project": { "name": "admin", "domain": { "id": "default" } }}}}' "http://localhost:5000/v3/auth/tokens" ; echo
-
Token sẽ nằm trong phần header có key là
X-Subject-Token
sau đó gán vào biến $TOKEN -
Xem thêm tài liệu về Compute API
- Liệt kê các flavor:
curl -H "X-Auth-Token: $TOKEN" http://controller:8774/v2.1/flavors | python -mjson.tool
```
http://controller:8774/v2.1/flavors python -mjson.tool
{ “flavors”: [ { “id”: “1”, “links”: [ { “href”: “http://controller:8774/v2.1/flavors/1”, “rel”: “self” }, { “href”: “http://controller:8774/flavors/1”, “rel”: “bookmark” } ], “name”: “tiny” } ] }
- Xem thông tin về hypervisor:
curl -H “X-Auth-Token: $TOKEN” http://controller:8774/v2.1/os-hypervisors/detail | python -mjson.tool
lamth@Precision:~$ curl -s -H “X-Auth-Token: $TOKEN” http://192.168.30.171:8774/v2.1/os-hypervisors/detail | python -mjson.tool { “hypervisors”: [ { “cpu_info”: “{"vendor": "Intel", "model": "SandyBridge-IBRS", "arch": "x86_64", "features": ["pge", "avx", "xsaveopt", "clflush", "sep", "syscall", "tsc_adjust", "vme", "stibp", "msr", "xsave", "vmx", "cmov", "ssse3", "pat", "osxsave", "lm", "tsc", "nx", "fxsr", "sse4.1", "pae", "sse4.2", "pclmuldq", "cx16", "pcid", "ibpb", "tsc-deadline", "mmx", "arat", "cx8", "mce", "de", "aes", "mca", "pse", "lahf_lm", "popcnt", "pdpe1gb", "apic", "sse", "pni", "rdtscp", "sse2", "ss", "hypervisor", "spec-ctrl", "fpu", "ssbd", "pse36", "mtrr", "x2apic"], "topology": {"cores": 1, "cells": 1, "threads": 1, "sockets": 4}}”, “current_workload”: 0, “disk_available_least”: 23, “free_disk_gb”: 28, “free_ram_mb”: 8715, “host_ip”: “192.168.30.172”, “hypervisor_hostname”: “os-compute”, “hypervisor_type”: “QEMU”, “hypervisor_version”: 2012000, “id”: 1, “local_gb”: 28, “local_gb_used”: 0, “memory_mb”: 11787, “memory_mb_used”: 3072, “running_vms”: 4, “service”: { “disabled_reason”: null, “host”: “os-compute”, “id”: 5 }, “state”: “up”, “status”: “enabled”, “vcpus”: 4, “vcpus_used”: 4 } ] }
```