OpenStack安装配置_Mitaka版本

本文详细介绍OpenStack从基础环境搭建到高级特性配置的全过程,包括Keystone认证、Glance镜像、Nova计算、Neutron网络等核心服务的安装与调优,以及Web界面、块存储、VXLAN网络等拓展功能实现。


 


IP 主机名 备注
192.168.117.14 controller 控制节点
192.168.117.15 compute1 计算节点1

控制节点:内存4G,处理器2核,开启VT虚拟化
计算节点1:内存1G,处理器2核,开启VT虚拟化
 

基础环境准备(所有节点)

  1. 配置host解析
[root@controller ~]# vim /etc/hosts
192.168.117.14  controller
192.168.117.15  compute1
  1. 挂载镜像文件
[root@controller ~]# echo 'mount /dev/cdrom /mnt
[root@controller ~]# echo 'mount /dev/cdrom /mnt' >> /etc/rc.local 
[root@controller ~]# chmod +x /etc/rc.d/rc.local
  1. 上传openstack_rpm.tar.gz至/opt/目录下并解压
[root@controller opt]# tar zxvf openstack_rpm.tar.gz
  1. 配置yum源
[root@controller ~]# vim /etc/yum.repos.d/local.repo 

[local]
name=local
baseurl=file:///mnt
gpgcheck=0

[openstack]
name=openstack
baseurl=file:///opt/repo
gpgcheck=0
  1. 分别配置时间同步
[root@controller ~]# vim /etc/chrony.conf
server ntp6.aliyun.com iburst
allow 192.168.117.0/24
[root@controller ~]# systemctl restart chronyd


[root@compute1 ~]# vim /etc/chrony.conf
server 192.168.117.14 iburst
[root@compute1 ~]# systemctl restart chronyd
  1. 安装openstack客户端和openstack-selinux
[root@controller ~]# yum install -y python-openstackclient openstack-selinux

配置keystone认证服务(控制节点)

  1. 安装数据库及python连接模块
[root@controller ~]# yum install -y mariadb mariadb-server python2-PyMySQL
  1. 创建配置文件
[root@controller ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.117.14        //控制节点IP
default-storage-engine = innodb     //默认存储引擎
innodb_file_per_table                     //独立表空间
max_connections = 4096
collation-server = utf8_general_ci     
character-set-server = utf8
  1. 启动mariadb,并设置开机自启
[root@controller ~]# systemctl enable --now mariadb
  1. 运行mariadb安全配置向导,为了方便不设置密码
[root@controller ~]# mysql_secure_installation
Enter current password for root (enter for none): 
Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
  1. 安装消息队列rabbitmq,启动服务并设置开机启动
[root@controller ~]# yum install -y rabbitmq-server
[root@controller ~]# systemctl enable --now rabbitmq-server
  1. 创建用户并授权
[root@controller ~]# rabbitmqctl add_user openstack RABBIT_PASS
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
  1. 启动监控页面插件
[root@controller ~]# rabbitmq-plugins enable rabbitmq_management
  1. 安装memcached
[root@controller ~]# yum install -y memcached python-memcached
  1. 修改memcached配置文件,重启服务并设置开机启动
[root@controller ~]# sed -i 's/127.0.0.1/192.168.117.14/g' /etc/sysconfig/memcached
[root@controller ~]# systemctl enable --now memcached
  1. 创建数据库并授权
[root@controller ~]# mysql
MariaDB [(none)]> create database keystone;
MariaDB [(none)]> grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'KEYSTONE_DBPASS';
MariaDB [(none)]> grant all privileges on keystone.* to 'keystone'@'%' identified by 'KEYSTONE_DBPASS';
  1. 安装keystone相关软件包
[root@controller ~]# yum install -y openstack-keystone httpd mod_wsgi
  1. 配置keystone文件
[root@controller ~]# sed -i.bak -e '/^$/d' -e '/^#.*/d' /etc/keystone/keystone.conf
[root@controller ~]# yum install -y openstack-utils
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token ADMIN_TOKEN       //定义初始管理令牌的值
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone      //配置数据库访问
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet        //配置Fernet UUID令牌的提供者
  1. 同步数据库
[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
  1. 初始化fernet keys
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
  1. 修改http配置文件,创建虚拟主机
[root@controller ~]# vim /etc/httpd/conf/httpd.conf 
ServerName controller

[root@controller ~]# vim /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{
   
   GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{
   
   GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{
   
   GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{
   
   GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
  </VirtualHost>
  1. 启动http服务,并设置开机自启
[root@controller ~]# systemctl enable --now httpd
  1. 配置认证令牌、端点URL、认证API版本
[root@controller ~]# export OS_TOKEN=ADMIN_TOKEN
[root@controller ~]# export OS_URL=http://controller:35357/v3
[root@controller ~]# export OS_IDENTITY_API_VERSION=3
  1. 创建认证服务
[root@controller ~]# openstack service create --name keystone --description "Openstack Identity" identity
  1. 创建三个API端点:admin、internal、public
[root@controller ~]# openstack endpoint create  --region RegionOne identity public http://controller:5000/v3
[root@controller ~]# openstack endpoint create  --region RegionOne identity internal http://controller:5000/v3
[root@controller ~]# openstack endpoint create  --region RegionOne identity admin http://controller:35357/v3
  1. 创建域、项目(租户)、用户、角色
[root@controller ~]# openstack domain create --description "Default Domain" default
[root@controller ~]# openstack project create --domain default --description "Admin Project" admin
[root@controller ~]# openstack user create --domain default --password ADMIN_PASS admin
[root@controller ~]# openstack role create admin
  1. 关联项目、用户、角色
[root@controller ~]# openstack role add --project admin --user admin admin
  1. 创建service项目
[root@controller ~]# openstack project create --domain default --description "Service Project" service
  1. 创建环境变量文件admin-openrc,设置登录时自动执行该文件
[root@controller ~]# vim admin-openrc
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

[root@controller ~]# vim .bashrc
source admin-openrc
  1. 重新登录主机,使用openstack token issue命令,检查是否能正常请求认证令牌
    在这里插入图片描述

配置glance镜像服务(控制节点)

  1. 创建数据库并授权
[root@controller ~]# mysql
MariaDB [(none)]> create database glance;
MariaDB [(none)]> grant all privileges on glance.* to 'glance'@'localhost' identified by 'GLANCE_DBPASS';
MariaDB [(none)]> grant all privileges on glance.* to 'glance'@'%' identified by 'GLANCE_DBPASS';
MariaDB [(none)]> quit
  1. 在keystone创建glance用户关联角色
[root@controller ~]# openstack user create --domain default --password GLANCE_PASS glance
[root@controller ~]# openstack role add --project service --user glance admin
  1. 在keystone上创建服务和注册api
[root@controller ~]# openstack service create --name glance --description "OpenStack Image" image
[root@controller ~]# openstack endpoint create --region RegionOne image public http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne image internal http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne image admin http://controller:9292
  1. 安装软件包
[root@controller ~]# yum install -y openstack-glance
  1. 配置glance-api配置文件
[root@controller ~]# sed -i.bak -e '/^$/d' -e '/^#.*/d' /etc/glance/glance-api.conf
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
[root@controller ~]# openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
  1. 配置glance-registry配置文件
[root@controller ~]# sed -i.bak -e '/^$/d' -e '/^#.*/d' /etc/glance/glance-registry.conf
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller:11211
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name default
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name default
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS
[root@controller ~]# openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
  1. 同步数据库
[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
  1. 启动glance服务,并设置开机自启
[root@controller ~]# systemctl enable --now openstack-glance-api.service
[root@controller ~]# systemctl enable --now openstack-glance-registry.service
  1. 验证glance服务
    在这里插入图片描述

配置nova计算服务(控制节点)

  1. 创建数据库并授权

                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值