centos搭建openstack的完整详细过程
时间: 2023-10-03 12:10:53 浏览: 105
以下是 CentOS 上搭建 OpenStack 的详细过程:
1. 安装 CentOS
首先需要安装 CentOS,建议使用最新版本的 CentOS 7。
2. 配置网络
OpenStack 需要使用网桥模式,所以需要配置网桥。在 CentOS 中,可以使用 `brctl` 工具来创建网桥。首先安装 `bridge-utils`:
```
yum install -y bridge-utils
```
然后在 `/etc/sysconfig/network-scripts/` 目录下创建一个名为 `ifcfg-br0` 的文件,内容如下:
```
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
```
其中 `IPADDR` 和 `NETMASK` 需要根据实际情况进行修改。然后在 `/etc/sysconfig/network-scripts/` 目录下找到原来的网卡配置文件,例如 `ifcfg-eth0`,将其内容修改为:
```
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
```
保存文件后,重启网络服务:
```
systemctl restart network
```
3. 安装 OpenStack
接下来需要安装 OpenStack。OpenStack 有多个组件,包括 Keystone、Glance、Nova、Neutron 等。这里以安装 Keystone、Glance、Nova 为例。
首先需要安装 OpenStack 的仓库和公钥:
```
yum install -y centos-release-openstack-queens
yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7
```
然后安装 Keystone:
```
yum install -y openstack-keystone httpd mod_wsgi
```
安装完成后,需要配置 Keystone。首先需要修改 `/etc/keystone/keystone.conf` 文件,将其中的 `admin_token` 修改为一个安全的随机值,例如:
```
[DEFAULT]
...
admin_token = 1234567890abcdef1234567890abcdef
...
```
然后创建数据库和用户:
```
mysql -uroot -p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
```
接着初始化 Keystone 数据库:
```
su -s /bin/sh -c "keystone-manage db_sync" keystone
```
然后启动 Keystone 服务:
```
systemctl enable httpd.service
systemctl start httpd.service
systemctl enable openstack-keystone.service
systemctl start openstack-keystone.service
```
最后创建一个管理员用户:
```
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://localhost:5000/v3
export OS_IDENTITY_API_VERSION=3
openstack domain create --description "An Example Domain" example
openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password-prompt demo
openstack role create user
openstack role add --project demo --user demo user
```
然后安装 Glance:
```
yum install -y openstack-glance
```
修改 `/etc/glance/glance-api.conf` 文件,将其中的 `database`、`keystone_authtoken`、`paste_deploy` 等选项配置为正确的值。
创建 Glance 数据库:
```
mysql -uroot -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
```
初始化 Glance 数据库:
```
su -s /bin/sh -c "glance-manage db_sync" glance
```
启动 Glance 服务:
```
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
```
最后安装 Nova:
```
yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
```
修改 `/etc/nova/nova.conf` 文件,将其中的 `database`、`keystone_authtoken`、`glance`、`neutron`、`libvirt` 等选项配置为正确的值。
创建 Nova 数据库:
```
mysql -uroot -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
```
初始化 Nova 数据库:
```
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
```
启动 Nova 服务:
```
systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
```
然后就可以使用 OpenStack 了。