Untuk menggunakan informasi dalam bagian ini, Anda harus terbiasa dengan OpenStack Compute.
Untuk mengatur variabel lingkungan dan mengotentikasi terhadap endpoint Compute API, lihat Authenticate (membuktikan).
Contoh ini menggunakan method get_nova_credentials_v2
:
def get_nova_credentials_v2():
d = {}
d['version'] = '2'
d['username'] = os.environ['OS_USERNAME']
d['api_key'] = os.environ['OS_PASSWORD']
d['auth_url'] = os.environ['OS_AUTH_URL']
d['project_id'] = os.environ['OS_TENANT_NAME']
return d
Kode ini berada di file credentials.py
, yang semua sampel impor.
Gunakan metode ``get_nova_credentials_v2 () `` untuk mengisi dan mendapatkan kamus:
credentials = get_nova_credentials_v2()
Program berikut ini berisi server dengan menggunakan Compute API v2.
Mengimpor modul berikut:
from credentials import get_nova_credentials_v2
from novaclient.client import Client
Dapatkan Nova kredensial. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Daftar server dengan pemanggilan servers.list
pada object nova_client
:
print(nova_client.servers.list())
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
print(nova_client.servers.list())
Program berikut membuat server (VM) dengan menggunakan Compute API v2.
Mengimpor modul berikut:
import time
from credentials import get_nova_credentials_v2
from novaclient.client import Client
Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Dapatkan flavor dan image untuk digunakan untuk membuat server. Kode ini menggunakan image cirros
, flavor m1.tiny
, dan jaringan private
:
image = nova_client.images.find(name="cirros")
flavor = nova_client.flavors.find(name="m1.tiny")
net = nova_client.networks.find(label="private")
Untuk membuat server, gunakan jaringan, image, dan flavor:
nics = [{'net-id': net.id}]
instance = nova_client.servers.create(name="vm2", image=image,
flavor=flavor, key_name="keypair-1", nics=nics)
Jalankan (run) perintah "Sleep for five seconds", dan tentukan apakah server/vm dibuat dengan pemanggilan nova_client.servers.list()
:
print("Sleeping for 5s after create command")
time.sleep(5)
print("List of VMs")
print(nova_client.servers.list())
#!/usr/bin/env python
import time
from credentials import get_nova_credentials_v2
from novaclient.client import Client
try:
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
image = nova_client.images.find(name="cirros")
flavor = nova_client.flavors.find(name="m1.tiny")
net = nova_client.networks.find(label="private")
nics = [{'net-id': net.id}]
instance = nova_client.servers.create(name="vm2", image=image,
flavor=flavor, key_name="keypair-1", nics=nics)
print("Sleeping for 5s after create command")
time.sleep(5)
print("List of VMs")
print(nova_client.servers.list())
finally:
print("Execution Completed")
Program berikut menghapus server (VM) dengan menggunakan Compute API v2.
Mengimpor modul berikut:
import time
from credentials import get_nova_credentials_v2
from novaclient.client import Client
Dapatkan Nova kredensial. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Menentukan apakah `` vm1`` Server ada:
servers_list
.servers_list
dan bandingkan nama dengan vm1
.server_exists
untuk True
dan istirahat (break) dari for loop:servers_list = nova_client.servers.list()
server_del = "vm1"
server_exists = False
for s in servers_list:
if s.name == server_del:
print("This server %s exists" % server_del)
server_exists = True
break
Jika server ada, jalankan metode delete
dari objek nova_client.servers
:
nova_client.servers.delete(s)
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
servers_list = nova_client.servers.list()
server_del = "vm1"
server_exists = False
for s in servers_list:
if s.name == server_del:
print("This server %s exists" % server_del)
server_exists = True
break
if not server_exists:
print("server %s does not exist" % server_del)
else:
print("deleting server..........")
nova_client.servers.delete(s)
print("server %s deleted" % server_del)
Program berikut men-update nama server (VM) dengan menggunakan Compute API v2.
Mengimpor modul berikut:
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_server
print_server
adalah metode didefinisikan dalam utils.py
dan mencetak rincian server seperti yang ditunjukkan di daftar kode di bawah ini:
def print_server(server):
print("-"*35)
print("server id: %s" % server.id)
print("server name: %s" % server.name)
print("server image: %s" % server.image)
print("server flavor: %s" % server.flavor)
print("server key name: %s" % server.key_name)
print("user_id: %s" % server.user_id)
print("-"*35)
Dapatkan OpenStack Kredensial. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Dapatkan instance server menggunakan server_id
dan mencetak rincian dengan calling method print_server
:
server_id = '99889c8d-113f-4a7e-970c-77f1916bfe14'
server = nova_client.servers.get(server_id)
n = server.name
print_server(server)
Call (panggil) server.update
pada objek server dengan nilai baru untuk variable name
:
server.update(name = n + '1')
Dapatkan instance terbaru dari server:
server_updated = nova_client.servers.get(server_id)
Call (panggil) ``print_server``lagi untuk memeriksa rincian update server:
print_server(server_updated)
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_server
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
# Change the server_id specific to your environment
server_id = '99889c8d-113f-4a7e-970c-77f1916bfe14'
server = nova_client.servers.get(server_id)
n = server.name
print_server(server)
server.update(name=n +'1')
server_updated = nova_client.servers.get(server_id)
print_server(server_updated)
Program berikut daftar flavor dan rincian mereka dengan menggunakan Compute API v2.
Mengimpor modul berikut:
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_flavors
Method print_flavors
didefinisikan dalam utils.py
dan mencetak rincian flavor:
def print_flavors(flavor_list):
for flavor in flavor_list:
print("-"*35)
print("flavor id : %s" % flavor.id)
print("flavor name : %s" % flavor.name)
print("-"*35)
Dapatkan kredensial OpenStack. Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Daftar rasa dengan pemanggilan list()
pada object nova_client.flavors
:
flavors_list = nova_client.flavors.list()
Mencetak rincian flavor, id dan nama dengan pemanggilan print_flavors
:
print_flavors(flavors_list)
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_flavors
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
flavors_list = nova_client.flavors.list()
print_flavors(flavors_list)
Program berikut daftar IP mengambang dan rincian mereka dengan menggunakan Compute API v2.
Mengimpor modul berikut:
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_values_ip
Metode print_values_ip
didefinisikan dalam utils.py
dan mencetak rincian objek floating_ip :
def print_values_ip(ip_list):
ip_dict_lisl = []
for ip in ip_list:
print("-"*35)
print("fixed_ip : %s" % ip.fixed_ip)
print("id : %s" % ip.id)
print("instance_id : %s" % ip.instance_id)
print("ip : %s" % ip.ip)
print("pool : %s" % ip.pool)
Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Daftar IP mengambang dengan pemanggilan list()
pada object nova_client.floating_ips
:
ip_list = nova_client.floating_ips.list()
Cetak rincian objek IP mengambang dengan pemanggilan print_values_ip
:
print_values_ip(ip_list)
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_values_ip
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
ip_list = nova_client.floating_ips.list()
print_values_ip(ip_list)
Program berikut berisi host dengan menggunakan Compute API v2.
Mengimpor modul berikut:
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_hosts
Metode print_hosts
didefinisikan dalam utils.py
dan mencetak rincian obyek host:
def print_hosts(host_list):
for host in host_list:
print("-"*35)
print("host_name : %s" % host.host_name)
print("service : %s" % host.service)
print("zone : %s" % host.zone)
print("-"*35)
Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).
Mencontoh (instantiate) objek klien nova_client
dengan menggunakan objek kamus credentials
:
nova_client = Client(**credentials)
Daftar hosts dengan pemanggilan list()
pada object nova_client.hosts
:
host_list = nova_client.hosts.list()
Mencetak rincian obyek host dengan pemanggilan print_hosts(host_list)
:
print_hosts(host_list)
#!/usr/bin/env python
from credentials import get_nova_credentials_v2
from novaclient.client import Client
from utils import print_hosts
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
host_list = nova_client.hosts.list()
print_hosts(host_list)
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.