Openstack Kolla [Phần 1] Hướng dẫn cài đặt Openstack Train all-in-one bằng Kolla Ansible

30/12/2020

Openstack Kolla là Project hay công cụ sử dụng để triển khai, vận hành Openstack. Kolla được phát hành từ phiên bản Kilo và chính thức trở thành Project Openstack tại phiên bản Liberty.

Với ý tưởng của Project Kolla là triển khai Openstack trong môi trường Container, tự động triển khai Openstack bằng Kolla Ansible. Qua đó chỉ với 1 vài thao tác, chúng ta đã có môi trường Openstack để sử dụng. Hơn nữa, Project Kolla cũng cung cấp sẵn các giải pháp về giám sát, HA, Rolling Upgrades … cho Openstack

Mục lục

  1. Yêu cầu
  2. Cài đặt
    1. Chuẩn bị
    2. Cài đặt Kolla Ansible
    3. Cài đặt Openstack Train bằng Kolla Ansible
    4. Cài đặt Openstack Client
    5. Đăng nhập vào Horizon
  3. Nguồn

Yêu cầu

Lưu ý trước khi bắt đầu, bạn có thể cần một số hiểu biết nhất định về Ansible cũng như Docker.

Bạn có thể tìm hiểu thêm Ansible tại đây

Bạn có thể tìm hiểu thêm Docker tại đây

Chuẩn bị máy ảo với hệ điều hành CentOS 7 với cấu hình:

  • CPU: 4 Core
  • RAM: 8 GB
  • Disk: 2 ổ
    • OS (vda): 100 GB
    • Data VM (vdb): 50 GB
  • Network: 2 interface
    • Dải MNGT + API + Internal Network: 10.10.10.0/24
    • Dải Provider hay External Network: 10.10.11.0/24

Trong bài, VM của tôi sẽ có IP:

  • ETH0 – 10.10.10.85
  • ETH1 – 10.10.11.85

Cài đặt

Phần 1. Chuẩn bị

Đặt hostname

hostnamectl set-hostname opsaio85

Update hệ điều hành

yum install -y epel-release yum update -y

Cấu hình Network

echo "Setup IP eth0" nmcli c modify eth0 ipv4.addresses 10.10.10.85/24 nmcli c modify eth0 ipv4.gateway 10.10.10.1 nmcli c modify eth0 ipv4.dns 8.8.8.8 nmcli c modify eth0 ipv4.method manual nmcli con mod eth0 connection.autoconnect yes  echo "Setup IP eth1" nmcli c modify eth1 ipv4.addresses 10.10.11.85/24 nmcli c modify eth1 ipv4.method manual nmcli con mod eth1 connection.autoconnect yes

Tắt Firewall, SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld

Cấu hình đồng bộ thời gian

timedatectl set-timezone Asia/Ho_Chi_Minh  yum -y install chrony sed -i 's/server 0.centos.pool.ntp.org iburst/  server 1.vn.pool.ntp.org iburst  server 0.asia.pool.ntp.org iburst  server 3.asia.pool.ntp.org iburst/g' /etc/chrony.conf sed -i 's/server 1.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf sed -i 's/server 2.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf sed -i 's/server 3.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf  systemctl enable chronyd.service systemctl restart chronyd.service chronyc sources

Khởi động lại

init 6

Lưu ý: Tạo bước này các bạn nên snapshot lại VM

Phần 2. Cài đặt Kolla Ansible

Cài đặt các gói hỗ trợ

yum install -y vim git byobu

Cài đặt môi trường Python

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python curl -Lo- https://bootstrap.pypa.io/get-pip.py | python pip install -U pip

Cài đặt Ansible

pip install ansible  mkdir -p /etc/ansible txt="[defaults]nhost_key_checking=Falsenpipelining=Truenforks=100" echo -e $txt >> /etc/ansible/ansible.cfg

Cài đặt Kolla Ansible

pip install "kolla-ansible==9.0.*"

Lưu ý:

  • Phiên bản kolla-ansible được phát triển dựa trên các phiên bản lớn Openstack
    • Openstack Queen – Kolla Ansible 7.x
    • Openstack Rocky – Kolla Ansible 8.0.x
    • Openstack Stein – Kolla Ansible 8.1.x
    • Openstack Train – Kolla Ansible 9.0.x
  • Để cài Openstack Train, chúng ta phải dùng phiển bản Kolla Ansible 9.0.x

Cấu hình Kolla Ansible mặc định

cp /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/

Thiết lập File Inventory Kolla Ansible

cp /usr/share/kolla-ansible/ansible/inventory/* .

Thiết lập Keypair

ssh-keygen

Lưu ý: Nhấn ENTER, sinh Keypair mặc định

Chuyển key

ssh-copy-id root@opsaio85

Lưu ý: Tại bước này bạn cần nhập mật khẩu SSH của Node

Kiểm tra lại

ansible -i all-in-one all -m ping

Kết quả mong muốn

[root@opsaio85 ~]# ansible -i all-in-one all -m ping  localhost | SUCCESS => {     "ansible_facts": {         "discovered_interpreter_python": "/usr/bin/python"     },      "changed": false,      "ping": "pong" }

Phần 3. Cài đặt Openstack Train bằng Kolla Ansible

Thiết lập phần vùng LVM dành cho Cinder

pvcreate /dev/vdb vgcreate cinder-volumes /dev/vdb

Tạo File chứa mật khẩu mặc định

kolla-genpwd

Lưu ý:

  • Thao tác sẽ sinh ra file /etc/kolla/passwords.yml.
  • File passwords.yml sẽ chứa mật khẩu các dịch vụ thuộc Openstack (Nova, Cinder, Neutron, Keystone, Glance …..)

Cấu hình triển khai Openstack

cp /etc/kolla/globals.yml /etc/kolla/globals.yml.bak cat << EOF > /etc/kolla/globals.yml --- kolla_base_distro: "centos" kolla_install_type: "source" openstack_release: "train" kolla_internal_vip_address: 10.10.10.85 network_interface: eth0 neutron_external_interface: eth1 nova_compute_virt_type: "qemu" enable_haproxy: "no" enable_cinder: "yes" enable_cinder_backup: "no" enable_cinder_backend_lvm: "yes" EOF

Lưu ý:

  • kolla_install_type: Mã nguồn sử dụng khi triển khai Openstack, có 2 loại:
    • Cài từ Source Code: source
    • Cài từ File binary: binary
  • openstack_release: Phiên bản cài đặt
  • network_interface: Interface dải nội bộ dùng cho MNGT, API .. tôi chọn interface eth0 ứng với dải 10.10.10.0/24
  • kolla_internal_vip_address: Địa chỉ dải nội bộ dành cho MNGT, API, .. Theo quy hoạch ban đầu, tôi sẽ chọn dài 10.10.10.85
  • neutron_external_interface: Interface dải Provider cấp IP cho VM Openstack. Ở đây tôi sử dụng interface eth1 ứng với dải 10.10.11.0/24
  • enable_haproxy: Nếu triển khai Openstack All In One, bạn vui lòng thiết lập là NO.
  • enable_cinder: Trong bài tôi có sử dụng Cinder LVM làm share storage cho Openstack nên thiết lập giá trị này bằng True
  • enable_cinder_backend_lvm: Đặt True nếu sử dụng Backend LVM cho Cinder
  • enable_cinder_backup: Trong bài tôi không sử dụng tính năng Backup Cinder nên thiết lập giá trị bằng False
  • nova_compute_virt_type: Trong bài tôi sử dụng VM ảo hóa để cài đặt Openstack, nên tại đây thiết lập giá trị bằng qemu

Khởi tạo môi trường dành cho Openstack Kolla

kolla-ansible -i all-in-one bootstrap-servers

Kết quả mong muốn

PLAY RECAP ************************************************************************************** localhost : ok=40   changed=20   unreachable=0    failed=0    skipped=32   rescued=0    ignored=0

Kiểm tra thiết lập Kolla Ansible

kolla-ansible -i all-in-one prechecks

Kết quả mong muốn

PLAY RECAP ************************************************************************************** localhost : ok=75   changed=0    unreachable=0    failed=0    skipped=72   rescued=0    ignored=0

Tải các Image Openstack

kolla-ansible -i all-in-one pull

Kết quả mong muốn

PLAY RECAP ************************************************************************************** localhost : ok=38   changed=16   unreachable=0    failed=0    skipped=51   rescued=0    ignored=0

Cài đặt Openstack

kolla-ansible -i all-in-one deploy

Kết quả mong muốn

PLAY RECAP ************************************************************************************** localhost : ok=365  changed=208  unreachable=0    failed=0    skipped=168  rescued=0    ignored=0

Thiết lập File Environment Openstack

kolla-ansible -i all-in-one post-deploy

Kết quả mong muốn

PLAY RECAP ************************************************************************************** localhost : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

Phần 4. Cài đặt Openstack Client

Cài đặt các gói cần thiết để tạo virtualenv

pip install virtualenv

Tạo Virtualenv

virtualenv openstack

Truy cập môi trường và cài đặt gói Openstack Client

. openstack/bin/activate pip install python-openstackclient python-glanceclient python-neutronclient source /etc/kolla/admin-openrc.sh

Kiểm tra dịch vụ

openstack token issue

Kết quả mong muốn

+------------+-------------------------------------+ | Field      | Value                               | +------------+-------------------------------------+ | expires    | 2020-03-15T17:00:16+0000            | | id         | gAAAAABebQ2gB8LuORAzc6pT8S4KSsxxxx  | | project_id | 944c2b3151b4483d9b3557e4ce084366    | | user_id    | 76c4fbd02267439a887731f175b99895    | +------------+-------------------------------------+

Tới đây bạn đã cài Openstack Train thành công

Phần 5. Đăng nhập vào Horizon

Lấy mật khẩu tài khoản Admin

cat /etc/kolla/passwords.yml | grep keystone_admin

Kết quả

keystone_admin_password: A7GHier4EpzEXE0Fm2aLpU3jvZ6ulOkINwlUETpI

Tới đây, mật khẩu đăng nhập vào Horizon sẽ là:

  • admin / A7GHier4EpzEXE0Fm2aLpU3jvZ6ulOkINwlUETpI

Truy cập địa chỉ: http://10.10.10.85/auth/login/?next=/. Nhập các thông tin trên

Sau khi thao tác xong, chọn Sign In

Tới đây tôi đã hướng dẫn xong các bạn cài đặt Openstack Train bằng Kolla Ansibe. Về cách sử dụng Openstack Train cơ bản, tôi sẽ trình bày trong bài tiếp theo của chuỗi bài viết. Hẹn gặp lại các bạn!

Nguồn

https://docs.openstack.org/kolla-ansible/latest/

https://github.com/openstack/kolla-ansible

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Hướng dẫn add host để checkmk giám sát

Sau khi cài đặt xong check_mk thì tất nhiên chúng ta sẽ phải thêm host vào để chúng ta giám sát chúng....
30/12/2020

[CI/CD] Phần 1: Hướng dẫn cài đặt Gitlab trên CentOS 7

Gitlab là một mã nguồn mở của máy chủ Git để quản lý mã nguồn dự án được sử dụng rộng...
30/12/2020

[Netbox] [Phần 5] Hướng dẫn khai báo IPAM trên Netbox

IPAM là viết tắt của IP Address Management, được sử dụng để quản lý các vlan và địa chỉ IP....
30/12/2020