Chuẩn bị môi trường để cài đặt Openstack.
-
Tiến hành chuẩn bị môi trường cài đặt Openstack trên controller node và một compute node.
-
Yêu cầu sử dụng tài khoản có quyền quản trị, root hoặc các sudoer với lệnh
sudo
. -
Cấu hình phần cứng của các node trong bài này:
- Controller node: CentOS 7, 2 CPU, 6 GB RAM, và 50 GB lưu trữ.
- Compute1 node : CentOS 7, 4 CPU, 6 GB RAM, và 80 GB lưu trữ.
1. Cấu hình mạng
- Mô hình cài đặt:
- Có hai mạng:
- Mạng Provider: 192.168.30.0/24 với gateway là 192.168.30.1
- Mạng Management: 192.168.50.0/24 với gateway là 192.168.50.1.
Mạng management ở đây là mạng nội bộ được sử dụng để cung cấp kết nối internet(qua NAT) cho mục đích quản trị như cài gói, cập nhật bảo mật, DNS, NTP.
Với mạng provider, máy ảo có thể kết nối trực tiếp đến mạng provider hoặc kết nối đến các mạng self-service. Mạng self-service là hạ tầng mạng do người dùng tự tạo ra, cung cấp internet cho máy ảo sử dụng NAT qua mạng Provider.
- Địa chỉ IP trong mạng management của các node:
- Controller : 192.168.50.140/24, Gateway 192.168.50.1, DNS 8.8.8.8
- Compute : 192.168.50.150/24, Gateway 192.168.50.1, DNS 8.8.8.8
- Đối với interface kết nối với mạng Provider, sửa file
/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
chứa các giá trị sau:- Không thay đổi giá trị HWADDR và UUID
DEVICE=INTERFACE_NAME TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none"
- Không thay đổi giá trị HWADDR và UUID
- Cấu hình phân giải tên bằng cách chỉnh sửa file
/etc/hosts
trên cả hai node, chạy lệnh: ``` cat « EOF » /etc/hostscontroller
192.168.50.140 controller
compute1
192.168.50.150 compute1 EOF
## 2. Cài NTP
Cấu hình NTP để việc đồng bộ dịch vụ giữa các node diễn ra đúng cách, ở đây sử dụng Chrony. Controller sẽ đồng bộ thời gian từ server chính sách hơn và các node còn lại sẽ đồng bộ từ controller.
### Trên controller node:
- Cài đặt gói:
yum install chrony -y
- Cấu hình file `/etc/chrony.conf` thêm , sửa hoặc xóa dòng sau tùy theo môi trường.
server NTP_SERVER iburst
với **NTP_SERVER** là hostname hay địa chỉ ip của ntp server muốn đồng bộ. Ví dụ:
server 0.vn.pool.ntp.org iburst
- Để cho phép các node khác kết nối đến chrony daemon trên controller node, sửa file **chrony.conf** vừa đề cập ở trên, thêm dòng sau:
allow 192.168.50.0/24
- Khởi động lại dịch vụ:
systemctl enable chroned.service systemctl start chroned.service
Cấu hình firewalld:
firewall-cmd –add-service=ntp –permanent firewall-cmd –reload
### Trên compute node
- Cấu hình chrony trên compute đồng bộ thời gian từ controller.
- Cài gói:
yum install -y chrony
- Sửa file cấu hình `/etc/chrony.conf` thêm dòng sau để đồng bộ thời gian từ controller:
server controller iburst
- Comment hoặc xóa các dòng trỏ đến server khác.
- Khởi động dịch vụ:
systemctl start chronyd.service systemctl enable chronyd.service
### Kiểm tra
Chạy lệnh sau trên controller
chronyc sources
[root@controller ~]# chronyc sources 210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 162.159.200.123 3 7 257 16 -86us[ -71us] +/- 57ms ^- 162.159.200.1 3 8 260 783 -1374us[ +32us] +/- 56ms [root@controller ~]#
Chạy lệnh này trên cả compute node:
[root@compute1 ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^? controller 0 8 0 - +0ns[ +0ns] +/- 0ns [root@compute1 ~]#
## 3. Cài đặt các gói Openstack.
- Tiến hành các cấu hình sau trên **tất cả** các node.
- Cấu hình bật Openstack Repository:
yum install -y centos-release-openstack-train
- Hoàn tất cài đặt:
yum upgrade
yum install python-openstackclient
Nếu sử dụng SELinux, cài gói sau sẽ tự động cấu hình SELinux quản lý các chính sách bảo mật cho các dịch vụ Openstack:
yum install -y openstack-selinux
## 4. Cài đặt SQL server.
Hầu hết các dịch vụ của Openstack đều sử dụng SQL database để lưu trữ thông tin. Chúng ta sẽ cài đặt mariadb làm SQL database server trên Controller node.
### Cài và cấu hình các thành phần:
- Cài các gói cần thiết:
yum install mariadb mariadb-server python2-PyMySQL
- Tạo và sửa file `/etc/my.cnf.d/openstack.cnf`(backup file cũ nếu có). Tạo một phần câu hình **[mysql]** và cấu hình giá trị **bind-address** là địa chỉ management của controller.
[mysqld] bind-address = 192.168.50.140
default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
### Hoàn tất cấu hình.
- Khởi động dịch vụ:
systemctl enable mariadb.service systemctl start mariadb.service
- Cấu hình bảo mật cho dịch vụ database, đặt lại mật khẩu tài khoản `root`:
mysql_sercure_installation
- Cấu hình firewalld cho dịch vụ mysql:
firewall-cmd –add-port=3306/tcp –permanent firewall-cmd –reload
## 5. Cấu hình message queue.
Openstack sử dụng message queue để kết nối hoạt động và thông tin trạng thái các service với nhau. Tiến hành cài dịch vụ message queue RabbitMQ trên controller node.
### Cài đặt và cấu hình các gói cần thiết
- Cài đặt gói:
yum install rabbitmq-server -y
- Khởi chạy dịch vụ:
systemctl start rabbitmq-server systemctl enable rabbitmq-server
- Tạo user **openstack** trên RabbitMQ:
rabbitmqctl add_user openstack RABBITMQ_PASS
- Cho phép quyền cấu hình, đọc, ghi cho user **openstack**:
rabbitmqctl set_permissions openstack “.” “.” “.*”
Cấu hình firewalld cho phép port của rabbitmq:
firewall-cmd –add-port=5672/tcp –permanent firewall-cmd –reload
## 6. Cài đặt và cấu hình memcached
Cơ chế xác thực của dịch vụ Identify sử dụng Memcached để lưu cache các token. Tiến hành cấu hình memcached trên controller node.
### Cài đặt và cấu hình các thành phần.
- Cài gói:
yum install memcached python-memcached -y
- Sửa file **/etc/sysconfig/memcached** để dịch vụ sử dụng Ip management của controller, từ:
OPTIONS=”-l 127.0.0.1,::1”
sửa thành:
OPTIONS=”-l 127.0.0.1,::1,192.168.50.140”
### Hoàn tất cài đặt.
Khởi động dịch vụ:
systemctl enable memcached.service systemctl start memcached.service
Cấu hình firewalld:
firewall-cmd –add-port=11211/tcp –permanent firewall-cmd –reload
## 7. Tắt SELinux trên tất cả các node.
Chỉnh sửa file cấu hình của SELinux `/etc/selinux/config` để tắt nó trên tất cả các node. Chỉnh sửa giá trị SELINUX thành disabled.
… SELINUX=disabled … ```
- Restart lại host.
Hoàn tất quá trình chuẩn bị môi trường.
END.
Tài liệu: https://docs.openstack.org/install-guide/environment.html