Openstack Kolla [Phần 2] Hướng dẫn cài đặt Openstack Train multinode bằng Kolla Ansible

30/12/2020

Tiếp tục với series hướng dẫn cài đặt OpenStack bằng Kolla Ansible. Ở bài viết lần trước, Onet đã gửi tới các bạn cách cấu hình OpenStack Train theo mô hình all-in-one. Hôm nay chúng mình sẽ mang đến cho các bạn hướng dẫn triển khai OpenStack Train theo mô hình multinode với Kolla Ansible. Nếu đây là lần đầu tiên bạn đọc bài viết này, xin vui lòng tham khảo bài viết phần 1 của Onet về Kolla Ansible tại đây.

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
    4. Cài đặt client openstack
  3. Đăng nhập vào horizon

Yêu cầu

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

Controller:

  • CPU >= 4
  • Ram >= 8GB
  • Disk:
    • vda – OS (>= 50 GB)
    • vdb – Cinder LVM (>= 50 GB)
  • Network: 2 interface
    • Dải MNGT + API + Internal Network: 10.10.11.0/24
    • Dải Provider hay External Network: 10.10.12.0/24

Compute:

  • CPU >= 4
  • Ram >= 8GB
  • Disk:
    • vda – OS (>= 50 GB)
  • Network: 2 interface
    • Dải MNGT + API + Internal Network: 10.10.11.0/24
    • Dải Provider hay External Network: 10.10.12.0/24

Trong bài, VM của mình sẽ có IP:

Controller:

  • eth0: 10.10.11.171
  • eth1: 10.10.12.171

Compute:

  • eth0: 10.10.11.172
  • eth1: 10.10.12.172

Cài đặt

Phần 1. Chuẩn bị

Trên node Controller:

Đặt hostname

hostnamectl set-hostname controller

Cấu hình Network

echo "Setup IP eth0" nmcli c modify eth0 ipv4.addresses 10.10.11.171/24 nmcli c modify eth0 ipv4.gateway 10.10.11.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.12.171/24 nmcli c modify eth1 ipv4.method manual nmcli con mod eth1 connection.autoconnect yes

Update hệ điều hành

yum install -y epel-release yum update -y

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

Tạo phân vùng Cinder LVM

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

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

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python yum install -y vim git byobu curl -Lo- https://bootstrap.pypa.io/get-pip.py | python  pip install -U pip  pip install ansible  mkdir -p /etc/ansible  txt="[defaults]nhost_key_checking=Falsenpipelining=Truenforks=100" echo -e $txt >> /etc/ansible/ansible.cfg

Tắt máy và snapshot lại

Trên node Compute

Đặt hostname

hostnamectl set-hostname controller

Cấu hình Network

echo "Setup IP eth0" nmcli c modify eth0 ipv4.addresses 10.10.11.172/24 nmcli c modify eth0 ipv4.gateway 10.10.11.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.12.172/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

Update hệ điều hành

yum install -y epel-release yum update -y

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

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

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python yum install -y vim git byobu

Tắt máy và snapshot lại

Phần 2. Cài đặt Kolla Ansible trên node Controller

Tải bản kolla-ansible 9.0.0 (bản dành cho OpenStack Train)

pip install "kolla-ansible==9.0.0" mkdir -p /etc/kolla  cp /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/  cp /usr/share/kolla-ansible/ansible/inventory/* .

Chỉnh sửa file multinode

Tại section [control], điền IP node Controller

[control] 10.10.11.171 ansible_connection=ssh     ansible_user=root

Tại section [network], điền IP node Controller

[network] 10.10.11.171 ansible_connection=ssh     ansible_user=root

Tại section [monitoring], điền IP node Controller

[monitoring] 10.10.11.171 ansible_connection=ssh     ansible_user=root

Tại section [storage], điền IP các Controller

[storage] 10.10.11.171 ansible_connection=ssh     ansible_user=root

Tại section [deployment], điền IP node kolla ansible (vì ở đây ta cài đặt kolla ansible trên Controller nên ta sẽ để là localhost)

[deployment] localhost  ansible_connection=ssh

Tại section [compute], điền IP node compute
Lưu ý: Nếu bạn có nhiều hơn 1 node compute thì thêm các dòng đó xuống phía dưới nhé.

[compute] 10.10.11.172 ansible_connection=ssh     ansible_user=root

Kiểm tra

ansible -i multinode all -m ping

Tạo key pair và copy qua các node controller và compute (Nhập pass khi được yêu cầu)

ssh-keygen ssh-copy-id root@10.10.11.171 ssh-copy-id root@10.10.11.172

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

Lưu ý: Các thao tác này được thực hiện trên node Controller

Gen password

kolla-genpwd

Cấu hình Kolla 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"  # Không sử dụng HA Controller (VIP RabbitMQ, MariaDB v.v) # enable_haproxy: "no"  # Dải Mngt + admin, internal API kolla_internal_vip_address: "10.10.11.175" network_interface: "eth0"  # Dải Mngt Provider neutron_external_interface: "eth1"  # Cho phép neutron sử dụng dải provider enable_neutron_provider_networks: "yes"  nova_compute_virt_type: "qemu"  keepalived_virtual_router_id: "60"  enable_cinder: "yes" enable_cinder_backend_lvm: "yes" enable_cinder_backup: "no" EOF

Lưu ý:

  • kolla_internal_vip_address là ip dùng cho VIP, nó sẽ là một IP trống và nằm cùng dải với IP của card mgnt + api
  • Trường hợp cùng dải đã có máy chạy keepalived thì ta sẽ phải đổi tham số router_id trong file cấu hình keepalived bằng cách chỉnh tham số keepalived_virtual_router_id trong file cấu hình kolla.
  • Nếu bạn đang lab trên máy ảo thì bạn cần phải chỉnh tham số nova_compute_virt_type về qemu như cấu hình trên.

Kiểm tra lại cấu hình

cat /etc/kolla/globals.yml | egrep -v '^#|^$'

Sử dụng byobu để chống mất phiên khi thực hiện việc triển khai kolla-ansible để cài OpenStack

byobu

Thực hiện các bước cài đặt OpenStack bằng kolla-ansible.

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

kolla-ansible -i multinode bootstrap-servers

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

kolla-ansible -i multinode prechecks

Cài đặt Openstack

kolla-ansible -i multinode deploy

Thiết lập File Environment Openstack

kolla-ansible -i multinode post-deploy

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 virtualenv venv

Tạo virtualen có tên là venv

. venv/bin/activate

Cài đặt các gói openstack client trong virtualenv

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

Kiểm tra xem OpenStack hoạt động hay chưa

openstack token issue

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: rucy2VQN6Nm6Y9uQheBBVhnzX06IRrZVKVFjdcfZ

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

admin/rucy2VQN6Nm6Y9uQheBBVhnzX06IRrZVKVFjdcfZ

Truy cập vào horizon với địa chỉ : http://10.10.11.171, nhập thông tin đăng nhập ở trên.

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

Như vậy là chúng ta đã cài đặt thành công OpenStack Train bằng Kolla Ansible. Để biết cách sử dụng hệ thống ta vừa thiết lập, mời các bạn tham khảo bài hướng dẫn tạo máy ảo trên cụm OpenStack được cài đặt bằng Kolla Ansible ở phần 3 của series này.

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

Install OpenStack on VirtualBox

In this article, I am going to show you how to install OpenStack in a VirtualBox virtual machine for learning OpenStack...
29/12/2020

Openstack Kolla [Phần 2] Hướng dẫn cài đặt Openstack Train multinode bằng Kolla Ansible

Tiếp tục với series hướng dẫn cài đặt OpenStack bằng Kolla Ansible. Ở bài viết lần trước, Onet...
30/12/2020

Một số thông tin về OpenStack Train v20

OpenStack có một trong những cộng đồng phát triển nhanh nhất trên thế giới. Theo ước tính, tổng...
30/12/2020