- Giả lập trên VMware Workstatios, hoặc ESX hoặc Virtualbox hoặc KVM hoặc máy vật lý.
- Centos 7.3 Server 64 bit - 1611
-
Trên Controller1 thực hiện tải script đặt địa chỉ IP. Lưu ý sửa lại dòng
IP_GATEWAY
trong file dưới nếu bạn dùng gateway khác.curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Queens-No-HA/CentOS7/setup_ip.sh
-
Lưu ý tên NICs:
eth0, eth1, eth2, eth3
. Nếu tên NICs khác bạn cần sửa lại filesetup_ip.sh
trước khi thực hiện. -
Thực thi script
bash setup_ip.sh controller1 192.168.80.120 192.168.81.120 192.168.82.120 192.168.84.120
-
Trên Compute1 thực hiện tải script đặt địa chỉ IP. Lưu ý sửa lại dòng
IP_GATEWAY
trong file dưới nếu bạn dùng gateway khác.curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Queens-No-HA/CentOS7/setup_ip.sh
-
Lưu ý tên NICs:
eth0, eth1, eth2, eth3
. Nếu tên NICs khác bạn cần sửa lại filesetup_ip.sh
trước khi thực hiện. -
Thực thi script
bash setup_ip.sh compute1 192.168.80.121 192.168.81.121 192.168.82.121 192.168.84.121
-
Trên Compute2 thực hiện tải script đặt địa chỉ IP. Lưu ý sửa lại dòng
IP_GATEWAY
trong file dưới nếu bạn dùng gateway khác.curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Queens-No-HA/CentOS7/setup_ip.sh
-
Lưu ý tên NICs:
eth0, eth1, eth2, eth3
. Nếu tên NICs khác bạn cần sửa lại filesetup_ip.sh
trước khi thực hiện. -
Thực thi script
bash setup_ip.sh compute2 192.168.80.122 192.168.81.122 192.168.82.122 192.168.84.122
-
Thực hiện trên máy Cinder
curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Queens-No-HA/CentOS7/setup_ip.sh
-
Lưu ý tên NICs:
eth0, eth1, eth2, eth3
. Nếu tên NICs khác bạn cần sửa lại filesetup_ip.sh
trước khi thực hiện. -
Thực thi script
bash setup_ip.sh cinder1 192.168.80.123 192.168.81.123 192.168.82.123 192.168.84.123
Login vào từng node:
- Ping tới từng IP của các node còn lại để kiểm tra.
- Ping ra internet để đảm bảo máy có thể kết nối ra ngoài để tải gói.
- Đứng trên node CTL1 và thực hiện các bước dưới.
- Chuyển sang quyền root
su -
- Cài đặt git và script cài đặt.
yum -y install git
git clone https://github.com/congto/openstack-tools.git
mv openstack-tools/scripts/OpenStack-Queens-No-HA/CentOS7 /root/
cd CentOS7
chmod +x *.sh
-
Lưu ý: Sửa lại IP các máy theo mô hình của bạn nếu không dùng IP Planning như trong hướng dẫn này.
-
Lưu ý tên NICs:
eth0, eth1, eth2, eth3
-
Cài đặt các gói bổ trợ để bắt đầu thực thi các script.
sudo yum -y install epel-release
sudo yum -y install byobu
- Gõ lệnh byobu
byobu
-
Lưu ý, lúc này cửa sổ nhắc lệnh đang ở thư mục
/root/CentOS7/
của node CTL1 -
Thực thi script
noha_ctl_prepare.sh
bash noha_ctl_prepare.sh
- Trong quá trình chạy script, cần nhập password cho tài khoản root của máy COM1 và COM2
- Sau khi node CTL khởi động lại, đăng nhập bằng quyền root và thực thi các lệnh dưới.
cd /root/CentOS7/
bash noha_ctl_install_db_rabbitmq.sh
- Thực thi script bằng lệnh dưới.
bash noha_ctl_keystone.sh
- Sau khi cài đặt xong keystone, script sẽ tạo ra 2 file source
admin-openrc
vàdemo-openrc
nằm ở thư mục root. Các file này chứa biến môi trường để làm việc với OpenStack. Thực hiện lệnh dưới để có thể tương tác với OpenStack bằng CLI.
source /root/admin-openrc
- Kiểm tra lại xem đã thao tác được với OpenStack bằng CLI hay chưa bằng lệnh
openstack token issue
- Kết quả là:
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2017-07-18 16:35:00+00:00 |
| id | gAAAAABZbiqkN6mxVSttOCHdbPgCFAHmdlvdfHUpf2MrV_1nwq_ZrXGNJEdT-e7HInzxF8puHMG0-dnwe-NqRMvMDn_-lpYTX7m5G-oIpw4nWX0B9orECIYN4DXfUa07tg6pyo8-Zi7yte9uxqH54S1LYgdlk-GyX9130JESn3I_cw63b_9Rz-s |
| project_id | 023aabfb532f4974a07923f1b48f1e2a |
| user_id | 3b79c537783f409e9cc28d6cef6ad393 |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@ctl1 noha]#
- Thực thi script dưới để cài đặt Glance.
bash noha_ctl_glance.sh
- Thực thi script dưới để cài đặt Nova.
bash noha_ctl_nova.sh
- Sau khi script thực thi xong, kiểm tra xem nova đã cài đặt thành công trên Controller bằng lệnh dưới.
openstack compute service list
- Kết quả như sau là đã hoàn tất việc cài nova trên controller
+----+------------------+-------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+-------------+----------+---------+-------+----------------------------+
| 1 | nova-consoleauth | controller1 | internal | enabled | up | 2020-02-02T14:51:24.000000 |
| 2 | nova-conductor | controller1 | internal | enabled | up | 2020-02-02T14:51:24.000000 |
| 3 | nova-scheduler | controller1 | internal | enabled | up | 2020-02-02T14:51:25.000000 |
+----+------------------+-------------+----------+---------+-------+----------------------------+
- Thực thi script dưới để cài đặt Neutron.
bash noha_ctl_neutron.sh
- Thực thi script dưới để cài đặt Cinder trên node controller. Tới đây có 2 lựa chọn.
- Cài tất cả các thành phần cinder trên node controller
- Lưu ý: Đối với lựa chọn này, máy Controller cần có 02 ổ cứng, ổ thứ nhất để cài OS, ổ thứ 2 (sdb hoặc vdb) dùng để tạo các LVM để Cinder sử dụng sau này.
bash noha_ctl_cinder.sh aio
- Lúc này không cần thực thi trên node
cinder1
nữa bởi vì cinder-volume được cài trên nodecontroller1
. Bỏ qua việc cài đặt trên node cinder.
- Lựa chọn này áp dụng cho mô hình tách node cinder-volume riêng và không nằm trên cùng trên cùng controller.
- Lúc này, trên controller chỉ có
cinder-api, cinder-scheduler
. Trên node cinder càicinder-volume
. Ta sẽ không đưa keywwordaio
bash noha_ctl_cinder.sh
- Nếu chọn lựa chọn 2 thì cần cài đặt thêm các bước ở node cinder bên dưới, mục số 5.
- Cài đặt dashboad để cung cấp giao diện cho OpenStack.
bash noha_ctl_horizon.sh
- Login vào máy Compute1, kiểm tra xem đã có file
config.cfg
trong thư mục root hay chưa. File này được copy khi thực hiện script đầu tiên ở trên node Controller. Nếu chưa có thì copy từ Controller sang. Nếu có rồi thì thực hiện bước dưới. - Tải script cài đặt nova và neutron cho Compute1
curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Queens-No-HA/CentOS7/noha_com_install.sh
bash noha_com_install.sh
- Lưu ý: bước này thực hiện trên cả 02 Compute1 và Compute2
-
Để kiểm tra Nova và Neutron đã được cài thành công trên 2 node Compute1 và Compute2 hay chưa bằng các lệnh dưới.
-
Đứng trên Controller thực hiện lệnh kiểm tra các agent của neutron.
[root@ctl1 ~]# openstack network agent list
- Kết quả nhu dưới
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
| 0c2992fc-3a7e-4df9-b7a8-3465f05631f8 | Linux bridge agent | compute1 | None | :-) | UP | neutron-linuxbridge-agent |
| 22609877-ef55-4d07-b35a-f383229d8063 | Linux bridge agent | compute2 | None | :-) | UP | neutron-linuxbridge-agent |
| 2cac2b34-ef2f-4853-8277-b6cc75b5e3a2 | Metadata agent | compute2 | None | :-) | UP | neutron-metadata-agent |
| 77cdb419-9b3e-4cc8-868f-2b1a5ba3b851 | L3 agent | controller1 | nova | :-) | UP | neutron-l3-agent |
| 7a8a14e7-7e58-4b6f-844b-b0574ee6ec1d | DHCP agent | compute2 | nova | :-) | UP | neutron-dhcp-agent |
| 840e43e5-db20-4f13-9145-7b117c0158d7 | DHCP agent | compute1 | nova | :-) | UP | neutron-dhcp-agent |
| 91b8d9ed-d7b6-4212-870e-7647b61a0c87 | Linux bridge agent | controller1 | None | :-) | UP | neutron-linuxbridge-agent |
| b6310465-82ed-44dc-ba5a-a696e38cc82f | Metadata agent | compute1 | None | :-) | UP | neutron-metadata-agent |
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
- Đứng trên Controller thực hiện lệnh kiểm tra service của nova
openstack compute service list
- Kết quả là:
+----+------------------+-------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+-------------+----------+---------+-------+----------------------------+
| 1 | nova-consoleauth | controller1 | internal | enabled | up | 2020-02-01T07:31:47.000000 |
| 2 | nova-conductor | controller1 | internal | enabled | up | 2020-02-01T07:31:48.000000 |
| 3 | nova-scheduler | controller1 | internal | enabled | up | 2020-02-01T07:31:47.000000 |
| 6 | nova-compute | compute2 | nova | enabled | up | 2020-02-01T07:31:46.000000 |
| 7 | nova-compute | compute1 | nova | enabled | up | 2020-02-01T07:31:39.000000 |
+----+------------------+-------------+----------+---------+-------+----------------------------+
- Tạo provider network. Lưu ID của network này để cung cấp khi tạo máy ảo.
openstack network create --share --external \
--provider-physical-network provider \
--provider-network-type flat provider
-
Giả sửa ID của network là
9681d9dd-aae2-42fe-9b84-dd7cb04c1aca
-
Tạo subnet thuộc provider network. Lưu ý nhập đúng gateway, IP cấp cho máy ảo từ 200 tới 210.
openstack subnet create subnet1_provider --network provider \
--allocation-pool start=192.168.84.200,end=192.168.84.210 \
--dns-nameserver 8.8.8.8 --gateway 192.168.84.1 \
--subnet-range 192.168.84.0/24
- Tạo flavor
openstack flavor create --id 0 --vcpus 1 --ram 128 --disk 2 m1.nano
openstack flavor create --id 1 --vcpus 1 --ram 512 --disk 10 m1.tiny
openstack flavor create --id 2 --vcpus 2 --ram 1024 --disk 30 m1.small
openstack flavor create --id 3 --vcpus 2 --ram 4096 --disk 40 m1.lagre
openstack flavor create --id 4 --vcpus 1 --ram 128 --disk 0 vol1.nano
openstack flavor create --id 5 --vcpus 1 --ram 512 --disk 0 vol1.tiny
openstack flavor create --id 6 --vcpus 2 --ram 1024 --disk 0 vol1.small
openstack flavor create --id 7 --vcpus 2 --ram 4096 --disk 0 vol1.lagre
- Khai báo các rule cho phép ping và ssh tới máy ảo.
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default
- Tạo máy ảo từ image cần cung cấp các ID hoặc tên về images, network, flavor. Giả sử ID của network đã có, images là
cirros
, flavor có tên làm1.nano
openstack server create Provider_VM01 --flavor m1.nano --image cirros \
--nic net-id=9681d9dd-aae2-42fe-9b84-dd7cb04c1aca --security-group default
- Tạo máy ảo boot từ volume (lưu ý muốn boot từ volume cần cài Cinder)
nova boot --flavor m1.nano --block-device source=image,id=4b7c9492-9243-44f0-a87d-a0f0dc2865b7,dest=volume,size=5,shutdown=remove,bootindex=0 --nic net-id=3f62af74-f39a-4156-a1f5-4df359bfbd5b Provider-volume-vm1
- Chờ một lát, máy ảo sẽ được tạo, sau đó kiểm tra bằng lệnh dưới, ta sẽ thấy thông tin máy ảo và IP
openstack server list
- Lúc này có thể ping và ssh tới máy ảo bằng tài khoản
cirros
và mật khẩu làcubswin:)
. Minh họa http://prntscr.com/fznbcb
- Lựa chọn này sử dụng khi cinder-volume và cinder-backup nằm trên một máy chủ riêng.
- Login vào máy chủ cinder và thực thi script dưới và khai báo các tham số về hostname và IP của các NICs.
curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Rocky-No-HA/setup_ip.sh
bash setup_ip.sh cinder1 192.168.20.36 10.10.0.36 172.16.20.36 192.168.40.36
- Lưu ý: Đứng trên controller node, thực hiện script cài đặt các gói bổ trợ cho máy chủ Cinder trước khi cài.
- Thực thi script dưới và chỉ ra IP của máy chủ Cinder, trong hướng dẫn này là 192.168.20.36. Sau khi thực hiện script, bạn cần nhập mật khẩu của máy chủ Cinder
bash noha_node_prepare.sh 192.168.20.36
- Login vào máy chủ cinder và thực hiện script dưới tại thư mục root. Lưu ý, ở script trên đã copy file
config.cfg
từ máy chủ controller sang máy chủ cinder.
curl -O https://raw.githubusercontent.com/congto/openstack-tools/master/scripts/OpenStack-Rocky-No-HA/noha_cinder_install.sh
bash noha_cinder_install.sh
- Sau khi cài đặt xong trên máy chủ cinder, quay lại máy chủ controller kiểm tra xem cinder đã hoạt động hay chưa bằng lệnh.
openstack volume service list
- Kết quả là các service của cinder sẽ hiển thị, việc
cinder-volume
tại controller node bị down là do ta không dùngcinder-volume
không kích hoạt trên máy chủ cinder.
+------------------+-------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-backup | controller1 | nova | enabled | up | 2017-07-26T14:21:38.000000 |
| cinder-scheduler | controller1 | nova | enabled | up | 2017-07-26T14:21:31.000000 |
| cinder-volume | controller1 | nova | enabled | down | 2017-07-26T09:22:34.000000 |
| cinder-volume | cinder1@lvm | nova | enabled | up | 2017-07-26T14:21:31.000000 |
+------------------+-------------+------+---------+-------+----------------------------+