私有云

一、私有云服务搭建(10)

​ IP 地址设置,主机名设置,磁盘分区,文件系统挂载,web、ftp、dns、ntp 等常用linux服务器安装与配置。
​ OpenStack云平台搭建基本变量进行配置, 安装部署数据库、Keystone 服务、Glance 服务、Nova 服务、Neutron 服务、Dashboad 服务、Cinder 服务、Swift 服务、Heat 服务、Ceph 服务、Ceilometer、manila 和 Zun 服务等 Openstack 相关组件,完成私有云平台的搭建部署

1.集群主机环境配置(1分)
​ 使用提供的用户名密码,登录提供的OpenStack私有云平台,在当前租户下,使用CentOS7.9镜像,创建两台云主机,云主机类型使用4vCPU/12G/100G_50G类型。当前租户下默认存在一张网卡,自行创建第二张网卡并连接至controller和compute节点(第二张网卡的网段为10.10.X.0/24,X为工位号,不需要创建路由)。自行检查安全组策略,以确保网络正常通信与ssh连接,然后按以下要求配置服务器:
​ ①设置控制节点主机名为controller,设置计算节点主机名为compute;
​ ②修改hosts文件将IP地址映射为主机名;
​ ③使用提供的http服务地址,分别设置controller节点和compute节点的yum源文件http.repo;
​ ④配置controller节点可以无秘钥访问compute节点。
(1)controller

# 关闭防火墙
systemctl stop firewalld
setenforce 0

# 修改主机名
hostnamectl set-hostname controller
bash

# 添加域名解析
cat >> /etc/hosts << EOF
192.168.100.100 controller
192.168.100.120 compute
EOF

# 下载centos镜像
cp -rfv /etc/keystone/CentOS-7-x86_64-DVD-2009.iso .

# 下载iaas镜像

# 获取centos镜像内容
mkdir /opt/centos
mount CentOS-7-x86_64-DVD-2009.iso /mnt
cp -rvf /mnt/* /opt/centos
umount /mnt

# 获取iaas镜像内容
mkdir /opt/iaas
mount chinaskills_cloud_iaas_v2.0.1.iso /mnt
cp -rvf /mnt/* /opt/iaas
umount /mnt

# 制作镜像源
mkdir /media
mv /etc/yum.repos.d/* /media
vi /etc/yum.repos.d/local.repo
[centos]
name="centos"
baseurl=file:///opt/centos/
gpgcheck=0
enabled=1
[iaas]
name="iaas"
baseurl=file:///opt/iaas/iaas-repo/
gpgcheck=0
enabled=1
yum clean all && yum repolist

# 安装ftp服务,配置yum共享
yum -y install vsftpd
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd 
systemctl enable vsftpd

# 配置免密登陆
ssh-keygen
ssh-copy-id compute
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.

(2)compute

# 关闭防火墙
systemctl stop firewalld
setenforce 0

# 修改主机名
hostnamectl set-hostname compute
bash

# 添加域名解析
cat >> /etc/hosts << EOF
192.168.100.100 controller
192.168.100.120 compute
EOF

# 制作镜像源
mkdir /media
mv /etc/yum.repos.d/* /media
vi /etc/yum.repos.d/ftp.repo
[centos]
name="centos"
baseurl=ftp://controller/centos/
gpgcheck=0
enabled=1
[iaas]
name="iaas"
baseurl=ftp://controller/iaas/iaas-repo/
gpgcheck=0
enabled=1
yum clean all && yum repolist
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

2.私有云服务搭建(1分)
​ 在控制节点和计算节点上分别安装openstack-iaas软件包,根据表2配置两个节点脚本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。
(1)controller

# 下载软件包
yum -y install openstack-iaas

# 修改opencr.sh脚本
vi /etc/openstack/openrc.sh

# 开始部署
iaas-pre-host.sh
bash
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

(2)compute

# 磁盘分区
fdisk /dev/vdb
n
p
+20G
n
p
+20G
n
p
+5G
w

# 下载软件包
yum -y install openstack-iaas

# 修改opencr.sh脚本
vi /etc/openstack/openrc.sh

# 开始部署
iaas-pre-host.sh
bash
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

3.数据库及消息服务安装与使用(1分)
​ 在控制节点上使用安装Mariadb、RabbitMQ等服务。并进行相关操作。
​ 在controller节点上使用iaas-install-mysql.sh 脚本安装Mariadb、Memcached、RabbitMQ等服务。安装服务完毕后,修改/etc/my.cnf文件,完成下列要求:

​ ①设置数据库支持大小写;
​ ②设置数据库缓存innodb表的索引,数据,插入数据时的缓冲为4G;
​ ③设置数据库的log buffer为64MB;
​ ④设置数据库的redo log大小为256MB;
​ ⑤设置数据库的redo log文件组为2。
​ ⑥修改Memcached的相关配置,将内存占用大小设置为512MB,调整最大连接数参数为2048;
​ ⑦调整Memcached的数据摘要算法(hash)为md5;

(1)controller

# 使用iaas-install-mysql.sh 脚本安装Mariadb、Memcached、RabbitMQ等服务
iaas-install-mysql.sh

# 修改/etc/my.cnf文件
cp /etc/my.cnf /etc/my.cnf.bak
vi /etc/my.cnf
[mysqld]
# 设置数据库支持大小写
lower_case_table_names=1
# 设置数据库缓存innodb表的索引,数据,插入数据时的缓冲为4G
innodb_buffer_pool_size=4G
# 设置数据库的log buffer为64MB
innodb_log_buffer_size=64M
# 设置数据库的redo log大小为256MB
innodb_log_file_size=256M
# 设置数据库的redo log文件组为2
innodb_log_files_in_group=2

# 修改memcached文件
cp /etc/sysconfig/memcached /etc/sysconfig/memcached.bak
vi /etc/sysconfig/memcached
# 调整最大连接数参数为2048
MAXCONN="2048"
# 将内存占用大小设置为512MB
CACHESIZE="512"
# 调整 Memcached 的数据摘要算法(hash)为 md5
hash_algorithm=md5

# 重启服务
systemctl restart mariadb memcached
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

4.Keystone服务安装与使用(1分)
​ 在控制节点上安装Keystone服务并创建用户。
​ 在controller节点上使用iaas-install-keystone.sh脚本安装Keystone服务。
​ 然后创建OpenStack域210Demo,其中包含Engineering与Production项目,在域210Demo中创建组Devops,其中需包含以下用户:
​ ①Robert用户是Engineering项目用户(member)与管理员(admin),email地址为:Robert@lab.example.com。
​②George用户是Engineering项目用户(member),email地址为:George@lab.example.com。
③William用户是Production项目用户(member)与管理员(admin),email地址为:William@lab.example.com。
​ ④John用户是Production项目用户(member),email地址为:John@lab.example.com 。

(1)controller

# 安装keystone组件
iaas-install-keystone.sh

# 模拟管理员
source /etc/keystone/admin-openrc.sh

# 创建域、项目、组
openstack domain create 210Demo
openstack group create devops --domain 210Demo
openstack project create Engineering --domain 210Demo
openstack project create Production --domain 210Demo

# 创建用户
openstack user create Robert --domain 210Demo --project Engineering --email Robert@lab.example.com --password 000000
openstack user create George --domain 210Demo --project Engineering --email George@lab.example.com --password 000000
openstack user create William --domain 210Demo --project Production --email William@lab.example.com --password 000000
openstack user create John --domain 210Demo --project Production --email John@lab.example.com --password 000000

# 将用户添加到组中
openstack group add user Devops Robert George William John

# 创建角色
openstack role create member
openstack role create admin

# 为用户添加角色
openstack role add --project Engineering --user Robert member
openstack role add --project Engineering --user Robert admin
openstack role add --project Engineering --user George member
openstack role add --project Production --user William member
openstack role add --project Production --user William admin
openstack role add --project Production --user John member
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.

5.Glance安装与使用(1分)
​ 在控制节点上安装Glance 服务。上传镜像至平台,并设置镜像启动的要求参数。
​ 在controller节点上使用iaas-install-glance.sh脚本安装glance服务。然后将cirros-0.5.2-x86_64-disk.img镜像上传到OpenStack平台中,镜像名称为cirros-0.5.2。完成后提交控制节点的用户名、密码和IP地址到答题框。

(1)controller

# 安装glance
iaas-install-glance.sh

# 获取镜像
# cp -rfv /opt/iaas/images/cirros-0.3.4-x86_64-disk.img .

# 上传镜像(因为没有cirros-0.5.2镜像,示例用cirros-0.3.4代替)
glance image-create --name cirros-0.3.4 --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

6.Nova安装(1分)
​ 在控制节点和计算节点上分别安装Nova服务。安装完成后,完成Nova相关配置。
​ 在controller节点和compute节点上分别使用iaas-install-placement.sh脚本、iaas-install-nova -controller.sh脚本、iaas-install-nova-compute.sh脚本安装Nova服务。在OpenStack中,修改相关配置文件,修改调度器规则采用缓存调度器,缓存主机信息,提升调度时间。配置完成后提交controller点的用户名、密码和IP地址到答题框。

(1)controller

# 安装nova
iaas-install-placement.sh
iaas-install-nova-controller.sh

# 修改调度器规则采用缓存调度器,缓存主机信息,提升调度时间
vi /etc/nova/nova.conf
driver=caching_scheduler

# 重启
systemctl restart openstack-nova*
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

(2)compute

# 安装nova
iaas-install-nova-compute.sh
  • 1.
  • 2.

7.Neutron安装(1分)
​ 在控制和计算节点上正确安装Neutron服务。
​ 使用提供的脚本iaas-install-neutron-controller.sh和iaas-install-neutron-compute.sh,在controller和compute节点上安装neutron服务。完成后提交控制节点的用户名、密码和IP地址到答题框。

(1)controller

# 安装neutron
iaas-install-neutron-controller.sh
  • 1.
  • 2.

(2)compute

# 安装neutron
iaas-install-neutron-compute.sh
  • 1.
  • 2.

8.Dashboard安装(1分)
​ 在控制节点上安装Dashboard服务。安装完成后,将Dashboard中的 Django数据修改为存储在文件中。
​ 在controller节点上使用iaas-install-dashboad.sh脚本安装Dashboard服务。安装完成后,修改相关配置文件,完成下列两个操作:

​ ①使得登录Dashboard平台的时候不需要输入域名;
​ ②将Dashboard中的Django数据修改为存储在文件中。

(1)controller

# 安装neutron
iaas-install-dashboard.sh

# 使得登录Dashboard平台的时候不需要输入域名
echo "OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False" >> /etc/openstack-dashboard/local_settings

# 将Dashboard中的Django数据修改为存储在文件中
echo "SESSION_ENGINE = 'django.contrib.sessions.backends.file'" >> /etc/openstack-dashboard/local_settings

# 重启服务
systemctl restart httpd memcached
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

9.Swift安装(1分)
​ 在控制节点和计算节点上分别安装Swift服务。安装完成后,将cirros镜像进行分片存储。
​ 在控制节点和计算节点上分别使用iaas-install-swift-controller.sh和iaas-install-swift-compute.sh脚本安装Swift服务。安装完成后,使用命令创建一个名叫examcontainer的容器,将cirros-0.3.4-x86_64-disk.img镜像上传到examcontainer容器中,并设置分段存放,每一段大小为10M。完成后提交控制节点的用户名、密码和IP地址到答题框。

(1)controller

# 安装swift
iaas-install-swift-controller.sh

# 创建examcontainer容器
swift post examcontainer

# 将cirros-0.3.4-x86_64-disk.img镜像上传到examcontainer容器中,设置分段存放,每一段大小为10M
swift upload examcontainer -S 10M cirros-0.3.4-x86_64-disk.img
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

(2)compute

# 安装swift
iaas-install-swift-compute.sh
  • 1.
  • 2.

10.Cinder安装与创建硬盘(1分)
​ 在控制节点和计算节点分别安装Cinder服务,请在计算节点,对块存储进行扩容操作。
​ 在控制节点和计算节点分别使用iaas-install-cinder-controller.sh、iaas-install-cinder-compute.sh脚本安装Cinder服务,请在计算节点,对块存储进行扩容操作,即在计算节点再分出一个5G的分区,加入到cinder块存储的后端存储中去。完成后提交计算节点的用户名、密码和IP地址到答题框。

(1)controller

# 安装cinder
iaas-install-cinder-controller.sh
  • 1.
  • 2.

(2)comput

# 安装cinder
iaas-install-cinder-compute.sh

# 再分出一个5G的分区
fdisk /dev/vdb
n
p
+5G
w

# 加入到cinder块存储的后端存储中
pvcreate /dev/vdb4
vgextend cinder-volumes /dev/vdb4
vgs
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

安装完成后,使用浏览器访问OpenStack云平台,访问地址为: http://192.168.100.110/dashboard,domain为demo,用户名为admin,密码为000000。

本文由博客一文多发平台  OpenWrite 发布!