Cài đặt Keystone.
1. Tổng quan về Openstack Identity service
- Openstack Identify service cung cấp một điểm tích hợp duy nhất để quản lý xác thực, ủy quyền và service catalog. Openstack Identify service thường là dịch vụ đầu tiên mà người dùng tương tác đến. Khi đã được định danh, người dùng có thể sử dụng danh tính đó để truy cập các dịch vụ khác. Tương tự như vậy, các Openstack service khác cũng có thể dụng Identify service để xác định người dùng là ai và khám phá các dịch vụ khác. Dịch vụ nhận dạng cũng có thể kết hợp với một số hệ thống quản lý người dùng bên ngoài như LDAP.
- Người dùng và dịch vụ có thể định vị các dịch vụ bằng cách sử dụng service catalog- được quản lý bởi Identify service. Catalog chứa thông tin về danh sách các dịch vụ có sẵn trong triển khai. Một dịch vụ có thể có nhiều endpoint và mỗi endpoint có thể là 1 trong 3 loại sau: admin. internal và public. Trong môi trường production, các endpoint sẽ nằm trên các mạng khác nhau để đảm bảo bảo mật. Ví dụ . public API có thể được tiếp cận từ môi trường internet, khác hàng có thể sử dụng sản phẩn cloud qua API này. Admin API sử dụng cho các sysadmin để quản trị infractructure cloud. Internal API sẽ sử dụng để làm việc với các host được quản lý bởi các Openstack Service.
- Openstack Indentity cung cấp region để tăng khả năng mở rộng. Mặc định RegionOne được sử dụng làm Region đâu tiên
-
Mỗi Openstack Service cài lên cần có một endpoint trên indentity service
- Identity service chứa những thành phần:
- Server: Một máy chủ tập trung cung cấp các dịch vụ xác thực và ủy quyền bằng giao diện RESTful interface.
- Drivers: là driver hay service backend được tích hợp vào server dùng để truy cập DB định danh có thể là các dịch vụ internal hoặc external(SQL,LDAP,…)
- Modules: middleware module có thể chạy trên các Openstack compoment đang sử dụng indentity services. Những module này chặn các reques , xuất ra các credential sau đó gửi đến Server .
3. Cài đặt Openstack Identify - Keystone
Ở đây sẽ cài đặt Openstack Identify- Keystone trên Controller Node. Với mục đích mở rộng, cấu hình này sẽ triển khai Fernet tokens và Apache HTTP.
3.1. Yêu cầu
- Cài đặt chuẩn bị môi trường theo bài viết Chuẩn bị môi trường
3.1. Cài đặt và cấu hình các thành phần.
Tạo database.
- Kết nối đến database bằng tài khoản root:
mysql -u root -p
- Tạo và gán quyền cho database keystone: ``` MariaDB [(none)]> CREATE DATABASE keystone; Grant proper access to the keystone database:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’localhost’
IDENTIFIED BY ‘123123Aa’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’
IDENTIFIED BY ‘123123Aa’;
- Thoát database client.
#### Cài đặt keystone và một số gói cần thiết.
- Cài các gói cần thiết:
yum install openstack-keystone httpd mod_wsgi
- Sửa file cấu hình của keystone **/etc/keystone/keystone.conf
- Sửa ở phần [database] để kết nối đến database keystone:
```ini
[database]
# ...
connection = mysql+pymysql://keystone:123123Aa@192.168.50.140/keystone
```
- Sửa phần [token] để chọn Fernet token:
```ini
[token]
# ...
provider = fernet
```
- Tạo database cho dịch vụ xác thực:
su -s /bin/sh -c “keystone-manage db_sync” keystone
- Khởi tạo kho lưu trữ khóa Fernet.
keystone-manage fernet_setup –keystone-user keystone –keystone-group keystone keystone-manage credential_setup –keystone-user keystone –keystone-group keystone
- Bootstrap the Identify service:
keystone-manage bootstrap –bootstrap-password 123123Aa
–bootstrap-admin-url http://192.168.50.140:5000/v3/
–bootstrap-internal-url http://192.168.50.140:5000/v3/
–bootstrap-public-url http://192.168.50.140:5000/v3/
–bootstrap-region-id RegionOne
- Bootstrap để làm gì? Sau khi triển khai và cấu hình Keystone, nó phải được truyền vào một số thông tin khởi tạo cơ bản trước khi nó có thể sử dụng. Quá trình này được gọi là bootstrap. Một số thông tin khởi tạo có thể là user hệ thống đầu tiên, project, domain, service và endpoint, và các thứ khác.
#### Cấu hình apache HTTP server.
- Sửa file `/etc/httpd/conf/httpd.conf`, giá trị **ServerName** tham chiếu đến controller:
ServerName controller
- Tạo một link trong `/etc/httpd/conf.d/` đến file `/usr/share/keystone/wsgi-keystone.conf`:
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
#### Hoàn tất cấu hình
- Khởi động Apache:
systemctl restart httpd systemctl enable httpd
- Cấu hình firewalld cho Keystone API:
public url port
firewall-cmd –zone=public –add-port=5000/tcp –permanent
admin url port
firewall-cmd –zone=public –add-port=35357/tcp –permanent firewall-cmd –reload
- Cấu hình biến môi trường để đăng nhập cho tài khoản admin.
export OS_USERNAME=admin export OS_PASSWORD=123123Aa export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3
### Kiểm tra:
Chạy lệnh `openstack token issue`
[root@controller ~]# openstack token issue +————+—————————————————————————————————————————————————————————————–+ | Field | Value | +————+—————————————————————————————————————————————————————————————–+ | expires | 2019-11-01T08:45:36+0000 | | id | gAAAAABdu-KgqxyZEBy-AeLyusc6-KN9leXRFrtW-a4jg4FXrPINs2k-E1PdQJkHpEGH2pk-YQOmbdpmYp4KLhjOwFbjodxmLrjMoaRWNPWCbOVkO3t7fzv__SpOxzGaLo5581zlN8LAtlu48NAfgi-RWt0u912XwdnPmE_vSrI9wriEnfsvrc4 | | project_id | 15ac090a736a4c6fb7669b017b2ce56f | | user_id | 653e73fac47a42fd86461f06bce2c018 | +————+—————————————————————————————————————————————————————————————–+
```
Tài liệu tham khảo: https://docs.openstack.org/install-guide/