Tổng hợp Hướng dẫn xây dựng public/private cloud với Openstack

Đăng bởi vanthoi, 26/1/16, trong VPS & Dedicated Server. Trả lời: 0 Lượt xem: 4,040.

  1. vanthoi

    vanthoi Administrator
    Quản Trị Viên
    • 163/202

    Tham gia:
    1/9/12
    Bài viết:
    2,731
    Được thích:
    14,023
    Thành tích:
    163
    Giới tính:
    Nam
    Nghề nghiệp:
    Lập trình viên
    Đến từ:
    Bình Phục, Quảng Nam
    #1 vanthoi, 26/1/16 Lượt xem: 4,040
    Giới thiệu

    Openstack là dự án điện toán đám mây mã nguồn mở cho phép xây dựng public và private cloud. Openstack hoạt động như một nền tảng IaaS (infrastructure as a service). Dự án khởi đầu bởi Rackspace và NASA năm 2010, được quản lý bởi OpenStack Foundation và có tới hơn 200 công ty tham gia phát triển, bao gồm các cty lớn như Arista Networks, AT&T, AMD, Brocade Communications Systems, Canonical, Cisco, Dell, EMC, Ericsson, F5 Networks, Groupe Bull, Hewlett-Packard, IBM, Inktank, Intel, NEC, NetApp, Nexenta, Rackspace Hosting, Red Hat, SUSE Linux, VMware, Oracle and Yahoo!. Điều này cho thấy Openstack rất được các công ty công nghệ lớn quan tâm. Họ cũng sử dụng Openstack đây xây dựng các public/private cloud phục vụ cho chính cty mình.
    Openstack được xây dựng theo kiến trúc mô-đun, bao gồm các project nhỏ hơn như
    • Nova: Phục vụ tính toán (Computer)
    • Swift: Quản lý lưu trữ Object (Object Storage)
    • Cinder: Quản lý blocked storate (Block Storage)
    • Neutron: Quản lý mạng (Networking)
    • Horizon: Giao diện web để quản lý Openstack (Dashboard)
    • Keystone: Quản lý người dùng, truy cập (Identity Service)
    • Glance: Quản lý Image (Image Service)
    • Ceilometer: Phục vụ tính toán cho việc tính tiền (Telemetry Service)
    • Heat: Phối hợp xử lý thông tin (Orchestration)
    Cài đặt
    Giả sử bạn đã có 1 ubuntu server chạy trên VirtualBox có user name là localadmin; 2 card mạng:eth0 (NAT) để kết nối internet, eth1 (Host-only) giúp cho máy host (máy mà bạn cài VirtualBox) và các máy ảo trong VirtualBox tương tác với nhau; openssh-server đã được cài (nếu chưa cài thì dùng lệnh $ sudo apt-get –y install openssh-server); và có 1 partition loại Linux LVM.
    1/Config network:
    $ sudo apt-get update
    $ sudo apt-get upgrade
    $ sudo apt-get install bridge-utils
    $ sudo reboot
    Dùng lệnh $ sudo nano /etc/network/interfaces và thêm vào đoạn sau:
    auto br100
    iface br100 inet static
    bridge_ports eth1
    bridge_stp off
    bridge_maxwait 0
    bridge_fd 0
    address 192.168.56.21
    netmask 255.255.0.0
    broadcast 192.168.255.255
    Khởi động lại network
    $ sudo /etc/init.d/networking restart
    2/ Install NTP
    Openstack nova cần NTP để đảm bảo thời gian trên các Cloud compute đồng bộ, do đó trên Cloud Controller cần cài NTP server và trên Cloud compute cần cài NTP client:
    $ sudo apt-get install ntp
    Dùng lệnh $ sudo nano /etc/ntp.conf và thêm vào 2 dòng sau:
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    Khởi động lại ntp
    $ sudo /etc/init.d/ntp restart
    3/ Install Glance
    $ sudo apt-get install glance
    4/ Install mysql-server
    $ sudo apt-get install -y mysql-server
    Trong quá trình cài đặt, nhập mật mã cho root12345.
    Dùng lệnh $ sudo nano /etc/mysql/my.cnf để sửa 127.0.0.1 thành 0.0.0.0, tức là
    bind-address = 0.0.0.0
    Khởi động lại mysql
    $ sudo restart mysql
    Tạo database nova và cấp quyền truy cập từ bất kì máy nào cho root:
    $ sudo mysql -uroot –p’12345′ -e ‘create database nova;’
    $ sudo mysql -uroot -p’12345′ -e “grant all privileges on *.* to ‘root’@’%’ with grant option;”
    $ sudo mysql -uroot -p’12345′ -e “set password for ‘root’@’%’ = password(’12345′);”
    5/ Install Nova
    $ sudo apt-get install -y rabbitmq-server nova-common nova-doc python-nova nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute
    $ sudo apt-get install -y euca2ools
    $ sudo apt-get install -y unzip
    Dùng lệnh $ sudo nano /etc/nova/nova.conf để sửa nội dung lại như sau:
    –dhcpbridge_flagfile=/etc/nova/nova.conf
    –dhcpbridge=/usr/bin/nova-dhcpbridge
    –logdir=/var/log/nova
    –lock_path=/var/lock/nova
    –state_path=/var/lib/nova
    –verbose
    –s3_host=192.168.56.21
    –rabbit_host=192.168.56.21
    –cc_host=192.168.56.21
    –ec2_url=http:// 192.168.56.21:8773/services/Cloud
    –fixed_range=192.168.0.0/16
    –network_size=8
    –FAKE_subdomain=ec2
    –routing_source_ip=192.168.56.21
    –sql_connection=mysql://root:12345@192.168.56.21/nova
    –glance_host=192.168.56.21
    –image_service=nova.image.glance.GlanceImageService
    –iscsi_ip_prefix=192.168.
    Enable iscsitarget
    $ sudo sed -i ’s/false/true/g’ /etc/default/iscsitarget
    $ sudo service iscsitarget restart
    Thay sda5 trong 2 dòng lệnh sau đây tương ứng với tên của LVM partition trong trường hợp của bạn:
    $ sudo pvcreate /dev/sda5
    $ sudo vgcreate nova-volumes /dev/sda5
    $ sudo groupadd nova
    $ sudo chown -R root:nova /etc/nova
    $ sudo chmod 644 /etc/nova/nova.conf
    $ sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry
    6/ Tạo nova schema, network, admin
    $ sudo nova-manage db sync
    $ sudo nova-manage network create 192.168.56.0/24 1 255
    $ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27
    $ sudo nova-manage user admin novaadmin
    $ sudo nova-manage project create proj novaadmin
    $ sudo mkdir /home/localadmin/creds
    $ sudo nova-manage project zipfile proj novaadmin /home/localadmin/creds/novacreds.zip
    $ cd /home/localadmin/creds
    $ unzip novacreds.zip
    $ sudo chown localadmin:localadmin /home/localadmin/creds/ -R
    $ source /home/localadmin/creds/novarc
    Mỗi lần dùng nova đều phải dùng đến các thiết lập environment trong novarc, nên để tránh mỗi lần đều phải dùng source novarc, ta thêm các thiết lập này vào .bashrc luôn:
    $ cat /home/localadmin/creds/novarc >> /home/localadmin/.bashrc
    $ source /home/localadmin/.bashrc
    Khởi động lại nova
    $ sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry
    Nếu thiết lập các bước đúng thì dùng lệnh $ euca-describe-availability-zones verbose sẽ hiện ra thông tin giống như sau:
    AVAILABILITYZONE nova available
    AVAILABILITYZONE |- server1
    AVAILABILITYZONE | |- nova-compute enabled : -) 2011-04-03 07:48:50
    AVAILABILITYZONE | |- nova-scheduler enabled : -) 2011-04-03 07:48:48
    AVAILABILITYZONE | |- nova-network enabled : -) 2011-04-03 07:48:49
    AVAILABILITYZONE | |- nova-volume enabled : -) 2011-04-03 07:48:49
    7/ Install Dashboard
    $ sudo apt-get install -y bzr
    $ sudo easy_install virtualenv
    $ sudo bzr init-repo .
    $ sudo bzr branch lp:eek:penstack-dashboard -r 46 /opt/osdb
    $ cd /opt/osdb
    $ sudo sh run_tests.sh
    $ cd openstack-dashboard
    Dùng lệnh $ sudo nano /opt/osdb/openstack-dashboard/local/local_settings.py để sửa nội dung thành (KEY được lấy giống như file novarc):
    NOVA_DEFAULT_ENDPOINT = ’http://localhost:8773/services/Cloud’
    NOVA_DEFAULT_REGION = ’nova’
    NOVA_ACCESS_KEY = ’3d4b755a-abf1-4c56-b2a0-9fe95a9c3f91:proj’
    NOVA_SECRET_KEY = ’8b1e3378-268f-4dc1-a6df-3a2117c6c919’
    NOVA_ADMIN_USER = ’novaadmin’
    NOVA_PROJECT = ’proj’
    Dashboard mặc định dùng SQLite, bây giờ ta thiết lập lại để dùng MySQL
    $ sudo apt-get install libmysqlclient-dev
    $ sudo apt-get install python-dev
    $ cd /opt/osdb/openstack-dashboard
    $ sudo bash
    $ source .dashboard-venv/bin/activate
    $ easy_install mysql-python
    $ mysql -uroot –p’12345’
    Mysql> create database dashboarddb;
    Mysql> grant ALL on dashboarddb.* to nova@localhost identified by ’12345’;
    Sửa file /opt/osdb/openstack-dashboard/local/local_settings.py:
    DATABASES = {
    ’default’: {
    ’ENGINE’: ’django.db.backends.mysql’,
    ’NAME’: ’dashboarddb’,
    ’USER’: ’nova’,
    ’PASSWORD’: ’mygreatsecret’,
    ’HOST’: ’localhost’,
    ’default-character-set’: ’utf8’,
    }
    }
    $ sudo ./tools/with_venv.sh dashboard/manage.py syncdb
    8/ Running Dashboard on apache2 with mod_wsgi
    $ sudo apt-get install apache2 libapache2-mod-wsgi
    Thay toàn bộ nội dung file /opt/osdb/openstack-dashboard/dashboard/wsgi/django.wsgi như sau:
    import sys
    import site
    import os
    #we are adding virtual enviornment path.
    vepath = ’/opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages’
    os.environ[’PYTHON_EGG_CACHE’] = ’/opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages’
    prev_sys_path = list(sys.path)
    # add the site-packages of our virtualenv as a site dir
    site.addsitedir(vepath)
    # reorder sys.path so new directories from the addsitedir show up first
    new_sys_path = [p for p in sys.path if p not in prev_sys_path]
    for item in new_sys_path:
    sys.path.remove(item)
    sys.path[:0] = new_sys_path
    # import from down here to pull in possible virtualenv django install
    from django.core.handlers.wsgi import WSGIHandler
    os.environ[’DJANGO_SETTINGS_MODULE’] = ’dashboard.settings’
    application = WSGIHandler()
    Tạo file mới $ sudo nano /etc/apache2/sites-available/openstack
    và nhập vào nội dung sau:
    Listen 8888
    <VirtualHost 192.168.56.21:8888>
    ServerName 192.168.56.21
    WSGIScriptAlias / /opt/osdb/openstack-dashboard/dashboard/wsgi/django.wsgi
    Alias /media/admin/ /opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages/django/contrib/admin/media/
    </VirtualHost>
    Enable virtual host.
    $ sudo a2ensite openstack
    $ sudo /etc/init.d/apache2 reload
    Trên máy host, mở web browser và nhập vào http://192.168.0.1:8888, sau đó có thể dùng novaadmin và password để đăng nhập. Nếu xuất hiện lỗi Can’t extract file(s) to egg cache với thông báo là không có quyền write vào 1 file nào đó thì dùng lệnh $ sudo chmod 777 cho file đó là ok.

    Nguồn (Sưu tầm)
     

    Chia sẻ

    socbay66 thích bài này.
    Đang tải...
    Đang tải...

Chia sẻ

Loading...
Đang tải...