<p style="margin-left:0;text-align:left;"><strong><span style="color:#24292e;">案例准备</span></strong></p>
讯享网
1. 规划节点
案例实施
#计算节点多配置一个20G的硬盘
1. 环境配置
(1)配置主机名
主机密码默认为000000,使用Linux命令修改节点主机名。
[root@controller ~]# hostnamectl set-hostname controller
[root@controller ~]# su
[root@compute ~]# hostnamectl set-hostname compute
[root@compute ~]# su
(2)配置域名解析
使用vi命令在controller节点与compute节点的/etc/hosts文件添加如下内容,添加完成后输入:wq保存文件内容退出。
[root@controller ~]# vi /etc/hosts
…
192.168.100.10 controller
192.168.100.20 compute
[root@compute ~]# vi /etc/hosts
…
192.168.100.10 controller
192.168.100.20 compute
对应的IP地址根据云主机实际IP地址填写。
(3)配置yum环境
将OpenStack云平台部署的iso文件通过curl命令下载到controller节点的/root目录下。在/opt目录生成centos7-2009和iaas-train目录,将安装镜像文件内容复制到centos7-2009和iaas目录中。
[root@controller ~]# curl -O http://mirrors.douxuedu.com/competition/chinaskills_cloud_iaas_v2.0.1.iso
[root@controller ~]# curl -O http://mirrors.douxuedu.com/competition/CentOS-7-x86_64-DVD-2009.iso
[root@controller ~]# mkdir /opt/{centos7-2009,iaas}
[root@controller ~]# mount /root/CentOS-7-x86_64-DVD-2009.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/centos7-2009/
[root@controller ~]# umount /mnt/
[root@controller ~]# mount /root/chinaskills_cloud_iaas_v2.0.1.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/iaas/
[root@controller ~]# umount /mnt/
[root@controller ~]#systemctl stop firewalld #以下四条在控制节点也要执行
[root@controller ~]#systemctl disable firewalld
[root@controller ~]#setenforce 0
[root@controller ~]#vi /etc/selinux/config #把enforcing改成disable
配置controller节点Yum安装源文件yum.repo,指向本地文件目录路径。
[root@controller ~]# mv /etc/yum.repos.d/* /media/
[root@controller ~]# vi /etc/yum.repos.d/yum.repo
[centos]
name=centos7-2009
baseurl=file:///opt/centos7-2009
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@controller ~]# yum clean all && yum repolist
…
repo id repo name status
centos centos7-2009 4,070
openstack openstack-train 953
repolist: 5,023
在controller节点使用Yum安装vsftpd服务,并将/opt目录下的文件共享出去。
[root@controller ~]# yum install -y vsftpd
…
Installed:
vsftpd.x86_64 0:3.0.2-28.el7
Complete!
[root@controller ~]# echo “anon_root=/opt” >> /etc/vsftpd/vsftpd.conf
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd
配置compute节点Yum安装源文件yum.repo,指向controller节点的共享文件目录路径。
[root@compute ~]# mv /etc/yum.repos.d/* /media/
[root@compute ~]# vi /etc/yum.repos.d/yum.repo
[centos]
name=centos7-2009
baseurl=ftp://controller/centos7-2009
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=ftp://controller/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@compute ~]# yum clean all && yum repolist
…
repo id repo name status
centos centos7-2009 4,070
openstack openstack-train 953
repolist: 5,023
(4)划分分区
在compute节点上的临时磁盘sdb中划分三个10G的分区。
[root@compute ~]# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-, default ): +9G
Partition 1 of type Linux and of size 9 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (-, default ):
Using default value
Last sector, +sectors or +size{K,M,G} (-, default ): +9G
Partition 2 of type Linux and of size 9 GiB is set
Command (m for help): p
Disk /dev/vdb: 21.5 GB, bytes, sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x64513eb0
Device Boot Start End Blocks Id System
/dev/sdb1 2048 83 Linux
/dev/sdb2 83 Linux
/dev/sdb23 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@compute ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 253:0 0 40G 0 disk
└─sda1 253:1 0 40G 0 part /
sdb 253:16 0 20G 0 disk
├─sdb1 253:17 0 10G 0 part
└─sdb2 253:18 0 10G 0 part
└─sdb3 253:18 0 10G 0 part
sdc 253:32 0 1M 0 disk
2. OpenStack云平台部署
完成基础环境部署后,就可以开始部署安装OpenStack云平台。
(1)配置环境变量
在controller节点和compute节点安装OpenStack云平台的安装脚本软件包。
[root@controller ~]# yum install -y openstack-iaas
…
Installed:
openstack-train.x86_64 0:v1.0.2-1.el7
Complete!
[root@compute ~]# yum install -y openstack-iaas
…
Installed:
openstack-train.x86_64 0:v1.0.2-1.el7
Complete!
在controller节点和compute节点配置环境变量文件/etc/openstack/openrc.sh,按“a”键进入openrc.sh编辑模式:
[root@controller ~]# sed -i ‘s/^#//g ’ /etc/openstack/openstack-repo #下载完集体修改
[root@controller ~]# sed -i ‘s/^#/#/g ’ /etc/openstack/openrc.sh
[root@controller ~]#sed -i ‘s/PASS=/PASS=000000/g ’ /etc/openstack/openrc.sh
[root@controller ~]# scp /etc/openstack/openrc.sh compute:/etc/openstack/openrc.sh
[root@controller ~]# vi /etc/openstack/openrc.sh #进去里面具体修改配置文件
HOST_IP=192.168.100.10
HOST_PASS=000000 #controller节点root用户密码
HOST_NAME=controller
HOST_IP_NODE=192.168.100.20
HOST_PASS_NODE=000000 #compute节点root用户密码
HOST_NAME_NODE=compute
network_segment_IP=192.168.100.0/24
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
PLACEMENT_DBPASS=000000
PLACEMENT_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ens32 #云主机第二张网卡名称,具体看你虚拟机配置,没有进行配置的第二张网卡
Physical_NAME=provider
minvlan=1
maxvlan=1000
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=sdb1 #compute节点第一个分区名称
SWIFT_PASS=000000
OBJECT_DISK=sdb2 #compute节点第二个分区名称
STORAGE_LOCAL_NET_IP=192.168.100.20
1.1.3 配置无密钥ssh
[root@controller ~]# ssh-keygen #一直回车就行
[root@controller ~]#ssh-copy-id computer
[root@compute ~]# ssh-keygen
[root@compute ~]# ssh- copy-id controller
(2)部署OpenStack云平台基础环境
在controller节点和compute节点都执行脚本iaas-pre-host.sh部署OpenStack云平台基础环境。完成后使用reboot命令重启虚拟机以生效配置。
[root@controller ~]# iaas-pre-host.sh
root@controller ~]# reboot
[root@compute ~]# iaas-pre-host.sh
[root@compute ~]# reboot
(3)部署Mariadb数据库及Rabbit消息队列服务
在controller节点执行脚本部署Mariadb数据库及Rabbit消息队列服务。
[root@controller ~]# iaas-install-mysql.sh
[root@controller ~]# vi /etc/my.cnf
在[mysql]字段下添加以下内容
- 设置数据库支持大小写:lower_case_table_names = 1
- 设置数据库缓存innodb表的索引,数据,插入数据的缓存为4G:innodb_buffer_pool_size = 4G
- 设置数据库的log buffer为64MB:innodb_log_buffer_size = 64MB
- 设置数据库的redo log大小为256MB:innodb_log_file_size = 256MB
- 设置数据库的redo log文件组为2:innodb_log_files_in_group = 2
- 修改Memcached的相关配置,将内存大小设置为512MB,调整最大连接参数为2048:
[root@controller ~]# vi /etc/sysconfig/Memcached
MAXCONN=‘2048’
CACHESIZE = ‘512’
7.调整Memcached 的数据库摘要算法(hash)为md5
hash_algorithm= md5 (增加)

#重启服务以生效
[root@controller ~]#systemctl restart mysqld
[root@controller ~]#systemctl restart memcached.service
(4)部署Keystone服务
在controller节点执行脚本部署Keystone服务。
[root@controller ~]# iaas-install-keystone.sh
然后创建OpenStack域210Demo,其中包含Engineering与Production项目,在域210Demo中创建组Devops,其中需包含以下用户:
1.Robert用户是Engineering项目的用户(member)与管理员(admin),email地址为:。
2.George用户是Engineering项目的用户(member),email地址为:。
3.William用户是Production项目的用户(member)与管理员(admin),email地址为:。
4.John用户是Production项目的用户(member),email地址为:
[root@controller /]# source /etc/keystone/admin-openrc.sh #导入环境变量
[root@controller /]# openstack domain create 210Demo #创建域210Demo
[root@controller /]# openstack project create Engineering –domain 210Demo#在210Demo中创键Engineering的项目
[root@controller /]# openstack project create Production –domain 210Demo#在210Demo中创键Production的项目
[root@controller /]# openstack group create Devops –domain 210Demo#在210Demo中创建devops用户组
[root@controller /]# openstack user create Robert –domain 210Demo –project Engineering –email #在210Demo域中,将用户Robert分配到Engineering项目,并设置其电子邮件地址。
[root@controller /]# openstack user create George –domain 210Demo –project Engineering –email #在210Demo域中,将用户George分配到Engineering项目,并设置其电子邮件地址。
[root@controller /]# openstack user create William –domain 210Demo –project Production –email #在210Demo域中,将用户William分配到Production项目,并设置其电子邮件地址。
[root@controller /]# openstack user create John –domain 210Demo –project Production –email #在210Demo域中,将用户John分配到Production项目,并设置其电子邮件地址。
[root@controller /]# openstack role add member –user Robert –project Engineering#将用户Robert分配到Engineering项目的member角色。
[root@controller /]# openstack role add admin –user Robert –project Engineering#将用户Robert分配到Engineering项目的admin角色。以下类同
[root@controller /]# openstack role add member –user George –project Engineering
[root@controller /]# openstack role add member –user William –project Production
[root@controller /]# openstack role add admin –user William –project Production
[root@controller /]# openstack role add member –user John –project Production
(5)部署Glance服务
在controller节点执行脚本部署Glance服务。
[root@controller ~]# iaas-install-glance.sh
然后使用提供的coreos_production_pxe.vmlinuz镜像(该镜像为Ironic Deploy镜像,是一个AWS内核格式的镜像,在OpenStack Ironic裸金属服务时需要用到)上传到OpenStack平台中,命名为deploy-vmlinuz。
[root@controller /]# glance image-create –name deploy-vmlinuz –disk-format qcow2 –container-format bare –file /root/images/coreos_production_pxe.vmlinuz #实际比赛专用镜像路径,自己做题可以用前面下载的chinaskill,具体看下面
[root@controller /]# glance image-create –name deploy-vmlinuz –disk-format qcow2 –container-format bare < /opt/image/images/chinaskills_cloud_iaas_v2.0.1.iso
[root@controller /]# openstack image list #查看所有可用镜像
(6)部署Nova服务
在controller节点执行脚本部署Nova组件的控制服务。
[root@controller ~]# iaas-install-placement.sh
[root@controller ~]# iaas-install-nova-controller.sh
执行完上面的脚本后,在compute节点执行脚本部署Nova组件的计算服务,这样就将compute节点的CPU、内存及磁盘资源添加到OpenStack云平台的资源池中了。
[root@compute ~]# iaas-install-nova-compute.sh
在OpenStack中,修改相关配置文件,修改调度器规则采用缓存调度器,缓存主机信息,提升调度时间。
[root@controller /]# vim /etc/nova/nova.conf
[root@controller /]# grep -n drive /etc/nova/nova.conf #查找配置文件中所有drive字段
[root@controller /]# sed -i ‘s/driver=caching/driver=simple/g‘ /etc/nova/nova.conf
driver=simple_scheduler # 配置文件中有这个字段,查找后修改为simple即可
[root@controller /]# systemctl restart openstack-nova*
修改nova相关配置文件,解因等待时间长而导致虚拟机启动超时从而获取不到IP地址而报
[root@controller /]#grep -n vif etc/nova/nova.conf
[root@controller /]#vif_plugging_is_fatal=true > false
(7)部署Neutron服务
在controller节点执行脚本部署Neutron组件的控制服务。
[root@controller ~]# iaas-install-neutron-controller.sh
在compute节点执行脚本部署Neutron组件的计算服务。
[root@compute ~]# iaas-install-neutron-compute.sh
(8)部署Dashboard服务
在controller节点执行脚本部署Dashboard组件服务。
[root@controller ~]# iaas-install-dashboard.sh
1.使得登录Dashboard平台的时候不需要输入域名;
2.将Dashboard中的Django数据修改为存储在文件中。
[root@controller /]#grep -n SESSION /etc/openstack-dashboard/local_settings
SESSION_ENGINE = ‘django.contrib.sessions.backends.file’ # 最后改为file
[root@controller /]#grep -n OPENSTACK /etc/openstack-dashboard/local_settings
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False # Ture改为False
#查找到这两条之后,经过前面修改openstack和nova配置文件的锻炼,相比聪慧如你也会了怎么修改了(用sed命令,可以用上面照仿格式来 #注意修改file时应该把backends也包括到哦)
[root@controller ~]# systemctl restart httpd memcached.service
(9)部署Cinder服务
在controller节点执行脚本部署Cinder组件的控制服务。
[root@controller ~]# iaas-install-cinder-controller.sh
controller节点脚本执行完成后,在compute节点执行脚本部署Cinder组件的计算服务。
[root@compute ~]# iaas-install-cinder-compute.sh
请在计算节点,对块存储进行扩容操作,即在计算节点再分出一个 5G 的分区,加入到 cinder 块存储的后端存储中去。#前面也也有分盘的具体操作
[root@compute ~]# partprobe
[root@compute ~]# pvcreate /dev/vdb4
[root@compute ~]# vgs
[root@compute ~]# vgextend cinder-volumes /dev/vdb4
[root@compute ~]# vgs
(10)部署Swift服务
在controller节点执行脚本部署Swift组件的控制服务。
[root@controller ~]# iaas-install-swift-controller.sh
controller节点脚本执行完成后,在compute节点执行脚本部署Swift组件的计算服务。
[root@compute ~]# iaas-install-swift-compute.sh
使用命令创建一个名叫 examcontainer 的容器,将 cirros-0.3.4-x86_64-disk.img 镜像上传到 examcontainer 容器中,并设置分段存放,每一段大小为 10M。
[root@controller ~]# swift post examcontainer
[root@controller ~]# cd /opt/iaas/images
[root@controller images]# swift upload -s 10M examcontainer 镜像 #镜像用自己导入下载的chinaskill
#如果这里出错了,多半是环境导入掉了,继续执行一遍keystone服务命令
root@controller /]# source /etc/keystone/admin-openrc.sh
(11)配置主机禁 ping
修改 controller 节点的相关配置文件,配置 controller 节点禁止其他节点可以 ping它
[root@controller ~]# vi /etc/sysctl.conf
将net.ipv4.icmp_echo_ignore_all = 1
[root@controller ~]# sysctl – p #这样一来计算节点就ping不了控制节点了。
这篇文章是给对于云计算有一点基础和可以熟练配置网络的配置的同学的,对于刚入门或者对云计算感兴趣的同学可以看我下一篇文章虚拟机的配置。会持续更新

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/180923.html