云计算职业技能入门教程
本教程基于centos7.5系统和openstack(Q)版部署,全国职业技能大赛云计算赛项提供的镜像包支持。
设备名称 | 主机名 | 接口 | IP地址 |
---|---|---|---|
云服务器1 | controller | eth0 | 172.129.x.0/24 |
eth1 | 自定义 | ||
云服务器2 | compute | eth0 | 172.129.x.0/24 |
eth1 | 自定义 | ||
PC-1 | 本地连接 | 172.24.16.0/24 |
注(拓扑图解析):
拓扑图中使用个人PC机,通过交换机连接竞赛系统提供的私有云竞赛平台(该私有云竞赛平台为本教程搭建好的open stack私有云平台)。
在提供的私有云平台中,创建两台云主机,作为controller和compute节点,其中云主机的第一张网卡的IP为表格中的地址,X为工位号(比赛时自己的号码,训练时改IP可自行定义)。
实验准备
-
两台空配的centos7.5系统的云主机(主机名自定义)
-
每台云主机的系统配额不得低于4CPU,8G内存,50G硬盘
-
CentOS-7-x86_64-DVD-1804.iso镜像文件(centos7.5系统镜像)
-
chinaskills_cloud_iaas.iso镜像文件(open stack软件镜像包)
注:
如果条件不允许,可使用VMware工具,创建两台centos系统的虚拟机,需要注意的是,第一张网卡模式自定义,只要你的PC宿主机能ping通就行,第二张网卡模式必须为NAT模式,可在“虚拟网络编辑器”-选择需要设置的网卡-点击“NAT设置”-设置“网关IP(G)”,设置该网卡所在网段的网关IP。
服务部署
1.编辑hosts文件和主机名
-
设置主机名
基础命令:hostnamectl set-hostname <主机名> hostnamectl set-hostname compute hostnamectl set-hostname controller
-
编辑hosts文件
基础命令:echo <ip> <主机名> <文件路径> echo 172.129.10.10 controller >> /etc/hosts echo 172.129.10.10 compute >> /etc/hosts #将controller节点的hosts文件复制到compute节点: 基础命令:scp <原文件路径/原文件名> <目的主机名称或IP>:<目的文件路径/目的文件名>,其中确保目标主机可ping通 scp /etc/hosts 172.129.10.20:/etc/hosts (按提示输入:yes和目标主机root用户密码)
2.制作yum源和软件仓库
注:常用yum源
-
本地yum源
baseurl=file:///opt/centos/,其中,baseurl键值对后面跟以file协议的路径为本地yum源
-
ftp源
baseurl=ftp://192.168.10.10/opt/centos/,baseurl键值对后面跟以ftp协议的路径为ftp的yum源,注意,使用ftp源时,需安装ftp服务器,在客户机上使用ftp源
-
http源
baseurl=http://192.168.10.10/opt/centos/,baseurl键值对后面跟以http协议的路径为http的yum源,注意,使用http源时,需安装http服务器,在客户机上使用http源
上传iaas和centos的iso镜像文件到controller,在opt目录下创建相应文件夹,并将镜像临时挂载到相应文件夹下
[root@controller ~]# mkdir /opt/{centos,iaas} {}表示同时创建 [root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /opt/centos/ [root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /opt/iaas/ 基础命令: mount -o loop <相对(或绝对)文件路径/iso文件名称> <挂载路径> 挂载查看命令:[root@controller ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 8.8G 41G 18% / devtmpfs 971M 0 971M 0% /dev tmpfs 983M 0 983M 0% /dev/shm tmpfs 983M 9.6M 974M 1% /run tmpfs 983M 0 983M 0% /sys/fs/cgroup /dev/sda1 197M 120M 78M 61% /boot tmpfs 197M 0 197M 0% /run/user/0 /dev/loop0 4.2G 4.2G 0 100% /opt/centos 这里 /dev/loop1 3.6G 3.6G 0 100% /opt/iaas 这里表示挂载成功
备份原有yum源文件,并制作yum源
[root@controller ~]# mv /etc/yum.repos.d/* /home/ #将/etc/yum.repos.d/下的所有文件移动到/home下 [root@controller ~]# vi /etc/yum.repos.d/local.repo #编辑local.repo文件,其中local可自定义 /etc/yum.repos.d/local.repo 内容如下: [centos] #一组yum源标签 name=centos #该yum源的名称 gpgcheck=0 #是否启用gpg检查,0为不启用,1为启用,后面接gpgcheck码 baseurl=file:///opt/centos/ #软件仓库路径,可为file,ftp,http等 [openstack] name=openstack gpgcheck=0 baseurl=file:///opt/iaas/iaas-repo 检查yum源是否可用 [root@controller ~]# yum repolist
如图表示yum源可用:
注:compute节点yum仓库使用ftp源
以controller节点作为ftp服务器,compute节点作为客户机
controller:
安装ftp服务
[root@controller ~]# yum install vsftpd -y 安装vsftp服务
将opt下的所有文件夹共享出去,允许任何人以root用户访问
[root@controller ~]# echo anon_root=/opt >> /etc/vsftpd/vsftpd.conf
重启vsftpd即可生效配置
systemctl restart vsftpd
注意点:如果你要共享的目录下的文件夹被挂载了其他文件,则ftp无法访问,解决办法,将已经挂载的镜像文件取消挂载,并重新挂载到其他文件夹下,并将该文件夹下的所有文件拷贝到需要共享的文件夹下即可;使用ftp源的时候确保ftp服务器防火墙已关闭
compute:
备份原有的yum文件,
[root@compute ~]# mv /etc/yum.repos.d/* /home/
编辑ftp源的yum文件
[root@compute ~]# vi /etc/yum.repos.d/ftp.repo
内容如下:
[centos]
name=centos
gpgcheck=0
baseurl=ftp://172.129.10.10/centos/
[openstack]
name=openstack
gpgcheck=0
baseurl=ftp://172.129.10.10/iaas/iaas-repo
repolist一下,查看yum源是否可用
3.安装脚本文件和设置变量文件
1.安装脚本
controller和compute都需要安装
[root@controller ~]# yum install iaas-xiandian -y
2.编辑变量文件
两个节点都需要编辑变量文件
[root@controller ~]# vi /etc/xiandian/openrc.sh
变量内容如下:
HOST_IP=172.168.10.10 #controller节点的IP
HOST_PASS=000000 #controller节点的root用户的密码
HOST_NAME=controller #controller节点的主机名
HOST_IP_NODE=172.129.10.20 #compute节点的IP
HOST_PASS_NODE=000000 #compute节点的root用户密码
HOST_NAME_NODE=compute #compute节点的主机名
etwork_segment_IP=172.129.10.0/24 #时间同步服务的服务主机所在网段
RABBIT_USER=openstack #rabbitmq服务的管理员用户
RABBIT_PASS=000000 #rabbitmq服务的管理员密码
DB_PASS=000000 #数据库的密码
DOMAIN_NAME=demo #open stack的domain域的名称
ADMIN_PASS=000000 #open stack的管理员密码
DEMO_PASS=000000 #open stack的demo域名称
KEYSTONE_DBPASS=000000 #keystone组件的数据库密码
GLANCE_DBPASS=000000 #glance组件的数据库密码
GLANCE_PASS=000000 #glance组件的密码
NOVA_DBPASS=000000 #nova组件的数据库密码
NOVA_PASS=000000 #nova组件的密码
NEUTRON_DBPASS=000000 #neutron组件的数据库密码
NEUTRON_PASS=000000 #neutron组件的密码
METADATA_SECRET=000000 #资源数据的密码
INTERFACE_IP=172.129.10.10 #controller与compute通信的隧道接口IP(controller节点为第一张网卡IP,compute节点为第一张网卡IP)
INTERFACE_NAME=eth1 #对外接口名称,及第二张网卡名称
Physical_NAME=provider #物理网卡名称
minvlan=101 #vxlan最小标签
maxvlan=200 #vxlan最大标签
注意:compute节点的环境变量与controller节点的基本相同,除了“INTERFACE_IP=172.129.10.10”的IP为各自节点的第一张网卡IP
两个节点都编辑好变量后,将每个变量前的“#”删掉
快捷命令:[root@controller ~]# sed -i "s/^#//g" /etc/xiandian/openrc.sh
命令解析:将/etc/xiandian/openrc.sh文件的每一行的第一个“#”替换为空字符
4.初始化系统环境
初始化系统变量,双节点都执行脚本:
[root@controller ~]# iaas-pre-host.sh
5.controller节点部署服务
controller节点执行一下脚本(顺序不可变):
[root@controller ~]# iaas-install-mysql.sh
[root@controller ~]# iaas-install-keystone.sh
[root@controller ~]# iaas-install-glance.sh
[root@controller ~]# iaas-install-nova-controller.sh
[root@controller ~]# iaas-install-neutron-controller.sh
[root@controller ~]# iaas-install-dashboard.sh
6.compute节点部署服务
compute节点执行一下脚本(必须在controller节点脚本执行完后执行):
[root@compute ~]# iaas-install-nova-compute.sh
[root@compute ~]# iaas-install-neutron-compute.sh
7.将controller节点资源加入平台中
修改openrc.sh环境变量中的值,然后执行相关脚本
HOST_IP_NODE=172.129.10.10 #将compute节点的IP改为controller的
HOST_PASS_NODE=000000 #将compute节点的root用户密码改为controller的
HOST_NAME_NODE=controller #将compute节点的主机名改为controller的
执行脚本:
[root@controller ~]# iaas-install-nova-compute.sh
8.实验查看
打开浏览器,输入controller节点的IP/dashboard即可访问,域名:demo,用户名:admin,密码:000000
实验总结
- 熟练掌握linux的基本命令用法,如mkdir,mv,cp,scp,sed。
- yum原的三种写法,baseurl后面跟file,ftp,http协议。
- file源的写法注意:baseurl=file:///XXXX此处的三条斜杠前两个表示协议,后一个表示根目录。
- ftp源写法注意:baseurl=ftp://172.129.10.10/centos/此处可为IP也可为主机名,若为主机名时,需在hosts文件下写入主机名解析,被共享的目录可不用写,直接写共享目录下的目录即可。
- ftp使用注意,①需选择一台主机作为ftp服务器,并且关闭该服务器的防火墙。②如果ftp正常工作,但无法访问共享目录,查看该目录下的文件夹是否被挂载文件了。
- http使用注意,与ftp基本相同,写法也基本一致,需部署http服务器,直接安装httpd即可,在/var/www/html/下创建相关文件夹,继续操作即可。
- 执行脚本时,必须在controller节点执行完后才可执行compute节点的脚本,且以上脚本执行顺序不可变。
- 如果使用VMware部署,执行脚本后,遇到数据库莫名启动失败,主机内存低了,关机给controller加点内存。
- 使用vmware部署,两个节点需关闭防火墙。
创作不易,感谢阅读,关注,点赞加打赏,后续继续更新 q(≧▽≦q)!!