DevStack là giúp triển khai mô hình Openstack cho Developers, có thể chạy trên Single-Machine.
Trong bài này sẽ hướng dẫn cách cài đặt DevStack, với các module mở rộng như Magnum [1] (triển khai Containers trên Openstack), Murano [2] (Application catalogs), …
Môi trường
DevStack yêu cầu chạy trên HDH Linux. Các hệ điều hành Linux mà bạn có thể sử dụng như: Ubuntu 14.04/16.04, Fedora 23/24, CentOS/RHEL 7, cũng như Debian và OpenSUSE.
Trong bài này tất cả ví dụ được sử dụng trên CentOS 7, các hệ điều hành khác tương tự
Cài đặt git
sudo yum install git
Cài Git trên Ubuntu
sudo apt-get install git
Cài đặt user stack (không cài đặt devstack dưới tài khoản root)
sudo su -adduser stackecho "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoersexitsu stack
Cài đặt Devstack với module Murano và Magnum
Murano project là dự án application catalog của Openstack, cho phép lập trình viên có thể public các ứng dụng dưới dạng cloud-ready, người dùng có thể triển khai, cài đặt các ứng dụng này chỉ với vài nút bấm.
Ví dụ về Murano:
Tải và cấu hình Devstack
cd ~git clone https://git.openstack.org/openstack-dev/devstackcd devstackgit checkout stable/mitaka
Tạo file local.conf
để cấu hình cài đặt Devstack, nội dung file local.conf
được giải thích lần lượt như sau, file hoàn chỉnh ở bên dưới:
[[local|localrc]]# CredentialsADMIN_PASSWORD=123456DATABASE_PASSWORD=$ADMIN_PASSWORDRABBIT_PASSWORD=$ADMIN_PASSWORDSERVICE_PASSWORD=$ADMIN_PASSWORDSERVICE_TOKEN=$ADMIN_PASSWORDSWIFT_PASSWORD=$ADMIN_PASSWORDenable_service rabbit# Ensure we are using neutron networking rather than nova networkingdisable_service n-netenable_service q-svcenable_service q-agtenable_service q-dhcpenable_service q-l3enable_service q-metaenable_service neutron
Bắt đầu file cấu hình, ta đặt Password cho Admin và các services khác mặc định là 123456. Bật và tắt một số services mặc định của Devstack. Tiếp tục file:
# Disable LBaaS(v1) servicedisable_service q-lbaas# Enable LBaaS(v2) servicesenable_service q-lbaasv2enable_service octaviaenable_service o-cwenable_service o-hkenable_service o-hmenable_service o-api
Tắt LBaaS v1 và bật v2. Tiếp theo:
# Enable heat pluginenable_plugin heat https://git.openstack.org/openstack/heat# Enable barbican servicesenable_plugin barbican https://git.openstack.org/openstack/barbicanenable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaasenable_plugin octavia https://git.openstack.org/openstack/octavia
Magnum yêu cầu bật plugin Heat, Barbican là REST API services giúp quản lý an toàn mật khẩu, mã hóa và X.509 Certificates.
enable_plugin murano git://git.openstack.org/openstack/muranoenable_service murano-cfapienable_plugin ceilometer git://git.openstack.org/openstack/ceilometer# Enable magnum plugin after dependent pluginsenable_plugin magnum https://git.openstack.org/openstack/magnum# Optional: uncomment to enable the Magnum UI plugin in Horizonenable_plugin magnum-ui https://github.com/openstack/magnum-ui# enable swift in devstack for Docker 2.0enable_service s-proxyenable_service s-objectenable_service s-containerenable_service s-account
Bật các modules Magnum, UI và Murano. Cuối cùng ta được file local.conf hoàn chỉnh như sau [3]:
Chạy lệnh sau và đợi Devstack tự động Clone các phần thiếu và tự động cấu hình cài đặt. Đi pha 1 hoặc vài ly cà phê rồi đợi, cài đặt thường diễn ra trong vòng 30 phút - vài tiếng tùy cấu hình server.
./stack.sh
Hoàn tất và sử dụng
Truy cập http://localhost/dashboard, sử dụng tài khoản admin/123456
Một số lỗi hay gặp
Danh sách các lỗi hay gặp và cách xử lý
Error ./stack.sh line 488: generate-subunit command not found
wget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.pysudo pip install -U os-testr
ImportError: No module named osc_lib
sudo pip install osc-lib
ImportError: No module from neutron_lib.db import model.base
sudo pip install neutron-libb
sudo permission install python-openstackclient
sudo pip install python-openstackclient
Tham khảo
[1] https://wiki.openstack.org/wiki/Magnum
[2] https://wiki.openstack.org/wiki/Murano
[3] https://gist.github.com/duyet/1fe56d669bf5587f1cdc3bd8b7aabc07