主机环境
VMware Workstation Pro搭建的两个虚拟机
1 | controller 10.2.2.3 Centos 8.2 |
配置相关源和环境(控制节点、计算节点)
阿里源镜像
base
1 | mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup |
epel
1 | yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm |
安装pip阿里源
mkdir ~/.pip
vim ~/.pip/pip.conf
1 | [global] |
安装常用程序
1 | yum install -y vim wget chrony git |
安装zsh(可省略)
1 | yum install -y zsh |
修改hosts文件
vim /etc/hosts
1 | 10.2.2.3 controller |
关闭防火墙、SElinux
1 | systemctl stop firewalld.service |
vim /etc/selinux/config
1 | SELINUX=disabled |
配置时间同步(控制节点、计算节点)
控制节点
vim /etc/chrony.conf
1 | pool ntp1.aliyun.com iburst |
1 | systemctl enable chronyd |
计算节点
vim /etc/chrony.conf
1 | # 只留这个 |
1 | systemctl enable chronyd |
安装OpenStack包(控制节点、计算节点)
安装OpenStack阿里源镜像
vim /etc/yum.repos.d/Openstack-Ussuri.repo
1 | [oepnstack] |
1 | yum makecache |
安装OpenStack包
1 | yum install -y centos-release-openstack-ussuri |
安装rdo库
1 | yum install -y https://www.rdoproject.org/repos/rdo-release.el8.rpm |
升级所有节点上的包
1 | yum upgrade |
安装OpenStack客户端
1 | yum install -y python3-openstackclient |
安装openstack-selinux
1 | yum install -y openstack-selinux |
安装数据库(控制节点)
1 | yum install -y mariadb mariadb-server python2-PyMySQL |
vim /etc/my.cnf.d/mariadb-server.cnf
1 | [mysqld] |
1 | systemctl enable --now mariadb.service |
初始化mariadb
1 | mysql_secure_installation |
允许远程登录
1 | mysql -u root -p |
1 | use mysql |
安装Message queue(控制节点)
1 | yum install -y rabbitmq-server |
安装Memcached(控制节点)
1 | yum install -y memcached python3-memcached |
vim /etc/sysconfig/memcached
1 | OPTIONS="-l 127.0.0.1,::1,controller" |
1 | systemctl enable --now memcached.service |
安装Etcd(控制节点)
1 | yum install -y etcd |
vim /etc/etcd/etcd.conf
1 | #[Member] |
1 | systemctl enable --now etcd |
安装Keystone模块(控制节点)
配置数据库
1 | mysql -u root -p |
1 | CREATE DATABASE keystone; |
安装
1 | yum install -y openstack-keystone httpd python3-mod_wsgi |
修改keystone.conf
vim /etc/keystone/keystone.conf
1 | 在573行 |
1 | su -s /bin/sh -c "keystone-manage db_sync" keystone |
初始化
1 | keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone |
引导认证服务
1 | keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ |
编辑/etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf
1 | 在98行 |
链接配置文件
1 | ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ |
开起httpd服务
1 | systemctl enable --now httpd.service |
导入环境 (这个为了方便设置的全局变量,后面可单独设置)
1 | echo "export OS_USERNAME=admin" >> /etc/profile |
创建域和用户
1 | #创建Domain |
取消设置临时变量和环境变量
1 | unset OS_AUTH_URL OS_PASSWORD |
使用admin认证
1 | openstack --os-auth-url http://controller:5000/v3 \ |
使用myuser认证
1 | openstack --os-auth-url http://controller:5000/v3 \ |
分别创建admin和myuser的环境变量
vim ~/admin-openrc
1 | export OS_PROJECT_DOMAIN_NAME=Default |
vim ~/demo-openrc
1 | export OS_PROJECT_DOMAIN_NAME=Default |
使用办法
1 | . ~/admin-openrc |
安装Glance模块 (控制节点)
配置数据库
1 | mysql -u root -p |
1 | CREATE DATABASE glance; |
创建用户和项目
1 | # 使用. admin-openrc认证 |
安装glance
1 | yum install -y openstack-glance |
vim /etc/glance/glance-api.conf
1 | # 在2061行 |
填充数据库
1 | su -s /bin/sh -c "glance-manage db_sync" glance |
启动服务
1 | systemctl enable --now openstack-glance-api.service |
验证
1 | . ~/admin-openrc |
安装Placement模块(控制节点)
安装数据库环境
1 | mysql -uroot -p |
1 | CREATE DATABASE placement; |
配置用户和端点
1 | . ~/admin-openrc |
安装和配置组件
1 | yum install -y openstack-placement-api |
vim /etc/placement/placement.conf
1 | # 在515行 |
填充数据库
1 | su -s /bin/sh -c "placement-manage db sync" placement |
验证
1 | placement-status upgrade check |
安装Nova模块 (控制节点)
配置数据库
1 | mysql -u root -p |
1 | CREATE DATABASE nova_api; |
创建域和服务
1 | . ~/admin-openrc |
安装Nova
1 | yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler |
vim /etc/nova/nova.conf
1 | # 第1行 |
同步
1 | su -s /bin/sh -c "nova-manage api_db sync" nova |
启动服务
1 | systemctl enable --now \ |
安装Nova模块 (计算节点)
1 | yum install -y openstack-nova-compute |
vim /etc/nova/nova.conf
1 | # 第1行 |
确定计算节点是否支持虚拟机的硬件加速
1 | egrep -c '(vmx|svm)' /proc/cpuinfo |
返回one or greater则支持,不需要设置
返回zero or libvirt则支持,需要设置以下内容
vim /etc/nova/nova.conf
1 | [libvirt] |
1 | systemctl enable --now libvirtd.service openstack-nova-compute.service |
计算节点添加至数据库(控制节点)
1 | . ~/admin-openrc |
安装Neutron模块(控制节点)
配置数据库
mysql -u root -p
1 | CREATE DATABASE neutron; |
配置用户和环境
1 | . ~/admin-openrc |
安装Neutron
1 | yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables |
vim /etc/neutron/neutron.conf
1 | # 第1行 |
vim /etc/neutron/plugins/ml2/ml2_conf.ini
1 | [ml2] |
vim /etc/neutron/dhcp_agent.ini
1 | interface_driver = linuxbridge |
vim /etc/neutron/metadata_agent.ini
1 | [DEFAULT] |
完成安装
vim /etc/nova/nova.conf
1 | # 在3351行 |
链接配置文件
1 | ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini |
启动服务
1 | systemctl restart openstack-nova-api.service |
安装Neutron模块(计算节点)
1 | yum -y install openstack-neutron-linuxbridge ebtables ipset |
vim /etc/neutron/neutron.conf
1 | [DEFAULT] |
vim /etc/nova/nova.conf
1 | # 3347行 |
启动服务
1 | systemctl restart openstack-nova-compute.service |
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
1 | [linux_bridge] |
安装Dashboard模块(控制节点)
1 | yum install -y openstack-dashboard |
vim /etc/openstack-dashboard/local_settings
1 | OPENSTACK_HOST = "controller" |
1 | echo 'WSGIApplicationGroup %{GLOBAL}' >> /etc/httpd/conf.d/openstack-dashboard.conf |
1 | systemctl restart httpd.service memcached.service |
安装完成访问
可访问 http://10.2.2.3/dashboard/ 查看,域default 账号admin