openstack核心组件的安装和部署(mitaka)

资源:

KVM环境:

controller控制节点和计算节点都需要: 双网卡
在这里插入图片描述

cpu 设置: 需要设置设置host-passthrough 模式
在这里插入图片描述

  • 解析,三个节点都需要修改

  • 在这里插入图片描述

每个节点都需要,时间同步服务chronyd服务,选择同步真机的时间。
真机配置文件的修改:
在这里插入图片描述
节点直接同步就行了chronyc sources -v显示同步成功

控制节点

部署openstack源仓库

  1. 执行yum upgrade在主机上升级包

yum upgrade

  1. 安装 OpenStack 客户端:

yum install python-openstackclient

安装sql数据库:

  1. 安装软件包

yum install mariadb mariadb-server python2-PyMySQL

  1. 创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:

》

  1. 启动数据库服务,并将其配置为开机自启:

systemctl enable --now mariadb.service

  1. 对数据库进行安全初始化处理:

mysql_secure_installation

消息队列

  1. 安装包

yum install rabbitmq-server

  1. 启动消息队列服务并将其配置为随系统启动

systemctl enable --now rabbitmq-server.service

  1. 添加 openstack 用户:

rabbitmqctl add_user openstack openstack
第二个openstack 是 openstack 用户的密码

  1. openstack用户配置写和读权限:

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

可以选择打开rabbitmq的管理器

rabbitmq-plugins enable rabbitmq_management
通过web来管理rabbitmq
在这里插入图片描述

Memcached

认证服务认证缓存使用Memcached缓存令牌

  1. 安装软件包

yum install memcached python-memcached

  1. 修改监听地址

在这里插入图片描述

  1. 开机启动

systemctl enable --now memcached

认证服务

  • keystone 主要提供两大功能:授权管理和目录服务

创建一个数据库和管理员令牌

  1. 用数据库连接客户端以 root 用户连接到数据库服务器

mysql -u root -p

  1. 创建 keystone 数据库:

CREATE DATABASE keystone;

  1. keystone数据库授予恰当的权限:

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';

  1. 退出数据库,可以通过keystone用户登陆数据库查看数据库是否创建成功。

在这里插入图片描述

  1. 生成一个随机值在初始的配置中作为管理员的令牌。

openssl rand -hex 10

安装相应的组件

  1. 安装软件包

yum install openstack-keystone httpd mod_wsgi

  1. 编辑文件 /etc/keystone/keystone.conf 并完成如下动作:

    • [DEFAULT]部分,定义初始管理令牌的值:

      [DEFAULT]
      ...
      admin_token = ADMIN_TOKEN
      

      在这里插入图片描述

    • [database] 部分,配置数据库访问:

      [database]
      ...
      connection = mysql+pymysql://keystone:keystone@controller/keystone
      

      在这里插入图片描述
      3 .在[token]部分,配置Fernet UUID令牌的提供者。

      [token]
      ...
      provider = fernet
      
  2. 初始化身份认证服务的数据库:

su -s /bin/sh -c "keystone-manage db_sync" keystone

  1. 初始化Fernet keys:

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置 Apache HTTP 服务器

  1. 编辑/etc/httpd/conf/httpd.conf 文件,配置ServerName 选项为控制节点:

ServerName controller

  1. 用下面的内容创建文件 /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>
    
  2. 启动 Apache HTTP 服务并配置其随系统启动

systemctl enable --now httpd

创建服务实体和API端点

  1. 配置认证令牌:

export OS_TOKEN= admin_token

admin_token 是keystone.conf 中随机生成的admin_token

  1. 配置端点URL:

export OS_URL=http://controller:35357/v3

  1. 配置认证API版本

export OS_IDENTITY_API_VERSION=3

创建服务实体和API端点¶
  1. 在你的Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务。创建服务实体和身份认证服务:

openstack service create --name keystone --description “OpenStack Identity” identity

  1. 添加三种api端点

openstack endpoint create --region RegionOne
identity public http://controller:5000/v3

openstack endpoint create --region RegionOne
identity internal http://controller:5000/v3

openstack endpoint create --region RegionOne
identity admin http://controller:35357/v3

创建域、项目、用户和角色

  1. 创建域default

openstack domain create --description “Default Domain” default

  1. 在你的环境中,为进行管理操作,创建管理的项目、用户和角色:

    • 创建 admin 项目:

      openstack project create --domain default
      –description “Admin Project” admin

    • 创建 admin 用户:

      openstack user create --domain default --password admin admin

    • 创建 admin 角色:

      openstack role create admin

    • 添加admin 角色到 admin 项目和用户上:

      openstack role add --project admin --user admin admin

  2. 使用一个你添加到你的环境中每个服务包含独有用户的service 项目。创建service项目

    openstack project create --domain default
    –description “Service Project” service

  3. 常规(非管理)任务应该使用无特权的项目和用户。作为例子,本指南创建 demo 项目和用户。

    1. 创建demo 项目:

    openstack project create --domain default
    –description “Demo Project” demo

    1. 创建demo 用户:

    openstack user create --domain default
    –password-prompt demo

    1. 创建user角色

    openstack role create user

    1. 添加 user角色到demo 项目和用户:

    openstack role add --project demo --user demo user

创建脚本

  1. 编辑文件 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
    

    ADMIN_PASS指(admin的密码)

  2. 编辑文件 demo-openrc 并添加如下内容:

    export OS_PROJECT_DOMAIN_NAME=default
    export OS_USER_DOMAIN_NAME=default
    export OS_PROJECT_NAME=demo
    export OS_USERNAME=demo
    export OS_PASSWORD=DEMO_PASS
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
    

    DEMO_PASS为demo用户的密码

镜像服务

安装和配置镜像服务之前,你必须创建创建一个数据库、服务凭证和API端点。

建立数据库

controller节点

  1. 用数据库连接客户端以 root 用户连接到数据库服务器:

mysql -u root -p

  1. 创建glance数据库

CREATE DATABASE glance;

  1. glance数据库授予恰当的权限:

GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’ IDENTIFIED BY ‘glance’;

GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘glance’;

创建服务实体

  1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

. admin-openrc

  1. 要创建服务证书,完成这些步骤:

    1. 创建 glance 用户:

    openstack user create --domain default --password-prompt glance

    1. 添加 admin 角色到 glance 用户和 service 项目上

    openstack role add --project service --user glance admin

    1. 创建glance服务实体:

    openstack service create --name glance
    –description “OpenStack Image” image

    1. 创建镜像服务的 API 端点:

    openstack endpoint create --region RegionOne image public http://controller:9292

    openstack endpoint create --region RegionOne mage internal http://controller:9292

    openstack endpoint create --region RegionOne image admin http://controller:9292

安全并配置组件

  1. 安装软件包:

    yum install openstack-glance

  2. 编辑文件 /etc/glance/glance-api.conf 并完成如下动作:

    1. 在 [database] 部分,配置数据库访问:
    [database]
    ...
    connection = mysql+pymysql://glance:glance@controller/glance
    
    1. 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:
    [keystone_authtoken]
    ...
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = glance
    
    [paste_deploy]
    ...
    flavor = keystone
    
    1. 在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:
    [glance_store]
    ...
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    
  3. 编辑文件 /etc/glance/glance-registry.conf并完成如下动作:

    1. 在 [database] 部分,配置数据库访问:
    [database]
    ...
    connection = mysql+pymysql://glance:glance@controller/glance
    
    1. 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:
    [keystone_authtoken]
    ...
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = glance
    
    [paste_deploy]
    ...
    flavor = keystone
    
  4. 写入镜像服务数据库:

su -s /bin/sh -c “glance-manage db_sync” glance

  1. 启动镜像服务、配置他们随机启动:

systemctl enable --now openstack-glance-api.service openstack-glance-registry.service

  1. 上传思科镜像,cirros镜像需要自己下载

openstack image create “cirros”
–file cirros-0.3.4-x86_64-disk.img
–disk-format qcow2 --container-format bare
–public

  1. openstack image list 列出当前可用镜像

nova 计算服务

controller节点上:

安装部署

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/nova-controller-install.html

验证操作

openstack compute service list
在这里插入图片描述

安装和配置计算节点

安装计算节点:配置环境

  1. cpu 的类型 host-passthrough
  2. 两块网卡,一台网卡只打开什么都不作
  3. 解析,
  4. 时间同步服务ntp
  5. 安装openstack包,给compute 节点配置openstack yum源,通过yum upgrade 升级一下包
  6. 安装和配置计算节点https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/nova-compute-install.html
    rabbitmqctl authenticate_user openstack openstack 用于验证openstack 用户的密码
  7. 验证操作:
    openstack compute service list
    在这里插入图片描述

neturon网络服务

安装并配置控制节点

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install.html

配置公共网络

在controller节点上安装并配置网络组件
https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install-option1.html
neutron agent-list 验证
在这里插入图片描述

安装和配置计算节点

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-compute-install.html

公共网络

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-compute-install-option1.html
验证操作:neutron agent-list
在这里插入图片描述

尝试启动一个实例

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/launch-instance.html

创建提供者网络

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/launch-instance-networks-provider.html

Dashborad

安装和配置

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon-install.html
时区参数: Asia/Shanghai

云主机镜像构建

https://docs.openstack.org/image-guide/centos-image.html

正常安装rhel7.6系统,不需要修改network

在这里插入图片描述

网络设置为dhcp的格式
在这里插入图片描述
可以手工加入一个ip以便操作:

  1. 创建一个yum源仓库。

yum install acpid
systemctl enable acpid

  1. 配置cloud-init的本地软件仓库

yum install cloud-init

  1. 为了正确调整根分区的大小,请安装该 cloud-utils-growpart软件包

yum install cloud-utils-growpart

  1. 禁用zeroconf路由¶
    为了使实例能够访问元数据服务,您必须禁用默认的zeroconf路由:

echo “NOZEROCONF=yes” >> /etc/sysconfig/network

  1. 配置控制台 编辑/boot/grub2/grub.cfg文件在这里插入图片描述

  2. 关闭selinux 和 firewalld

  3. 在真机上用virt-sysprep -d test 对虚拟机进行清理

  4. 对虚拟机进行压缩

virt-sparsify --compress test.qcow2 /var/www/html/content/test.qcow2
在这里插入图片描述
在这里插入图片描述

添加镜像

通过openstack的web界面添加镜像

使用admin 用户上传,需要加入公有标签
在这里插入图片描述

创建一个云主机使用类型:
在这里插入图片描述
用demo用户创建一个云主机测试

添加私有网络

在controller节点上添加私有网络

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install-option2.html
在计算节点上安装之后,重启服务

systemctl restart neutron-server neutron-linuxbridge-agent

设置开机自启

systemctl enable neutron-l3-agent.service
systemctl start neutron-l3-agent.service

安装和配置计算节点的私有网络

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-compute-install-option2.html

重启服务

systemctl restart neutron-linuxbridge-agent.service

修改Dashboard 的配置文件
在这里插入图片描述
重启web服务器以及会话存储服务:

systemctl restart httpd.service memcached.service

创建网络

回收正在使用的云主机,用admin用户添加一个public网络,在public网络下,创建一个子网,地址池是172.25.10.100- 172.25.10.200
在这里插入图片描述

创建一个私有网络

  1. 用demo用户
    在这里插入图片描述

在这里插入图片描述

3 .
在这里插入图片描述

  1. 创建两个虚拟机,一个使用public网络,一个使用private网络。private私有网络的云主机需要路由规则才可以访问外部网络,外部网络想要访问私有网络的云主机,私有网络的云主机需要申请浮动ip的方式,才可以让外部网络来访问私有网络下的云主机。
    在这里插入图片描述

添加一个块存储服务

启动一个虚拟机,用于作为block主机

可以不需要双网卡,不需要host-passthrough

对控制节点的安装和部署

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/cinder-controller-install.html

安装并配置存储节点

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/cinder-storage-install.html

文件配置:/etc/lvm/lvm.conf在这里插入图片描述

创建一个云硬盘

创建一个云硬盘,管理连接到云主机,通过mount 命令 挂在到云主机内的某个目录下,实现数据的永久存储,即使云主机回收,数据也不会丢失,通过mkfs.ext4 /dev/vdb ext4格式。当云硬盘扩容之后,可以通过resize2fs /dev/vdb 使得在云主机上硬盘大小显示正常。

官网https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-networking-controller.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值