云计算竞赛-openstack平台部署及部分运维

打印 上一主题 下一主题

主题 977|帖子 977|积分 2946

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
案例准备

1. 规划节点

IP主机名节点
192.168.100.10controller控制节点
192.168.100.20compute计算节点
案例实行

#计算节点多设置一个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-41943039, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +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 (18876416-41943039, default 18876416):

Using default value 18876416

Last sector, +sectors or +size{K,M,G} (18876416-41943039, default 41943039): +9G

Partition 2 of type Linux and of size 9 GiB is set


Command (m for help): p


Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 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    18876415     9437184   83  Linux

/dev/sdb2        18876416    37750783     9437184   83  Linux

/dev/sdb23       18876416    37750783     9437184   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地址为:Robert@lab.example.com。   

2.George用户是Engineering项目的用户(member),email地址为:George@lab.example.com。

3.William用户是Production项目的用户(member)与管理员(admin),email地址为:William@lab.example.com。

4.John用户是Production项目的用户(member),email地址为:John@lab.example.com

[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 Robert@lab.example.com #在210Demo域中,将用户Robert分配到Engineering项目,并设置其电子邮件地址。

[root@controller /]# openstack user create George --domain 210Demo --project Engineering --email Robert@lab.example.com #在210Demo域中,将用户George分配到Engineering项目,并设置其电子邮件地址。

[root@controller /]# openstack user create William --domain 210Demo --project Production --email William@lab.example.com #在210Demo域中,将用户William分配到Production项目,并设置其电子邮件地址。

[root@controller /]# openstack user create John --domain 210Demo --project Production --email John@lab.example.com #在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不了控制节点了。           
这篇文章是给对于云计算有一点基础和可以熟练设置网络的设置的同学的,对于刚入门或者对云计算感爱好的同学可以看我下一篇文章捏造机的设置。会连续更新



          





     

        


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连全瓷种植牙齿制作中心

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表