請嚴格按照實驗環境執行,如果你是新手,不按環境來,幾乎不會成功,因為OpenStack依賴的元件太多了。
任何一個小錯誤都可能導緻最終無法建立虛拟機。

一.基礎軟體包安裝
1.安裝EPEL倉庫
# rpm -ivh [url]http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm[/url]
2.安裝OpenStack倉庫
# yum install -y centos-release-openstack-queens
3.安裝OpenStack用戶端
# yum install -y python-openstackclient
4.安裝openstack SELinux管理包
# yum install -y openstack-selinux
二.MySQL資料庫部署
1.MySQL安裝
[root@linux-node1 ~]# yum install -y mariadb mariadb-server python2-PyMySQL
2.修改MySQL配置檔案
[root@linux-node1 ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.56.11 #設定監聽的IP位址
default-storage-engine = innodb #設定預設的存儲引擎
innodb_file_per_table = on#使用獨享表空間
collation-server = utf8_general_ci #伺服器的預設校對規則
character-set-server = utf8 #伺服器安裝時指定的預設字元集設定
max_connections = 4096 #設定MySQL的最大連接配接數,生産請根據實際情況設定。
3.啟動MySQL Server并設定開機啟動
[root@linux-node1 ~]# systemctl enable mariadb.service
[root@linux-node1 ~]# systemctl start mariadb.service
4.進行資料庫安全設定
[root@linux-node1 ~]# mysql_secure_installation
5.資料庫建立
[root@linux-node1 ~]# mysql -u root -p
Enter password:
…
MariaDB [(none)]>
Keystone資料庫
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
Glance資料庫
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
Nova資料庫
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
CREATE DATABASE nova_api;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova';
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova';
Neutron 資料庫
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';
Cinder資料庫
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
三:消息代理RabbitMQ
1.安裝RabbitMQ
[root@linux-node1 ~]# yum install -y rabbitmq-server
2.設定開啟啟動,并啟動RabbitMQ
[root@linux-node1 ~]# systemctl enable rabbitmq-server.service
[root@linux-node1 ~]# systemctl start rabbitmq-server.service
3.添加openstack使用者。
[root@linux-node1 ~]# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...
4.給剛才建立的openstack使用者,建立權限。
[root@linux-node1 ~]# rabbitmqctl set_permissions openstack "." "." ".*"
Setting permissions for user "openstack" in vhost "/" ...
5.啟用Web監控插件
[root@linux-node1 ~]# rabbitmq-plugins list
[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management