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
3. 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)
4. 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
7. 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 | :-) | +---------------------------+--------------------+-------+
8. 安装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
10. 安装cinder块存储服务
[root@controller ~]# iaas-install-cinder-controller.sh [root@compute ~]#iaas-install-cinder-compute.sh
11. 安装Swift对象存储服务
[root@controller~]#source /etc/keystone/admin-openrc.sh [root@controller ~]#iaas-install-swift-controller.sh [root@compute ~]#iaas-install-swift-compute.sh
12. trove 安装
[root@controller ~]# iaas-install-trove.sh [root@controller ~]# trove list
13. 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