Networking

Networking

Untuk menggunakan informasi dalam bagian ini, Anda harus memiliki pemahaman umum OpenStack Networking, OpenStack Compute, dan integrasi antara keduanya. Anda juga harus memiliki akses ke sebuah plug-in yang mengimplementasikan Networking API v2.0.

Atur variabel lingkungan

Pastikan bahwa Anda mengatur variabel lingkungan yang relevan.

Sebagai contoh, lihat file shell contoh yang menetapkan variabel tersebut untuk mendapatkan mandat (credential):

export OS_USERNAME="admin"
export OS_PASSWORD="password"
export OS_TENANT_NAME="admin"
export OS_AUTH_URL="http://IPADDRESS/v2.0"

Dapatkan kredensial

Contoh pada bagian ini menggunakan metode get_credentials:

def get_credentials():
    d = {}
    d['username'] = os.environ['OS_USERNAME']
    d['password'] = os.environ['OS_PASSWORD']
    d['auth_url'] = os.environ['OS_AUTH_URL']
    d['tenant_name'] = os.environ['OS_TENANT_NAME']
    return d

Kode ini berada di file credentials.py, yang semua sampel impor.

Gunakan metode ``get_credentials () `` untuk mengisi dan mendapatkan kamus (dictionary):

credentials = get_credentials()

Dapatkan Nova kredensial

Contoh pada bagian ini menggunakan metode get_nova_credentials

def get_nova_credentials():
    d = {}
    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() untuk mengisi dan mendapatkan kamus (dictionary):

nova_credentials = get_nova_credentials()

Buat jaringan (network)

Program berikut membuat jaringan:

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials

network_name = 'sample_network'
credentials = get_credentials()
neutron = client.Client(**credentials)
try:
    body_sample = {'network': {'name': network_name,
                   'admin_state_up': True}}

    netw = neutron.create_network(body=body_sample)
    net_dict = netw['network']
    network_id = net_dict['id']
    print('Network %s created' % network_id)

    body_create_subnet = {'subnets': [{'cidr': '192.168.199.0/24',
                          'ip_version': 4, 'network_id': network_id}]}

    subnet = neutron.create_subnet(body=body_create_subnet)
    print('Created subnet %s' % subnet)
finally:
    print("Execution completed")

Daftar networks

Program berikut daftar jaringan:

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials
from utils import print_values

credentials = get_credentials()
neutron = client.Client(**credentials)
netw = neutron.list_networks()

print_values(netw, 'networks')

Untuk print_values, lihat Print values.

Buat port

Program berikut membuat port:

#!/usr/bin/env python
from neutronclient.v2_0 import client
import novaclient.v2.client as nvclient
from credentials import get_credentials
from credentials import get_nova_credentials

credentials = get_nova_credentials()
nova_client = nvclient.Client(**credentials)

# Replace with server_id and network_id from your environment

server_id = '9a52795a-a70d-49a8-a5d0-5b38d78bd12d'
network_id = 'ce5d204a-93f5-43ef-bd89-3ab99ad09a9a'
server_detail = nova_client.servers.get(server_id)
print(server_detail.id)

if server_detail != None:
    credentials = get_credentials()
    neutron = client.Client(**credentials)

    body_value = {
                     "port": {
                             "admin_state_up": True,
                             "device_id": server_id,
                             "name": "port1",
                             "network_id": network_id
                      }
                 }
    response = neutron.create_port(body=body_value)
    print(response)

Untuk get_nova_credentials, lihat Get Nova credentials.

Untuk get_credentials, lihat Get credentials.

Daftar port

Program berikut daftar port:

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials
from utils import print_values

credentials = get_credentials()
neutron = client.Client(**credentials)
ports = neutron.list_ports()
print_values(ports, 'ports')

Untuk get_credentials lihat Get credentials.

Untuk print_values, lihat Print values.

Daftar port server

Program berikut berisi port untuk server:

#!/usr/bin/env python
from neutronclient.v2_0 import client
import novaclient.v2.client as nvclient
from credentials import get_credentials
from credentials import get_nova_credentials
from utils import print_values_server

credentials = get_nova_credentials()
nova_client = nvclient.Client(**credentials)

# change these values according to your environment

server_id = '9a52795a-a70d-49a8-a5d0-5b38d78bd12d'
network_id = 'ce5d204a-93f5-43ef-bd89-3ab99ad09a9a'
server_detail = nova_client.servers.get(server_id)
print(server_detail.id)

if server_detail is not None:
    credentials = get_credentials()
    neutron = client.Client(**credentials)
    ports = neutron.list_ports()

    print_values_server(ports, server_id, 'ports')
    body_value = {'port': {
        'admin_state_up': True,
        'device_id': server_id,
        'name': 'port1',
        'network_id': network_id,
        }}

    response = neutron.create_port(body=body_value)
    print(response)

Buat router dan menambahkan port subnet

Contoh ini melakukan kueri OpenStack Networking untuk membuat sebuah router dan menambahkan port untuk subnet.

  1. Mengimpor modul berikut:

    from neutronclient.v2_0 import client
    import novaclient.v2.client as nvclient
    from credentials import get_credentials
    from credentials import get_nova_credentials
    from utils import print_values_server
    
  2. Dapatkan Nova Kredensial. Lihat :ref:'Get Nova credentials <get-nova-credentials>'.

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

    nova_client = nvclient.Client(**credentials)
    
  4. Buat router dan menambahkan port untuk subnet:

    # Replace with network_id from your environment
    
    network_id = '81bf592a-9e3f-4f84-a839-ae87df188dc1'
    
    credentials = get_credentials()
    neutron = client.Client(**credentials)
    neutron.format = json
    request = {'router': {'name': 'router name',
                          'admin_state_up': True}}
    
    router = neutron.create_router(request)
    router_id = router['router']['id']
    # for example: '72cf1682-60a8-4890-b0ed-6bad7d9f5466'
    router = neutron.show_router(router_id)
    print(router)
    body_value = {'port': {
        'admin_state_up': True,
        'device_id': router_id,
        'name': 'port1',
        'network_id': network_id,
        }}
    
    response = neutron.create_port(body=body_value)
    print(response)
    print("Execution Completed")
    

Buat router: kode lengkap daftar contoh

#!/usr/bin/env python
from neutronclient.v2_0 import client
import novaclient.v2.client as nvclient
from credentials import get_credentials
from credentials import get_nova_credentials
from utils import print_values_server

credentials = get_nova_credentials()
nova_client = nvclient.Client(**credentials)

# Replace with network_id from your environment

network_id = '81bf592a-9e3f-4f84-a839-ae87df188dc1'
try:
    credentials = get_credentials()
    neutron = client.Client(**credentials)
    neutron.format = 'json'
    request = {'router': {'name': 'router name',
                          'admin_state_up': True}}
    router = neutron.create_router(request)
    router_id = router['router']['id']
    # for example: '72cf1682-60a8-4890-b0ed-6bad7d9f5466'
    router = neutron.show_router(router_id)
    print(router)
    body_value = {'port': {
        'admin_state_up': True,
        'device_id': router_id,
        'name': 'port1',
        'network_id': network_id,
        }}

    response = neutron.create_port(body=body_value)
    print(response)
finally:
    print("Execution completed")

Hapus jaringan

Contoh ini melakukan kueri OpenStack Networking untuk menghapus jaringan.

Untuk menghapus jaringan:

  1. Mengimpor modul berikut:

    from neutronclient.v2_0 import client
    from credentials import get_credentials
    
  2. Dapatkan kredensial. Lihat Get Nova credentials.

  3. Instantiate (mencontoh) objek klien neutron dengan menggunakan objek kamus credentials :

    neutron = client.Client(**credentials)
    
  4. Hapus jaringan:

    body_sample = {'network': {'name': network_name,
                   'admin_state_up': True}}
    
    netw = neutron.create_network(body=body_sample)
    net_dict = netw['network']
    network_id = net_dict['id']
    print('Network %s created' % network_id)
    
    body_create_subnet = {'subnets': [{'cidr': '192.168.199.0/24',
                          'ip_version': 4, 'network_id': network_id}]}
    
    subnet = neutron.create_subnet(body=body_create_subnet)
    print('Created subnet %s' % subnet)
    
    neutron.delete_network(network_id)
    print('Deleted Network %s' % network_id)
    
    print("Execution completed")
    

Hapus jaringan: kode lengkap daftar contoh

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials

network_name = 'temp_network'
credentials = get_credentials()
neutron = client.Client(**credentials)
try:
    body_sample = {'network': {'name': network_name,
                   'admin_state_up': True}}

    netw = neutron.create_network(body=body_sample)
    net_dict = netw['network']
    network_id = net_dict['id']
    print('Network %s created' % network_id)

    body_create_subnet = {'subnets': [{'cidr': '192.168.199.0/24',
                          'ip_version': 4, 'network_id': network_id}]}

    subnet = neutron.create_subnet(body=body_create_subnet)
    print('Created subnet %s' % subnet)

    neutron.delete_network(network_id)
    print('Deleted Network %s' % network_id)
finally:
    print("Execution Completed")

Daftar routers

Contoh ini melakukan kueri OpenStack Networking untuk daftar semua router.

  1. Mengimpor modul berikut:

    from neutronclient.v2_0 import client
    from credentials import get_credentials
    from utils import print_values
    
  2. Dapatkan kredensial. Lihat Get Nova credentials.

  3. Instantiate (mencontoh) objek klien neutron dengan menggunakan objek kamus credentials :

    neutron = client.Client(**credentials)
    
  4. Daftar router:

    routers_list = neutron.list_routers(retrieve_all=True)
    print_values(routers_list, 'routers')
    print("Execution completed")
    

    Untuk print_values, lihat Print values.

Daftar router: kode lengkap listing contoh

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials
from utils import print_values

try:
    credentials = get_credentials()
    neutron = client.Client(**credentials)
    routers_list = neutron.list_routers(retrieve_all=True)
    print_values(routers_list, 'routers')
finally:
    print("Execution completed")

Daftar kelompok keamanan.

Contoh ini melakukan kueri OpenStack Networking untuk daftar kelompok keamanan.

  1. Mengimpor modul berikut:

    from neutronclient.v2_0 import client
    from credentials import get_credentials
    from utils import print_values
    
  2. Dapatkan kredensial. Lihat Get credentials.

  3. Instantiate (mencontoh) objek klien neutron dengan menggunakan objek kamus credentials :

    neutron = client.Client(**credentials)
    
  4. Daftar kelompok keamanan (security group)

    sg = neutron.list_security_groups()
    print(sg)
    

Daftar kelompok keamanan: kode lengkap daftar contoh

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials
from utils import print_values

credentials = get_credentials()
neutron = client.Client(**credentials)
sg = neutron.list_security_groups()
print(sg)

Catatan

Kelompok keamanan OpenStack Networking berkarakter huruf case-sensitive sedangkan kelompok keamanan nova-network berkarakter huruf case-insensitive.

Daftar subnets

Contoh ini melakukan kueri OpenStack Networking untuk daftar subnet.

  1. Mengimpor modul berikut:

    from neutronclient.v2_0 import client
    from credentials import get_credentials
    from utils import print_values
    
  2. Dapatkan kredensial. Lihat :ref:'Get credentials <get-credentials>'.

  3. Instantiate (mencontoh) objek klien neutron dengan menggunakan objek kamus credentials :

    neutron = client.Client(**credentials)
    
  4. Daftar subnets:

    subnets = neutron.list_subnets()
    print(subnets)
    

Daftar subnets: kode lengkap daftar contoh

#!/usr/bin/env python
from neutronclient.v2_0 import client
from credentials import get_credentials
from utils import print_values

credentials = get_credentials()
neutron = client.Client(**credentials)
subnets = neutron.list_subnets()
print(subnets)
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.