当前位置: 首页 > news >正文

网站优化靠谱seo/百度点击快速排名

网站优化靠谱seo,百度点击快速排名,做网站靠什么挣钱,怎么建设网站运城1. CMDB 腾讯云成品效果 最近由于上海疫情一直远程办公,路上通勤时间节约出来了可不能浪费.慢慢摸索做了个CMDB,从此告别用Excle管理服务器. 老年运维0基础入门Vue,自己也感觉到很多判断可能写的比较冗杂,慢慢改进吧. 先上效果图,一部分机器打了码.学渗透的小伙伴就别拿这个来…

1. CMDB 腾讯云成品效果

最近由于上海疫情一直远程办公,路上通勤时间节约出来了可不能浪费.慢慢摸索做了个CMDB,从此告别用Excle管理服务器.
老年运维0基础入门Vue,自己也感觉到很多判断可能写的比较冗杂,慢慢改进吧.
先上效果图,一部分机器打了码.学渗透的小伙伴就别拿这个来练手了,网上机器多得是.请手下留情
在这里插入图片描述

2. 腾讯 云API

https://console.cloud.tencent.com/api/explorer
DescribeInstances 必要参数是Region,在页面上因为已经做过登录,所以不需要传AK,但通过SDK调用secret_id,secret_key就是必须的.
在这里插入图片描述
当发起调用后我们就能拿到了这样一个json的返回
因为我们传了InstanceIds,所以只返回了一个实例的内容.真实情况下不会单独查询,而是通过分页方式取到所有instance的清单,然后通过清单去遍历出每一个实例的配置.

{"Response": {"InstanceSet": [{"CPU": 8,"CamRoleName": "CAM-xxxx-xxxxx","CreatedTime": "2020-10-26T02:50:33Z","DataDisks": [{"CdcId": null,"DeleteWithInstance": true,"DiskId": "disk-xxxxxxx","DiskSize": 500,"DiskType": "CLOUD_PREMIUM","Encrypt": false,"KmsKeyId": null,"SnapshotId": null,"ThroughputPerformance": 0}],"DisasterRecoverGroupId": "ps-xxxxxx","ExpiredTime": "2022-10-26T02:50:33Z","GPUInfo": null,"HpcClusterId": "","IPv6Addresses": null,"ImageId": "img-xxxxx","InstanceChargeType": "PREPAID","InstanceId": "ins-xxxxxxx","InstanceName": "xxx-xxxxxxx-xxx","InstanceState": "RUNNING","InstanceType": "S5.2XLARGE32","InternetAccessible": {"BandwidthPackageId": null,"InternetChargeType": null,"InternetMaxBandwidthOut": 0,"PublicIpAssigned": null},"IsolatedSource": "NOTISOLATED","LatestOperation": "AssociateSecurityGroups","LatestOperationRequestId": "xxxxxxxxxxxxxxxxx","LatestOperationState": "SUCCESS","LicenseType": "TencentCloud","LoginSettings": {"KeepImageLogin": null,"KeyIds": null,"Password": null},"Memory": 32,"OsName": "CentOS 7.7 64位","Placement": {"HostId": null,"HostIds": null,"HostIps": null,"ProjectId": 1213517,"Zone": "ap-shanghai-x"},"PrivateIpAddresses": ["10.1xx.1xx.2"],"PublicIpAddresses": null,"RdmaIpAddresses": null,"RenewFlag": "NOTIFY_AND_AUTO_RENEW","RestrictState": "NORMAL","SecurityGroupIds": ["sg-f6hr2yau","sg-b3s07de6","sg-dz364bxk"],"StopChargingMode": "NOT_APPLICABLE","SystemDisk": {"CdcId": null,"DiskId": "disk-xxxxxx","DiskSize": 50,"DiskType": "CLOUD_PREMIUM"},"Tags": [{"Key": "OMO","Value": ""}],"Uuid": "xxxxxxxxxxxxxxxxxxxxxxxxx","VirtualPrivateCloud": {"AsVpcGateway": false,"Ipv6AddressCount": null,"PrivateIpAddresses": null,"SubnetId": "subnet-iintkmd1","VpcId": "vpc-xxxxxx"}}],"RequestId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx","TotalCount": 1}
}

可以看到,Json返回了一堆数据,我们只需要去删选出几个我们感兴趣的值,通过赋值的方式一一存入对应位置.
比如:Placement.Zone,CPU,Memory,DataDisks下的DiskSize等

3. 通过python将数据整理并更新

先通过FORM传入secret_id,secret_key,region等必要参数,通过查询,保存所有实例清单.
当然可要考虑到地域没有实例的可能性.

        secret_id = request.data.get('secret_id')secret_key = request.data.get('secret_key')region_id = request.data.get('region')instance_result = cloud.instance_list(region_id)instance_list = []if instance_result.code == 200:instance_list = instance_result.InstanceSetif instance_result.TotalCount == 0:res = {'code': 500, 'msg': '该区域未发现云主机,请重新选择!'}return Response(res)elif instance_result.code == 500:res = {'code': 500, 'msg': '%s' %instance_result['msg']}return Response(res)

通过整理实例清单内容,将值一一保存更新.

        for host in instance_list:zone = host.Placement.Zoneinstance_id = host.InstanceId  # 实例IDinstance_name = host.InstanceName # 机器名称os_version = host.OsNameprivate_ip = host.PrivateIpAddresses	# 私网ippublic_ip = host.PublicIpAddresses		# 公网IPcpu = "%s核" %host.CPU					# CPU核数memory = "%sG" %host.Memory				# 内存容量size = host.SystemDisk.DiskSize  # host.SystemDisk.DiskSize系统盘data_list = host.DataDisks       # host.DataDisks数据盘列表if data_list:for d in data_list:size += d.DiskSizedisk = str(size) + "G"create_date = time.strftime("%Y-%m-%d",time.strptime(host.CreatedTime, "%Y-%m-%dT%H:%M:%SZ"))# 创建服务器idc_name = zone_dict[zone]idc = Idc.objects.get(name=idc_name)]# 如果instance_id不存在才创建data = {'idc': idc,'name': instance_name,'hostname': instance_id,'ssh_ip': private_ip[0],'ssh_port': ssh_port,'machine_type': 'cloud_vm','os_version': os_version,'public_ip': public_ip,'private_ip': private_ip,'cpu_num': cpu,'memory': memory,'disk': disk,'put_shelves_date': create_date,# 'expire_datetime': expired_time,'is_verified': 'verified'}server = Server.objects.filter(hostname=instance_id)if not server:server = Server.objects.create(**data)# 分组多对多group = ServerGroup.objects.get(id=server_group_id) # 根据id查询分组# 将服务器添加到分组server.server_group.add(group)else:server.update(**data)

4. Vue实现展示

<el-table-column type="selection" width="55"/>  <!--启用多选--><el-table-column prop="name" label="名称" width="130" fixed="left" sortable v-if="showColumn.name"/><el-table-column prop="hostname" label="主机名" width="130" sortable v-if="showColumn.hostname"/><el-table-column prop="ssh_ip" label="SSH IP" width="120" sortable v-if="showColumn.ssh_ip"/><el-table-column prop="idc" label="IDC机房" sortable v-if="showColumn.idc" width="130px"><template #default="scope"><img src="../../assets/aliyun.png" style="width: 18px;height: 18px;" v-if="scope.row.idc.provider == '阿里云'"><img src="../../assets/tencent.png" style="width: 18px;height: 18px;" v-else-if="scope.row.idc.provider == '腾讯云'"><el-icon :size="18" color="#409EFC" v-else><office-building /></el-icon>{{scope.row.idc.city}}-{{ scope.row.idc.name }}</template></el-table-column><el-table-column prop="server_group" label="主机分组" width="70px" sortable v-if="showColumn.server_group"><template #default="scope"><span  v-for="group in scope.row.server_group" :key="group.id"><el-tag type="success" v-if="group.name == '正式'">{{ group.name }}</el-tag><el-tag type="warning" v-else-if="group.name == '测试'">{{ group.name }}</el-tag><el-tag type="primary" v-else-if="group.name == 'UAT'">{{ group.name }}</el-tag><el-tag type="danger" v-else-if="group.name == '待下线'">{{ group.name }}</el-tag><el-tag type="info" v-else-if="group.name == '已下线'">{{ group.name }}</el-tag></span ></template></el-table-column><el-table-column prop="machine_type" label="机器类型" width="80px" sortable v-if="showColumn.machine_type"><template #default="scope"><span v-if="scope.row.machine_type == 'vm'">虚拟机</span><span v-else-if="scope.row.machine_type == 'cloud_vm'">云主机</span><span v-else>物理机</span></template></el-table-column><el-table-column prop="os_version" label="系统版本" width="200px" sortable :show-overflow-tooltip="true" v-if="showColumn.os_version"/><el-table-column prop="private_ip" label="内网IP" width="140px" sortable v-if="showColumn.private_ip"><template #default="scope"><el-tag v-for="(ip,index) in scope.row.private_ip" :key="index">{{ ip }}</el-tag></template></el-table-column><el-table-column prop="public_ip" label="公网IP" width="140px" sortable v-if="showColumn.public_ip"><template #default="scope"><el-tag v-for="(ip,index) in scope.row.public_ip" :key="index">{{ ip }}</el-tag></template></el-table-column><el-table-column prop="cpu_num" label="CPU" width="80" sortable v-if="showColumn.cpu_num"/><el-table-column prop="cpu_model" label="CPU型号" sortable v-if="showColumn.cpu_model"/><el-table-column prop="memory" label="内存" width="80" sortable v-if="showColumn.memory"/><el-table-column prop="disk" label="硬盘" width="80" sortable v-if="showColumn.disk"></el-table-column><el-table-column prop="put_shelves_date" label="上架日期" sortable v-if="showColumn.put_shelves_date"/><el-table-column prop="off_shelves_date" label="下架日期" sortable v-if="showColumn.off_shelves_date"/><el-table-column prop="expire_datetime" label="租约过期时间" sortable v-if="showColumn.expire_datetime"/><el-table-column prop="is_verified" label="SSH状态" width="120" sortable v-if="showColumn.is_verified"><template #default="scope"><el-tag type="success" v-if="scope.row.is_verified == 'verified'">已验证</el-tag><el-tag type="warning" v-else>未验证</el-tag></template></el-table-column><el-table-column prop="note" label="备注"  v-if="showColumn.note"/><el-table-column prop="update_time" label="更新时间" sortable v-if="showColumn.update_time"/><el-table-column prop="create_time" label="创建时间" sortable v-if="showColumn.create_time"/>

5. axios部分

  methods: {getData()  {.....this.$axios.get('/cmdb/server/',{params: this.urlParams}).then(res => {// console.log(res.data);this.tableData = res.data.data;this.total =res.data.count;})},
http://www.jmfq.cn/news/5060827.html

相关文章:

  • 什么是理财北京网站建设公司/企业培训内容
  • html做动态网站步骤与代码/网络推广费用
  • 广州沙河一起做网站的网址/新闻头条免费下载安装
  • ups国际快递网站建设/企业网站推广有哪些
  • 在哪个网站可以免费制作简历/应用关键词优化
  • 5星做号宿水软件的网站/seo每天一贴
  • 网站开发上线流程/广州百度推广优化排名
  • 凡科主要是做什么的/石家庄百度搜索引擎优化
  • 可以免费创建网站的软件/沙坪坝区优化关键词软件
  • 建站ABC支持网站备份/网站怎么做谷歌推广
  • 自己装修怎么出设计图/网站关键词优化建议
  • iis建立的网站打不开/百度风云榜各年度小说排行榜
  • 国外做家纺的网站/营销策划师
  • 导航网站搭建/百度提交入口网址是指在哪里
  • 网站建设流程图/百度指数总结
  • wordpress 海会网络/seo上海培训
  • 网站建设企业有哪些内容/b站暴躁姐
  • 公司外贸网站/长春seo网站排名
  • 茂名建设企业网站/cpa游戏推广联盟
  • 深圳最好的营销网站建设公司/公司网络推广的作用
  • 成都分销网站建设/百度主页入口
  • 网页设计与网站规划/网络营销平台的主要功能
  • 济南市建设局网站/免费发布信息网
  • 河南疫情防控最新政策/seo网站优化排名
  • 用illustrator做网站/大数据培训包就业靠谱吗
  • 哪个公司做网站最好深圳/外贸平台有哪些?
  • 自己在线制作logo免费生成器/常熟seo关键词优化公司
  • 兰州网站建设哪家专业/推广宣传文案
  • 建立网站ftp是什么/网络营销是干什么的
  • app和网站开发语言的区别/下拉框关键词软件