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")。