openstack 运维题
openstack 平台运维
- 在 openstack 公有云平台上,基于 cirrors.qcow2 镜像,应用命令创立一个名为 cirros 的镜像。
[root@controller ~]# glance image-create --name "cirros" --disk-format qcow2 --container-format bare --progress opt/openstack/images/CentOS_7.5_x86_64_XD.qcow2
2. 在 openstack 公有云平台上,应用命令创立一个名为 Fmin,ID 为 1,内存为 1024 MB,磁盘为 10 GB,vcpu 数量为 1 的云主机类型。
[root@controller ~]# nova flavor-create Fmin 1 1024 10 1
在 openstack 公有云平台上,编写模板 server.yml,创立名为“m1.flavor”、ID 为 1234、内存为 1024MB、硬盘为 20GB、vcpu 数量为 2 的云主机类型。
[root@controller ~]# openstack orchestration template version list #查看可用于编排的模板版本
[root@controller ~]# Vi server.yaml
server.yaml
heat_template_version: 2015-04-30
description:
resources:
flavor:
type: OS::Nova::Flavor
properties:
name: "m1.flavor"
flavorid: "1234"
disk: 20
ram: 1024
vcpus: 2
outputs:
flavor_info:
description: Get the information of virtual machine type
value: {get_attr: [ flavor, show] }
[root@controller ~]# heat stack-create m1_flavor_stack -f server.yaml #创立资源
- 在 openstack 公有云平台上,通过应用命令创立云主机内部网络 extnet,子网 extsubnet,虚拟机浮动 IP 网段为 172.18.x.0/24(其中 x 是考位号),网关为 172.18.x.1,网络应用 vlan 模式;创立云主机内网 intnet,子网 intsubnet,虚拟机子网 IP 网段为 192.168.x.0/24(其中 x 是考位号),网关为 192.168.x.1;实现内网子网 intsubnet 和内部网络 extnet 的连通。
创立外网
[root@controller ~]# openstack network create extnet --provider-physical-network provider --provider-network-type vlan --external
创立子网
[root@controller ~]# openstack subnet create extsubnet --subnet-range 172.18.25.0/24 --network extnet --gateway 172.18.25.1
查看是否创立胜利
[root@controller ~]# neutron subnet-list
创立内网
[root@controller ~]# openstack network create intnet --provider-network-type vxlan --provider-segment 1
创立子网
[root@controller ~]# openstack subnet create intsubnet --subnet-range 192.168.25.0/24 --network intnet --gateway 192.168.25.1/24
创立路由
[root@controller ~]# openstack router create ext-router
绑定 ext-route 和外网 extnet, 并启动 snat
[root@controller ~]# openstack router set --external-gateway extnet --enable-snat ext-route
ext-route 增加子网 intsubnet
[root@controller ~]# openstack router add subnet ext-route intsubnet
-
在 Controller 节点中编写名为 modvm.sh 的 shell 脚本查看云主机 VM1 的内存大小,如果内存小于 2G,调整云主机 VM1 的内存为 2G。
-
在 openstack 公有云平台上,基于“cirros”镜像、1vCPU/1G /10G 的 flavor、intsubnet 的网络,绑定浮动 IP,应用命令创立一台虚拟机 VM1,启动 VM1,并应用 PC 机能近程登录到 VM1。
[root@controller ~]# openstack flavor create --ram 1024 --disk 10 --vcpus 1 flavor [root@controller ~]# onova boot --flavor flavor --image cirros --nic net-name=intnet --security-groups default VM1 [root@controller ~]#openstack floating ip create extnet --floating-ip-address 172.18.25.104 // 创立出浮动 ip [root@controller ~]openstack server add floating ip VM1 172.18.25.104 // 绑定相应的浮动 ip 到云主机
- 在 openstack 公有云平台上,将云主机 VM1 保留为 qcow2 格局的快照并保留到 controller 节点 /root/cloudsave 目录下。
[root@controller ~]# Mkdir /root/cloudsave
[root@controller ~]# openstack server image create VM1 --name myVM1
[root@controller ~]# openstack image save --file /root/cloudsave/myVM1.qcow2 myVM1
-
在 controller 节点上新建名为 Chinaskill 的容器,并获取该容器的寄存门路;将 centos7_5.qcow2 镜像上传到 chinaskill 容器中,并设置分段寄存,每一段大小为 10M。
bash swift post Chinaskill swift stat Chinaskill swift upload Chinaskill -S 10485760 /opt/openstack/images/centos7_5.qcow2
-
在 openstack 公有云平台上,创立一个名为“lvm”的卷类型,创立 1 块卷类型为 lvm 的 40G 云盘,并附加到虚拟机 VM1 上。
openstack volume type create lvm openstack volume create --type lvm --size 10 v1 openstack volume list openstack server add volume VM1 v1
-
在虚拟机 VM1 上,应用附加的云盘,划分为 4 个 10G 的分区,创立一个 raid 5,其中 1 个分区作为热备。
fdisk /dev/vdb 分 4 个分区 mdadm -C -v demo -l 5 -n 3 -x 1 /dev/vdb{1,2,3,4}
-
在 Controller 节点中编写 /root/openstack/deletevm.sh 的 shell 脚本, 开释虚拟机 VM1,执行脚本实现实例开释。
source /etc/keystone/admin-openrc.sh openstack server delete VM1
-
应用镜像 Openstack-error-1 重建云主机“all-in-one”(账号:root 明码:000000)。重建后的云主机内有谬误的 openstack 平台,其中有曾经创立好的云主机 vm-test 无奈启动,请排除谬误,启动 vm-test 云主机。
计划:
1. 首先到管制节点查看
2. 查看 glance 日志 /var/log/glance/
3. 查看 /var/lib/glance/ 下的文件的权限 750 所属主和所属者是不是 glance
-
登录 172.17.x.10/dashboard,应用 centos7 镜像创立三台云主机来搭建 rabbitmq 集群。应用一般集群模式,其中一台做磁盘节点,另外两台做内存节点,配置结束后启动 rabbitmq 服务。
# 三台主机 yum install -y rabbitmq-server systemctl restart rabbitmq-server systemctl enable rabbitmq-server #rabbitmq1 启动图形界面 rabbitmq-plugins enable rabbitmq_management systemctl restart rabbitmq-server scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/ scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/ # 两台节点主机 chown rabbitmq:rabbitmq .erlang.cookie #配置节点退出集群 #rabbitmq2 rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@rabbitmq1 rabbitmqctl start_app #rabbitmq3 rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@rabbitmq1 rabbitmqctl start_app
-
应用提供的云平安框架组件,将 http://172.17.x.10/dashboard 中的 keystone 安全策略从 http 优化至 https。
yum install -y mod_ssl vi /etc/openstack-dashboard/local_settings USE_SSL = True CSRF_COOKIE_SECURE = True ## 原文中有,去掉正文即可 SESSION_COOKIE_SECURE = True ## 原文中有,去掉正文即可 SESSION_COOKIE_HTTPONLY = True vi /etc/httpd/conf.d/ssl.conf #将 SSLProtocol all -SSLv2 -SSLv3 改成 SSLProtocol all -SSLv2 systemctl restart httpd systemctl restart memcached
-
在 openstack 公有云平台上,增加 controller 节点资源到云平台(即 controller 节点也作为 compute 节点应用)。
批改 openrc.sh, 把 compute 节点的 IP 和主机名改为 controller 节点的 IP 和主机名 在管制节点运行 iaas-install-nova-compute.sh
-
从 PC 机上传 CentOS_7.5_x86_64.qcow2 文件到 controller 节点,并在 openstack 公有云平台上,应用 glance 相干命令上传镜像,镜像源为 CentOS_7.5_x86_64.qcow2,名为 Gmirror1,min _ram 为 2048M,min_disk 为 30G。
openstack image create --disk-format qcow2 --public --min-ram 2048 --min-disk 30 --file /opt/images/CentOS_7.5_x86_64_XD.qcow2 Gmirror1
-
在云主机 VM1 上,对附加的云盘进行分区格式化后,永恒挂载到 /opt 目录下。在 Controller 节点中编写名为 /root/openstack/deletevm.sh 的 shell 脚本开释云主机 VM1,执行脚本实现实例开释。
fdisk -l mkfs -t ext4 /dev/vdb vi /etc/fstab /dev/vdb /opt ext4 defaults 0 0 #查看挂载 lsblk -f
-
在 openstack 公有云平台上,将云主机 Hostrans(后面一题创立的)应用手动迁徙的形式,迁徙至另一个计算节点。
# 查看虚拟机在哪个节点上 nova show Hostrans #敞开虚拟机 openstack server stop Hostrans #将 compute 节点迁徙 scp -r /var/lib/nova/instances/5e157cc9-c25e-41e5-829b-5fb13d0a98f6/ controller:/var/lib/nova/instances/ #批改数据库 mysql -uroot -p000000 use nova; update instances set host='controller', node='controller' where uuid='5e157cc9-c25e-41e5-829b-5fb13d0a98f6' #重启两个节点服务 openstack-server restart
-
在 openstack 公有云平台上,配置 swift 对象存储为 glance 的后端存储。
vim /etc/glance/glance-api.conf [glance_store] default_store = swift 默认为 file 改为 swift stores = file, http 默认不必动 swift_store_auth_version = 2 默认版本为 2 stores=glance.store.swift.Store,glance.store.filesystem.Store 此项肯定要加上,不然无奈上传 swift_store_auth_address = http://controller:5000/v2.0 controller 的 keystone 认证 swift_store_user = service:swift 应用 swift 用户 swift_store_key = swift 明码 swift_store_container = glance 将要被创立的容器 swift_store_create_container_on_put = True 上传开 swift_store_large_object_size = 5120 最大 5G 限度,但与 glance 联合后限度有效 swift_store_large_object_chunk_size = 200 最大 200 个容器 swift_enable_snet = False systemctl restart openstack-glance-api
- 应用镜像 centos7,创立两台云主机 master 和 slave,并别离绑定浮动 IP;在这 2 台云主机上安装 mysql 数据库系统并配置为主从数据库(master 为主节点、slave 为从节点);并在 mater 云主机的数据库中创立 ChinaSkilldb 库,在 ChinaSkilldb 库中创立表 testable (id int not null primary key,Teamname varchar(50), remarks varchar(255)),在表中插入记录 (1,”Cloud”,”ChinaSkill”)。