Compute (komputasi)

Compute (komputasi)

Untuk menggunakan informasi dalam bagian ini, Anda harus terbiasa dengan OpenStack Compute.

Atur variabel lingkungan

Untuk mengatur variabel lingkungan dan mengotentikasi terhadap endpoint Compute API, lihat Authenticate (membuktikan).

Dapatkan kredensial OpenStack (API v2)

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()

Daftar server (API v2)

Program berikut ini berisi server dengan menggunakan Compute API v2.

  1. Mengimpor modul berikut:

    from credentials import get_nova_credentials_v2
    from novaclient.client import Client
    
  2. Dapatkan Nova kredensial. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. Daftar server dengan pemanggilan servers.list pada object nova_client:

    print(nova_client.servers.list())
    

Daftar kode server pendaftaran contoh

#!/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())

Membuat server (API v2)

Program berikut membuat server (VM) dengan menggunakan Compute API v2.

  1. Mengimpor modul berikut:

    import time
    from credentials import get_nova_credentials_v2
    from novaclient.client import Client
    
  2. Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. 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")
    
  5. 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)
    
  6. 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())
    

Buat kode server pendaftaran contoh

#!/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")

Hapus Server (API v2)

Program berikut menghapus server (VM) dengan menggunakan Compute API v2.

  1. Mengimpor modul berikut:

    import time
    from credentials import get_nova_credentials_v2
    from novaclient.client import Client
    
  2. Dapatkan Nova kredensial. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. Menentukan apakah `` vm1`` Server ada:

    1. Daftar server: servers_list.
    2. Iterasi (iterate) atas servers_list dan bandingkan nama dengan vm1.
    3. Jika benar, tetapkan nama variabel 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
    
  5. Jika server ada, jalankan metode delete dari objek nova_client.servers:

    nova_client.servers.delete(s)
    

Hapus kode server contoh

#!/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)

Update server (API v2)

Program berikut men-update nama server (VM) dengan menggunakan Compute API v2.

  1. 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)
    
  2. Dapatkan OpenStack Kredensial. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. 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)
    
  5. Call (panggil) server.update pada objek server dengan nilai baru untuk variable name:

    server.update(name = n + '1')
    
  6. Dapatkan instance terbaru dari server:

    server_updated = nova_client.servers.get(server_id)
    
  7. Call (panggil) ``print_server``lagi untuk memeriksa rincian update server:

    print_server(server_updated)
    

Update kode server daftar contoh

#!/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)

Daftar flavor (API v2)

Program berikut daftar flavor dan rincian mereka dengan menggunakan Compute API v2.

  1. 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)
    
  2. Dapatkan kredensial OpenStack. Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. Daftar rasa dengan pemanggilan list() pada object nova_client.flavors:

    flavors_list =  nova_client.flavors.list()
    
  5. Mencetak rincian flavor, id dan nama dengan pemanggilan print_flavors:

    print_flavors(flavors_list)
    

Daftar flavor kode daftar contoh

#!/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)

Daftar IP mengambang (API v2)

Program berikut daftar IP mengambang dan rincian mereka dengan menggunakan Compute API v2.

  1. 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)
    
  2. Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. Daftar IP mengambang dengan pemanggilan list() pada object nova_client.floating_ips:

    ip_list = nova_client.floating_ips.list()
    
  5. Cetak rincian objek IP mengambang dengan pemanggilan print_values_ip:

    print_values_ip(ip_list)
    

Daftar IP mengambang kode daftar contoh

#!/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)

Daftar host (API v2)

Program berikut berisi host dengan menggunakan Compute API v2.

  1. 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)
    
  2. Dapatkan kredensial OpenStack. Lihat Get OpenStack credentials (API v2).

  3. Mencontoh (instantiate) objek klien nova_client dengan menggunakan objek kamus credentials :

    nova_client = Client(**credentials)
    
  4. Daftar hosts dengan pemanggilan list() pada object nova_client.hosts:

    host_list = nova_client.hosts.list()
    
  5. Mencetak rincian obyek host dengan pemanggilan print_hosts(host_list):

    print_hosts(host_list)
    

Daftar host kode daftar contoh

#!/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)
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.