Skip to content

Cài đặt mô hình Openstack Multi-Nodes sử dụng Saltstack

Notifications You must be signed in to change notification settings

vietstacker/openstack-salstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 

Repository files navigation

##1. Giới thiệu

Đây là 1 script nhỏ để giúp cho việc cài đặt Openstack Multi-Node đơn giản hơn, ít nhàm chán hơn, quản lý tập trung dễ dàng hơn... và còn nhiều cái hơn nữa. Ý tưởng là sử dụng saltstack để quản lý cấu hình tập trung. Chúng ta chỉ chỉnh sửa cấu hình tại Saltstack master và áp cấu hình lên tất cả các Node trong mô hình của mình. Mỗi khi thay đổi cấu hình ta cũng chỉ cần sửa trên Master và lại áp cấu hình mới này lên các Node theo ý muốn sau đó restart lại các service tương ứng, mọi việc sẽ được thực hiện trong vòng chưa đầy 1 nốt nhạc thay vì phải SSH lên từng Node và sửa.

##2. Mô hình Lab

OS Ubuntu Server 14.04 amd64
Network GRE Tunnel
Hypervisor QEMU

Controller Node:

  • Openstack Controller
  • Saltmaster
  • Saltminion
Hostname controller
eth0 10.0.0.11
eth1 Internet Access
OS Ubuntu 14.04 amd64

Compute nodes

  • Openstack Compute & Network
  • Saltminion
Hostname compute1
eth0 10.0.0.21
eth1 10.0.1.21
eth2 Internet Access
/dev/sdb cinder-volume
Hostname compute2
eth0 10.0.0.31
eth1 10.0.1.31
eth2 Internet Access
/dev/sdb cinder-volume

##3. Các bước cài đặt Cách cài đặt salt-master và salt-minion tham khảo tại đây

###Controller Node /etc/salt/master

interface: 0.0.0.0

file_roots:
  base:
	    - /srv/salt

/etc/salt/minion

master: 10.0.0.11

Restart lại các dịch vụ

service salt-master restart
service salt-minion restart

###Compute Nodes /etc/salt/minion

master: 10.0.0.11

Restart lại dịch vụ

service salt-minion restart

###Kiểm tra sau khi cài đặt (tất cả command thực thi trên Controller)

List tất cả minion's key

salt-key -L

Kết quả

Accepted Keys:
Unaccepted Keys:
compute1
compute2
controller
Rejected Keys:

Accept tất cả các key

salt-key -A
(Chọn Y cho tất cả câu trả lời)

Kiểm tra lại danh sách key

salt-key -L

Kết quả

Accepted Keys:
compute1
compute2
controller
Unaccepted Keys:
Rejected Keys:

Kiểm tra xem master và minion thông nhau chưa

salt '*' test.ping

Kết quả

compute1:
    True
compute2:
    True
controller:
    True

#4. Sử dụng saltstack-script ###Tất cả command đều thực thi trên Controller Node

cd /srv
wget https://github.com/d0m0reg00dthing/openstack-salstack/blob/master/salt.openstack.tar.bz2?raw=true -O salt.openstack.tar.bz2
tar -xjvf salt.openstack.tar.bz2

# Cập nhật cấu hình mới cho salt-stack (Thực thi trên Controller Node)
salt '*' saltutil.refresh_pillar

Thay đổi thông tin cấu hình (Nếu có nhu cầu): /srv/pillar/config.sls

Tên Ý nghĩa
controller_private_ip IP sử dụng cung cấp API
EXTERNAL_INTERFACE Interface Public
MYSQL_ROOT Mật khẩu root MySQL
ADMIN_TOKEN Keystone Admin Token
RABBIT_PASS Rabbit guest password
KEYSTONE_DBPASS Keystone database password
USER_DEMO_PASS user 'demo' password
USER_ADMIN_PASS user 'admin' password
GLANCE_DBPASS Glance database password
GLANCE_PASS user 'glance' password
NOVA_DBPASS Nova database password
NOVA_PASS user 'nova' password
CINDER_DBPASS Cinder database password
CINDER_PASS user 'cinder' password
NEUTRON_DBPASS Neutron database password
NEUTRON_PASS user 'neutron' password
METADATA_SHARED_SECRET Metadata secret
KEYSTONE_SERVER Identity Service IP
MYSQL_SERVER_IP MySQL Server IP
NOVA_API_SERVER Compute Service IP
RABBITMQ_SERVER Rabbitmq-server IP
GLANCE_API_SERVER Images Service IP
CINDER_API_SERVER Block Service IP
METADATA_SERVER Metadata Service IP
NEUTRON_API_SERVER Network Service IP
NTP_UPDATE_SERVER NTP update IP

##Cách 1: Cài đặt từng dịch vụ Cài đặt Controller Node

# Thêm 1 record vào file /etc/hosts
salt 'controller' state.sls host -l debug

# Cài đặt ntp và sử dụng ntp.ubuntu.com làm update server
salt 'controller' state.sls ntp -l debug

# Cài đặt rabbitmq-server và đổi mật khẩu guest
salt 'controller' state.sls rabbit -l debug

# Cài đặt mysql-server và tạo database/user/grant quyền tương tứng
salt 'controller' state.sls mysql -l debug

# Cài đặt Openstack Identity Service
salt 'controller' state.sls keystone -l debug

# Cài đặt Openstack Images Service
salt 'controller' state.sls glance -l debug

# Tạo user/service/tenant/endpoint cho các dịch vụ
salt 'controller' state.sls keystone.create-user-tenant -l debug

# Cài đặt và cấu hình nova-api/nova-cert/....
salt 'controller' state.sls nova.nova-api -l debug

# Cài đặt cấu hình cinder-api
salt 'controller' state.sls cinder.api -l debug

# Cài đặt Dashboard
salt 'controller' state.sls horizon -l debug

# Cài đặt/cấu hình neutron-server
salt 'controller' state.sls neutron.api -l debug

Cài đặt Compute Nodes

# Tạo record trong /etc/hosts
salt 'compute*' state.sls hosts -l debug

# Cài đặt ntp. Sử dụng controller làm update server
salt 'compute*' state.sls ntp -l debug

# Cài đặt python-mysqldb
salt 'compute*' state.sls python-mysql -l debug

# Cài đặt/cấu hình nova-compute
salt 'compute*' state.sls nova.nova-compute -l debug

# Cài đặt cinder volume.Tạo pv và vg sử dụng /dev/sdb
salt 'compute*' state.sls cinder.volume -l debug

# Cài đặt/cấu hình neutron-l3-agent, neutron-plugin-ml2, neutron-dhcp-agent...
salt 'compute*' state.sls neutron.network -l debug

##Cách 2: Sử dụng 1 command cài đặt tất cả các Node

salt '*' state.highstate -l debug

##Kiểm tra sau khi cài đặt

source /root/openrc

# Kiểm tra neutron
neutron agent-list

# Kiểm tra nova
nova-manage service list

# Kiểm tra glance
glance image-list

# Kiểm tra keystone
keystone endpoint-list
keystone service-list
keystone user-list

# Kiểm tra nova
nova image-list

# Kiểm tra cinder
cinder list

###5. Kết thúc

  • Lần đầu viết script cho Saltstack, còn nhiều chỗ trình bày chưa thật sự đẹp nhưng quan trọng là script chạy được (ít ra là những lần mình test trên 2 Node/3 Node đều chạy).
  • Mục đích mình shared script này không phải để mọi người kéo về và gõ cái đống command trên mà mình muốn mọi người sẽ tìm hiểu về nó (saltstack) đê chỉnh sửa/viết thêm những script phù hợp với công việc cuả từng người để việc triên khai Openstack ít nhàm chán hơn. Trong quá trình cài đặt nếu có lỗi gì mọi người có thể liên lạc với mình qua FB: https://www.facebook.com/cucxabong

About

Cài đặt mô hình Openstack Multi-Nodes sử dụng Saltstack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published