IAAS

IaaS平台搭建

  1. 操作系统环境配置

1.1 修改网卡

1. 修改网卡

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
DEVICE=eth0 //配置网卡的设备名称
IPADDR=172.24.2.10 //配置实际网络地址
NETMASK=255.255.255.0 //配置网络子网掩码
GATEWAY=172.24.2.1 //配置网络网关
BOOTPROTO=static //配置静态网络地址
ONBOOT=yes //开机启动网络
USERCTL=no //不允许非root用户修改此设备

1.2 分区,swift和cinder

2. 分区,swift和cinder

fdisk -l # 判断未分区空间的大概起始位置

[root@compute ~]# parted /dev/md126
(parted) mkpart cinder 702G 803G # 创建cinder分区,从702G到803G
[root@compute ~]# mkfs.xfs /dev/md126p5

[root@compute ~]# parted /dev/md126 # 将cinde分区设置为lvm
(parted)set
Flag to Invert? LVM
New state? On/off on

[root@compute ~]# parted /dev/md126
(parted) mkpart swift 803G 904G # 创建swift分区,从803G到904G

[root@compute ~]# mkfs.xfs /dev/md126p6

最后用fdisk –l 查看修改结果。

1.3 设置主机名

3.设置控制节点主机名 controller;计算节点主机名:compute。

hostnamectl set-hostname controller
hostnamectl set-hostname compute
hostname # 查看主机名
1.4 关闭防火墙

4.各个节点关闭防火墙,设置开机不启动

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld
setenforce 0
1.5 selinux状态为permissive

5.设置各个节点selinux状态为permissive

vi /etc/selinux/config
SELINUX=permissive
getenforce # 查看selinux防火墙的状态
sestatus
[root@controller ~]#systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@controller ~]# getenforce
Permissive

1.6 上传镜像
在控制节点上通过 SecureFX 上传两个镜像文件CentOS-7-x86_64-DVD-1511.iso, XianDian-IaaS-v2.2.iso到opt 下

使用命令创建/opt下两个目录,并将以上镜像文件分别挂载到上述两个目录下

并 使用命令查看挂载的情况(需显示挂载的文件系统类型和具体的大小)。

mkdir /opt/centos
mkdir /opt/iaas
mount -o loop CentOS-7-x86_64-DVD-1511.iso /opt/centos
mount -o loop XianDian-IaaS-v2.2.iso /opt/iaas
df-Th # 查看挂载情况
umount /mnt # 取消挂载
1.7 yum源配置
配置控制节点本地 yum 源文件 local.repo ,搭建 ftp 服务器指向存放 yum 源路径;

配置计算节点 yum 源文件 ftp.repo 使用之前配置的控制节点 ftp 作 为 yum 源,其中的两个节点的地址使用主机名表示。

使用 cat 命令查看上述 控制/计算节点的 yum 源全路径配置文件。

mv /etc/yum.repos.d/* /etc/yum
#[controller]

在/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

cat /etc/yum.repos.d/local.repo

[compute]

在/etc/yum.repos.d创建ftp.repo源文件

[centos]
name=centos //设置此yum的资源描述名称
baseurl=ftp://192.168.100.10/centos //设置yum源的访问地址及路径
gpgcheck=0 //禁用gpg检查gpgkey
enabled=1 //启动此yum源
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas/iaas-repo
gpgcheck=0
enabled=1

cat /etc/yum.repos.d/ftp.repo


如果遇到进程卡死的状态
[root@compute yum.repos.d]# rm -r /var/run/yum.pid
rm: remove regular file ‘/var/run/yum.pid’? y
1.8 搭建FTP服务器开机自启
[root@controller ~]# yum install vsftpd –y
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf

添加anon_root=/opt/

wq 保存退出

[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd
1.9 环境变量配置
[root@controller ~]# yum install iaas-xiandian –y
[root@compute ~]# yum install iaas-xiandian –y
[root@controller ~]# vi /etc/xiandian/openrc.sh

跟据表中给定参数设置,注意,外网网卡名称之前用ip a 验证过,根据实际写。

Cinder和swift分区名不能混了,lvm那个分区是cinder.

Mysql_Admin_Passwd=000000 //数据库用户密码
Admin_Passwd=000000 //管理员密码
Demo_User_Passwd=000000 //演示用户密码
Demo_DB_Passwd=000000 //演示数据库密码
Contoller_Hostname=controller //控制节点主机名
Controller_Mgmt_IPAddress=172.24.2.10 //控制节点管理网段密码
Gateway_Mgmt=172.24.2.1 //管理网段网关
Controller_External_IPAddress=172.24.3.10 //外部地址
Network_Start_Vlan_ID=43 //网络节点开始Vlan ID
Network_End_Vlan_ID=46 //网络节点结束Vlan ID
Compute_Hostname=compute //实例节点主机名
Compute_Mgmt_IPAddress=172.24.3.20 //实例节点管理地址
Compute_External_IPAddress=172.24.3.20 //实例节点外部地址
Stroage_Cinder_Disk=sda3 //Cinder存储磁盘分区名称
Stroage_Swift_Disk=sda2 //Swift存储磁盘分区名称

scp /etc/xiandian/openrc.sh 192.168.100.20:///etc/xiandian/openrc.sh

将文件传给compute节点

[root@controller opt]# grep -vE “$|#” /etc/xiandian/openrc.sh
2. 基础配置操作
[root@controller ~]# iaas-pre-host.sh
[root@controller ~]# reboot
[root@compute ~]# iaas-pre-host.sh
[root@compute ~]# reboot

  1. MySQL搭建
    [root@controller ~]#iaas-install-mysql.sh
    [root@controller ~]# time iaas-install-mysql.sh
    [root@compute ~]# yum -y install MySQL-python

#使用脚本安装数据库服务,以root用户身份登录数据库,查询mysql数据库中所有表的信息
mysql -uroot -p000000
show databases
use mysql
show tables;
#查到运行时间
#查到默认的存储引擎 InnoDB
#查到支持的存储引擎
MariaDB [(none)]> show variables like “storage_engine”;
±---------------±-------+
| Variable_name | Value |
±---------------±-------+
| storage_engine | InnoDB |
±---------------±-------+
1 row in set (0.00 sec)
MariaDB [(none)]> show variables like “have%”;
±---------------------±---------+
| Variable_name | Value |
±---------------------±---------+
| have_compress | YES |
| have_crypt | YES |
| have_dynamic_loading | YES |
| have_geometry | YES |
| have_openssl | YES |
| have_profiling | YES |
| have_query_cache | YES |
| have_rtree_keys | YES |
| have_ssl | DISABLED |
| have_symlink | DISABLED |
±---------------------±---------+
10 rows in set (0.00 sec)

  1. keystone管理认证用户
    [root@controller ~]#iaas-install-keystone.sh

创建用户testuser,密码为xiandian,将testuser用户分配给admin项目,赋予用户admin的权限。

source /etc/keystone/admin-openrc.sh

openstack user create --domain demo --password xiandian testuser #创建用户

openstack role add --project admin --user testuser admin # 分配给admin项目,赋予用户admin权限

列出数据库 keystone 中的所有表

将其中 keystone 的数据库导出为 keystone.sql 文件,并使用 sed 命令显示文件 keystone.sql 中前 20 行内容。

[root@controller ~]# mysqldump -uroot -p000000 keystone>keystone.sql

sed -n ‘1,20p’ keystone.sql
5. glance 搭建
[root@controller ~]# iaas-install-glance.sh

使用CentOS_6.5_x86_64_XD.qcow2文件创建名为examimage的镜像;使用openstack命令查看镜像列表;设置该镜像的标签为lastone,查询镜像详细信息

[root@controller ~]glance image-create --name “examimage” --disk-format qcow2 --container-format bare --progress </opt/iaas/images/CentOS_6.5_x86_64_XD.qcow2
[root@controller ~]# openstack image set examimage --tag lastone 打上标签

openstack image list # 查看镜像列表

openstack image show examimage # 查看镜像详细标签
6. nova搭建
[root@controller ~]# iaas-install-nova-controller.sh
[root@compute ~]# iaas-install-nova-compute.sh
#使用nova相关命令查询nova服务状态列表。
nova service-list

使用 nova 相关命令,查询 nova 所有的监控列表,并查看监控主机的详细 信息

[root@controller ~]#nova hypervisor-list
[root@controller ~]#nova hypervisor-show compute
[root@controller ~]# nova usage-list
[root@controller ~]# nova quota-show
[root@controller ~]# nova host-list
[root@controller ~]# nova host-describe compute

  1. neutron搭建
    [root@controller ~]#iaas-install-neutron-controller.sh
    [root@compute ~]#iaas-install-neutron-compute.sh

source /etc/keystone/admin-openrc.sh

[root@controller ~]#iaas-install-neutron-controller-gre.sh
[root@compute ~]#iaas-install-neutron-compute -gre.sh

[root@controller ~]# systemctl enable neutron-lbaas-agent

使用neutron相关命令查询子网的列表信息,并查看int-subnet1的详细信息。

neutron subnet-list
±---------------------------------±------------±-----------------±----------------------------------+
| id | name | cidr | allocation_pools |
±---------------------------------±------------±-----------------±----------------------------------+
| dbec58ae- | int-subnet2 | 10.0.1.0/24 | {“start”: “10.0.1.2”, “end”: |
| 0e36-4de8-8b40-15c7b28df550 | | | “10.0.1.254”} |
| ba1f3480-7212-43a6-9c29-dd67415e | int-subnet1 | 10.0.0.0/24 | {“start”: “10.0.0.2”, “end”: |
| 4f1e | | | “10.0.0.254”} |
| b2934fee-b3ae- | ext-subnet | 192.168.200.0/24 | {“start”: “192.168.200.2”, “end”: |
| 4a5e-8964-818e76361570 | | | “192.168.200.254”} |
±---------------------------------±------------±-----------------±----------------------------------+
neutron subnet-show int-subnet1
±------------------±-------------------------------------------+
| Field | Value |
±------------------±-------------------------------------------+
| allocation_pools | {“start”: “10.0.0.2”, “end”: “10.0.0.254”} |
| cidr | 10.0.0.0/24 |
| created_at | 2020-10-16T18:35:22 |
| description | |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 10.0.0.1 |
| host_routes | |
| id | ba1f3480-7212-43a6-9c29-dd67415e4f1e |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | int-subnet1 |
| network_id | 3e31a959-8719-480f-9bf0-a95f07c8eebc |
| subnetpool_id | |
| tenant_id | 550b28f573584fafb9d7a1601caa7ee1 |
| updated_at | 2020-10-16T18:35:22 |
±------------------±-------------------------------------------+

用 neutron 命令 查询网络服务的列表信息

[root@controller ~]# neutron agent-list -c binary -c agent_type -c alive
±--------------------------±-------------------±------+
| binary | agent_type | alive |
±--------------------------±-------------------±------+
| neutron-l3-agent | L3 agent | 😃 |
| neutron-metadata-agent | Metadata agent | 😃 |
| neutron-dhcp-agent | DHCP agent | 😃 |
| neutron-metadata-agent | Metadata agent | 😃 |
| neutron-openvswitch-agent | Open vSwitch agent | 😃 |
| neutron-lbaas-agent | Loadbalancer agent | 😃 |
| neutron-openvswitch-agent | Open vSwitch agent | 😃 |
±--------------------------±-------------------±------+

  1. 安装Dashboard服务
    [root@controller ~]#iaas-install-dashboard.sh

#打开浏览器访问Dashboard
http://controller(或本机内网ip)/dashboard

使用curl命令查询http://192.168.100.10/dashboard。

curl -i http://192.168.100.10/dashboard
9. 网络创建

创建云主机外部网络 ext-net,子网为 ext-s。+

ubnet,云主机浮动 IP 可用网段为 192.168.200.100 ~ 192.168.200.200,网关为192.168.200.1。

创建云主机内部网络int-net1, 子网为 int-subnet1,云主机子网 IP 可用网段为 10.0.0.100 ~ 10.0.0.200,网关为 10.0.0.1;

创建云主机内部网络 int-net2,子网为 int-subnet2,云主机子网 IP 可用网段为 10.0.1.100 ~ 10.0.1.200,网关为 10.0.1.1。

添加名为 ext-router 的路由器,添加网关在 ext-net 网络, 添加内部端口到 int-net1 网络,完成内部网络 int-net1 和外部网络的连通。

(1)管理员 → 网络 → 创建网络ext-net → 创建子网ext-subnet(192.168.200.100 ~ 192.168.200.200,网关为192.168.200.1)
(2)管理员 → 网络 → 创建网络int-net1 → 创建子网int-subnet1(10.0.0.100 ~ 10.0.0.200,网关为 10.0.0.1)
(3)管理员 → 网络 → 创建网络int-net2 → 创建子网int-subnet2(10.0.1.100 ~ 10.0.1.200,网关为 10.0.1.1)
(4)项目 → 网络 → 路由 → 新建路由 → 添加网关ext-net,内网接口int-net1
(5)项目 → 计算 → 访问安全 → 管理规则 → 添加规则(ICMP、TCP、UDP)

使用neutron相关命令查询子网的列表信息,并查看int-subnet1的详细信息。

如果显示An auth plugin is required to fetch a token:
source /etc/keystone/admin-openrc.sh
neutron subnet-list
neutron subnet-show int-subnet1

  1. 安装cinder块存储服务
    [root@controller ~]# iaas-install-cinder-controller.sh
    [root@compute ~]#iaas-install-cinder-compute.sh
  2. 安装Swift对象存储服务
    [root@controller~]#source /etc/keystone/admin-openrc.sh
    [root@controller ~]#iaas-install-swift-controller.sh
    [root@compute ~]#iaas-install-swift-compute.sh
  3. trove 安装
    [root@controller ~]# iaas-install-trove.sh
    [root@controller ~]# trove list
  4. trove 管理

上传软件包中的镜像文件 MySQL_5.6_XD.qcow2 到云平台,并创建trove 数据库服务存储类型 mysql

[root@controller ~]# glance image-create --name “mysql-5.6” --disk-format qcow2 --container-format bare --progress </opt/iaas/images/MySQL_5.6_XD.qcow2

将显示的内容复制到答题框

注意:如果有错误,可能是镜像存放目录的问题

[root@controller ~]# trove-manage datastore_update mysql ‘’
将显示的内容复制到答题框

trove-manage datastore_update mysql ‘’
14.ALarm安装
[root@controller ~]# iaas-install-alarm.SH
15.添加控制节点资源到计算节点
[root@controller ~]# vi /etc/xiandian/openrc.sh
将Compute 节点的 IP 和主机名改为controller 节点和 IP
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10
##Controller Server hostname. example:controller
HOST_NAME=controller
##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.10
##Compute Node hostname. example:compute
HOST_NAME_NODE=controller
在controller 节点执行 nova-compute 脚本
[root@controller ~]# iaas-install-nova-compute.sh

IaaS平台运维
IaaS平台运维准备工作:
按以下配置在云平台中创建云主机:
(1)名称:iaas_all;
(2)镜像文件:iaas-all;
(3)云主机类型:m1.large;
(4)网络1:int-net1,绑定浮动IP;
(5)网络2:int-net2。
[root@controller ~]glance image-create --name “iaas-all” --disk-format qcow2 --container-format bare --progress </opt/iaas/images/XianDian-IaaS-All.qcow2
[=============================>] 100%
1.MongoDB管理
1.MongoDB管理

登录“iaas_all”云主机,e登录mongodb数据库。

mongo –host 127.0.0.1:27017

新建一个名为xiandian的数据库;

use xiandian

使用for循环,向数据库xiandian下的集合student中插入100条数据:"_id" : i,“name” : “xiaoming”, “age” : “21”,其中循环变量为“i”;

for(vari=1;i<=100;i++)db.student.insert({"_id":i,“name”:“xiaoming”,“age”:“21”});

使用命令统计集合student中的数据条数;

db.student.find().count()

使用命令查询集合stduent中_id小于等于33、忽略前15个数据、并按照_id降序排列的结果。

db.student.find({"_id":{$lte:33}}).skip(15).sort({"_id":-1})
2.rabbitmq管理
2.rabbitmq管理

登录“iaas_all”云主机。

使用rabbitmqctl命令创建用户xiandian-admin,密码为admin;\

rbbitmqctl add_user xiandian-admin admin

赋予xiandian-admin用户administrator的角色并查询;

rabbitmqctl set_user_tags xiandian-admin administrator
rabbitmqctl list_users

授予用户xiandian-admin对本机所有资源可写可读可执行的权限,查询xiandian-admin用户的授权信息。

rabbitmqctl set_permissions -p / xiandian-admin ".*" ".*" ".*"
rabbitmqctl list_user_permissions xiandian-admin

3.cinder管理
3.cinder管理

登录http://192.168.100.10/dashboard,创建云主机名为“vm_extend”,镜像使用“centos6.5”,flavor使用“m1.medium”;

登录“vm_extend”云主机,从该主机的硬盘“/dev/vda”中分出一个10G的分区,使用这个分区将云主机“vm_extend”根目录所在逻辑分区扩容5G;

在云主机上用df -h命令查看挂载信息。

[root@host-10-10-10-115 ~]#fdisk /dev/vda
[root@host-10-10-10-115 ~]# lsblk
[root@host-10-10-10-115 ~]# vgs
[root@host-10-10-10-115 ~]# lvs
[root@host-10-10-10-115 ~]# pvcreate /dev/vda3
[root@host-10-10-10-115 ~]# vgextend VolGroup /dev/vda3
[root@host-10-10-10-115 ~]# vgs
[root@host-10-10-10-115~]# lvextend -L +5G /dev/mapper/VolGroup-lv_root
[root@host-10-10-10-115~]# resize2fs /dev/mapper/VolGroup-lv_root
[root@host-10-10-10-115 ~]# df -h
4. heat管理
4.heat管理(4分)
#在controller节点,安装heat服务,使用提供的文件server.yml创建名为heat的stack,其中glance镜像使用centos7,网络使用int-net1。提交查询stack列表信息以文本形式提交到答题框中
glance image-list
nova network-list
heat stack-create -f server.yml -P ImageID=查询到的镜像名 -P NetID=查询到的网络名 mystack
heat stack-list
#登录“iaas_all”云主机,使用heat相关命令,查询heat模板的版本信息。依次将操作命令及返回结果以文本形式提交到答题框。
heat template-version-list
5. MariaDB管理
5.MariaDB管理

登录http://192.168.100.10/dashboard,创建两台centos7系统的云主机,构建maria–db高可用数据库集群,通过命令查询集群状态。

6.nova管理
#登录“iaas_all”云主机,通过nova的相关命令创建名为exam、ID为1234、内存为1024M、硬盘为20G、虚拟内核数量为2的云主机类型,查看exam的详细信息。依次将操作命令及返回结果以文本形式提交到答题框。
nova flavor-create exam 1234 1024 20 2
nova flavor-show exam
7.对象存储管理
#登录“iaas_all”云主机,使用openstack命令,创建名为examtest的容器并查询,上传一个aaa.txt(可自行创建)文件到这个容器中并查询。依次将操作命令和返回结果以文本形式提交到答题框。
[root@xiandian ~]# openstack container create examtest
[root@xiandian ~]# openstack container list
[root@xiandian ~]# openstack object create examtest aaa.txt
[root@xiandian ~]# openstack object list examtest
8.KVM管理
#登录controller节点,首先查看当前系统有多少大页,然后设置大页数量为20并查看,其次使用命令使配置永久生效,最后将大页挂载到/dev/hugepages/上。依次将操作命令和返回结果以文本形式提交到答题框。
[root@controller ~]#cat /proc/meminfo | grep HugePages
[root@controller ~]#echo 2000 > /proc/sys/vm/nr_hugepages
[root@controller ~]#sysctl -w vm.nr_hugepages=2000
[root@controller ~]#mount -t hugetlbfs hugetlbfs /dev/hugepages
9.防火墙管理
#登录http://192.168.100.10/dashboard
#创建名为nginx的防火墙;
#添加防火墙规则nginx-80,放行所有源IP、源端口、目的IP、目的端口为80的报文;
#创建防火墙策略nginx-policy,添加nginx-80规则。
#使用neutron命令查询防火墙详细信息、策略详细信息、规则详细信息,依次将操作命令和返回结果以文本形式提交到答题框。
[root@controller ~]# neutron firewall-show nginx
[root@controller ~]# neutron firewall-policy-show nginx-policy
[root@controller ~]# neutron firewall-rule-show nginx-80
10.glance管理
#登录“iaas_all”云主机,使用glance相关命令,上传cirros镜像,名字为“cirros”,类型为qcow2,然后使用curl的方法,查询glance image api的状态和版本信息。将上述所有操作命令和返回结果以文本形式提交到答题框。
glance image-create --name " cirros " --disk-format qcow2 --container-format bare --progress < /opt/ cirros-0.3.4-x86_64-disk.img

curl -i -H “X-Auth-Token:openstack token issue | awk -F '|' ' / id / {print $2}'” http://controller:9292/v2/images

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值