华为云云耀云服务器L实例评测|搭建Domain Admin环境监控公司网站的SSL证书,实现到期提醒

news2024/11/21 2:33:38

在这里插入图片描述

本文基于华为云云耀云服务器L实例下的场景体验开源软件Domain Admin的安装部署,实现SSL证书的到期提醒

目录

    • 1、购买华为云耀云服务器L实例
    • 2、登录服务器
      • 2.1、重置密码
      • 2.2、连接服务器
    • 3、安装Domain Admin
      • 3.1、检查Python
      • 3.2、检查pip
      • 3.3、安装Domain Admin
      • 3.4、启动
      • 3.5、开放端口
    • 4、使用Domain Admin
    • 5、遇到的问题
      • 5.1、No matching distribution found for invoke>=2.0
      • 5.2、ImportError: No module named abc
      • 5.3、AttributeError: 'datetime.datetime' object has no attribute 'timestamp'
    • 6、总结

1、购买华为云耀云服务器L实例

打开华为云耀云服务器L实例购买地址

https://www.huaweicloud.com/product/hecs-light.html

购买步骤:

  1. 点击购买 按钮跳转到 【云耀云服务器L实例】 产品购买页

  2. 选择规格:

    • 区域 华北-北京四
    • 系统镜像 CentOS 7.9
    • 实例规格 2核|2G
    • 购买时长 1个月
    • 购买数量 1

此时可以看到价格:配置费用:¥55.02,点击立即购买,跳转到 【订单配置确认】 页

  1. 确认购买实例参数
    • 勾选协议许可

点击去支付 按钮,跳转到【购买云耀云服务】订单支付页

  1. 支付订单
    勾选华为云代金券

点击 去在线支付 按钮,选择适合自己的支付方式,我实际支付0.03

2、登录服务器

回到控制台,找到自己刚刚购买的服务器实例

2.1、重置密码

考虑到网页版的控制终端操作起来不舒服,所以我们使用本地终端连接服务器

先重置密码,可以通过在线工具很方便的生成一个随机密码

https://mouday.github.io/tools/pages/password/index.html

2.2、连接服务器

通过ssh命令,通过公网地址连接服务器

ssh root@<服务器公网IP>

Welcome to Huawei Cloud Service

如果连接正确,可以看到华为云的欢迎词

3、安装Domain Admin

Domain Admin是一个基于Python + Vue3.js 技术栈实现的域名和SSL证书监测平台

用于解决,不同业务域名SSL证书,申请自不同的平台,到期后不能及时收到通知,导致线上访问异常,被老板责骂的问题

Domain Admin 安装文档

https://domain-admin.readthedocs.io/zh_CN/latest/manual/install.html

3.1、检查Python

$ python --version
Python 2.7.5

可以看到,华为云镜像 CentOS 7.9默认安装了Python 2.7.5

3.2、检查pip

检查pip安装情况

 pip -V
-bash: pip: 未找到命令

发现pip并未安装,所以,接下来我们需要安装pip

为了方便管理,我们安装的软件统一放到/opt文件夹下

cd /opt

安装pip

# 下载get-pip
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

# 安装
python get-pip.py

# 检查
pip -V
pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 2.7)

3.3、安装Domain Admin

安装 domain-admingunicorn

gunicorn,“Green Unicorn”是用于UNIX的Python WSGI HTTP服务器,可以用它作为domain-admin的服务器

# 使用清华源镜像
pip install gunicorn domain-admin

由于没有设置pip镜像,下载速度较慢,需要等待一会

如果速度太慢,也可以使用国内镜像进行加速

# 使用清华源镜像
pip install gunicorn domain-admin -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

## 当然也可以选择华为云镜像
pip install fabric -i https://repo.huaweicloud.com/repository/pypi/simple --trusted-host https://repo.huaweicloud.com

3.4、启动

可以让服务监听80端口

gunicorn --bind '0.0.0.0:80' 'domain_admin.main:app'

3.5、开放端口

检查安全组,发现仅开放了22端口,我们还需要开放80端口 用于web访问

4、使用Domain Admin

通过公网IP就可以访问,输入默认的账号密码登录(账号:admin / 密码:123456),添加需要监控的域名即可

更多使用帮助,可以参考他的文档:

  • https://github.com/mouday/domain-admin
    在这里插入图片描述
    这样一来,周末就可以睡个安稳觉了,再也不怕周末线上出现这种低级异常导致奖金被扣了。

5、遇到的问题

由于版本兼容的问题,我们不可避免的会遇到一些奇怪的问题

首先,遇到问题先别慌,看报错日志,根据日志就可以排查问题,进而对症下药,有效解决问题

首先可以明确的是:domain-amdin 同时兼容Python2.7和Python3。所以可以排除domain-amdin的问题。

5.1、No matching distribution found for invoke>=2.0

安装domain-admin的是时候,发现依赖fabric包安装错误

ERROR: Could not find a version that satisfies the requirement invoke>=2.0 
(from fabric) 
(from versions: 
0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.7.0, 0.8.0, 0.8.1, 0.8.2, 
0.9.0, 0.10.0, 0.10.1, 0.11.0, 0.11.1, 0.12.0, 0.12.1, 0.12.2, 0.13.0, 0.14.0, 
0.15.0, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.17.0, 0.18.0, 0.18.1, 0.19.0, 0.20.0,
0.20.1, 0.20.2, 0.20.3, 0.20.4, 0.21.0, 0.22.0, 0.22.1, 0.23.0, 1.0.0, 1.0.1, 
1.0.2, 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 
1.7.0, 1.7.1, 1.7.2, 1.7.3)
ERROR: No matching distribution found for invoke>=2.0 (from fabric)

通过pypi上的发布历史和版本兼容情况,我们发现最新版本的fabric 3.2.2 已经不支持Python2.7

https://pypi.org/project/fabric/2.7.1/

所以,我们选择一个支持Python2.7 的版本,手动安装

pip install fabric==2.7.1

再次执行安装命令

pip install gunicorn domain-admin -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

安装成功

5.2、ImportError: No module named abc

执行启动命令发现 flask_cors 也有问题

    from flask_cors import CORS
  File "/usr/lib/python2.7/site-packages/flask_cors/__init__.py", line 11, in <module>
    from .decorator import cross_origin
  File "/usr/lib/python2.7/site-packages/flask_cors/decorator.py", line 16, in <module>
    from .core import get_cors_options, set_cors_headers, FLASK_CORS_EVALUATED
  File "/usr/lib/python2.7/site-packages/flask_cors/core.py", line 12, in <module>
    from collections.abc import Iterable
ImportError: No module named abc

解决办法就是降级Flask-Cors,找一个兼容python2.7版本的包即可

pip install Flask-Cors==3.0.10 --trusted-host repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple

5.3、AttributeError: ‘datetime.datetime’ object has no attribute ‘timestamp’

APScheduler 也报错了

   scheduler_service.init_scheduler()
  File "/usr/lib/python2.7/site-packages/domain_admin/service/scheduler_service.py", line 102, in init_scheduler
    scheduler.start()
  File "/usr/lib/python2.7/site-packages/apscheduler/schedulers/background.py", line 35, in start
    BaseScheduler.start(self, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/apscheduler/schedulers/base.py", line 167, in start
    self._real_add_job(job, jobstore_alias, replace_existing)
  File "/usr/lib/python2.7/site-packages/apscheduler/schedulers/base.py", line 863, in _real_add_job
    replacements['next_run_time'] = job.trigger.get_next_fire_time(None, now)
  File "/usr/lib/python2.7/site-packages/apscheduler/triggers/cron/__init__.py", line 179, in get_next_fire_time
    next_date, fieldnum = self._increment_field_value(next_date, fieldnum - 1)
  File "/usr/lib/python2.7/site-packages/apscheduler/triggers/cron/__init__.py", line 147, in _increment_field_value
    return normalize(dateval + difference), fieldnum
  File "/usr/lib/python2.7/site-packages/apscheduler/util.py", line 431, in normalize
    return datetime.fromtimestamp(dt.timestamp(), dt.tzinfo)
AttributeError: 'datetime.datetime' object has no attribute 'timestamp'

解决办法同样是降级APScheduler

pip install APScheduler==3.8.1 --trusted-host repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple

6、总结

通过使用华为云云耀云服务器L实例进行实际评测,满足企业正常的需求,默认安装了Python2.7,很容易部署第三方应用。
Domain Admin只是众多开源软件中一个应用,还有很多应用也可以部署到华为云服务器上面使用。虽然安装过程遇到一些问题,不过很快就解决了。并且这些问题本身也不是华为云服务器的问题,其他家的服务器也会遇到这样的问题。根本原因是Python版本和pip包版本的兼容性问题,知道了问题的根本所在,就很容易顺藤摸瓜,找到解决办法。而且本次使用的是华为云服务器的CentOS 7.9 镜像,和其他云服务器产商的镜像是一样的,所以是一个CentOS的问题。
至此,购买、登录、安装部署第三方应用、并且解决了遇到的问题,完成了整个流程,学习到了使用华为云云耀云服务器L实例的方式,同时也为中国云服务器商的崛起二自豪,他们提供了云服务器,让企业很容易使用云资源,简单的购买配置就可以实现自身业务需要的功能。这也是中国互联网经济的基础,为互联网的腾飞提供了必要的基础设施保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE之proxy配置实现跨域

什么是跨域 要了解跨域&#xff0c;首先得知道浏览器的同源策略。 同源策略&#xff1a;是由Netscape提出的一个安全策略&#xff0c;能够阻挡恶意文档&#xff0c;保护本地数据。它能限制一个源的文档或脚本对另一个源的交互&#xff0c;使得其它源的文档或脚本&#xff0c;…

皮克定理和多边形面积及应用

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 皮克定理 皮克定理&#xff1a;皮克定理是指一个计算所有顶点坐标为整数的多边形面积公。该公式可以表示为Sab2&#xff0d;1&#xff0c;其中a表示多边形内部的坐标为…

Python list列表添加元素的3种方法

实际开发中&#xff0c;经常需要对​ Python 列表 ​进行更新&#xff0c;包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。 使用运算符可以将多个序列连接起来&#xff1b;列表是序列的一种&#xff0c;所以也可以使用进行连接&#xff0…

Linux配置成代理服务器

Linux配置成代理服务器 什么是代理服务器 把Linux配置成代理服务器 开放的代理服务器 升级需要账号密码的代理服务器 Linux系统使用代理服务器 临时通过代理访问 永久通过代理访问 Windows系统使用代理服务器 什么是代理服务器 代理服务器&#xff08;Proxy Server&am…

《动手学深度学习 Pytorch版》 4.5 权重衰减

4.5.1 范数与权重衰减 整节理论&#xff0c;详见书本。 4.5.2 高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l# 生成一些数据&#xff0c;为了使过拟合效果更明显&#xff0c;将维数增加到 200 并使用一个只包含 20 个样…

vue3中使用el-upload + tui-image-editor进行图片处理

效果如下 看之前请先看上一篇《vue3中使用组件tui-image-editor进行图片处理》中的 1、第一步安装 2、第二部封装组件 本篇只是在这基础上结合el-upload使用组件 3、第三步结合el-upload使用组件 <template><el-dialog:title"dialogTitle":modelValue&qu…

004-Windows下开发环境搭建

Windows下开发环境搭建 文章目录 Windows下开发环境搭建项目介绍版本控制工具Git 与 SVNWindow下安装Git Qt 开发工具静态编译Qt环境安装 串口模拟器比较工具SQLite 数据库查看小工具预告 关键字&#xff1a; Qt、 Qml、 开发环境、 Windows、 C 项目介绍 欢迎来到我们的 …

Elastic Universal Profiling™ 是一种连续分析解决方案,现已正式上市

作者&#xff1a;Israel Ogbole, Stephanie Boomsma 在软件无处不在且影响深远的世界中&#xff0c;效率的重要性不仅仅局限于业务范围。 高效的软件不仅有利于企业&#xff0c;而且有利于企业。 这对全球也有好处。 通过将计算效率作为核心目标&#xff0c;并为专业人员提供正…

WebGL光照介绍——平行光、环境光下的漫反射

目录 光照原理 光源类型 平行光 点光源 环境光 反射类型 漫反射 漫反射光颜色 计算公式 环境反射 环境反射光颜色 表面的反射光颜色&#xff08;漫反射和环境反射同时存在时&#xff09;计算公式 平行光下的漫反射 根据光线和法线方向计算入射角θ&#xff08;以便…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数&#xff08;构造哈希函数&#xff09; 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 &#xff08;1&#xff09;线性探测法&#xff1a; &#xff08;2&#xff09…

笔记:Android 应用启动流程

1.点击图标&#xff0c;启动app 点击图标&#xff0c;实际是封装了一个 Intent 然后调用了 startActivity 方法 ComponentName componentName new ComponentName("包名", "activity 名称"); Intent intent new Intent(Intent.ACTION_MAIN); intent.set…

【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查

GIT合并解决冲突后&#xff0c;导致其他人代码遗失的排查 项目场景问题描述分析与处理&#xff1a;1. 警告分析2. 文件分析3. 问题关键4. 验证 解决策略总结 &#x1f4d5;作者简介&#xff1a;战斧&#xff0c;从事金融IT行业&#xff0c;有着多年一线开发、架构经验&#xff…

【Nacos】Nacos服务注册服务端源码分析(一)

上篇简单看了下Nacos客户端在服务注册时做了什么。 本篇开始分析Nacos在服务注册时&#xff0c;服务端的相关逻辑。 建议先阅读这篇文章&#xff1a;支持 gRPC 长链接&#xff0c;深度解读 Nacos 2.0 架构设计及新模型 回顾一下&#xff0c;上篇我们看了Nacos在服务注册时&a…

四种常用的自动化测试框架

一直想仔细研究框架&#xff0c;写个流水账似的测试程序不难&#xff0c;写个低维护成本的测试框架就很难了&#xff0c;所以研究多种测试框架还是很有必要的&#xff0c;知道孰优孰劣&#xff0c;才能在开始编写框架的时候打好基础&#xff0c;今天读到了KiKi Zhao的翻译文章&…

reverse_iterator 逆序迭代器

在上一篇 C迭代器 iterator&#xff08;与逆序迭代器&#xff09; 中&#xff0c;我们看到了迭代器的基本用法。 现在我们看看一个奇怪的现象 意料之外的减法运算 无符号数的 0 减 1 变成了什么&#xff1f; &#xff1f;已知 size_t 一般为 unsigned long long 类型。 #…

区块链(4):区块链去中心化

1 区块链白皮书中的公有链&#xff0c;私有链&#xff0c;联盟链概念介绍 区块链系统根据应用场景和设计体系的不同&#xff0c;一般分为公有链、联盟 链和专有链(私有链)。其中: 公有链的各个节点可以自由加入和退出网络&#xff0c;并参加链上数据的读 写&#xff0c;运行时…

SpringBoot+MyBatis flex实现简单增删改查

一&#xff1a;创建SpringBoot项目 SpringBoot版本选择2.7.15 勾选相关的选项&#xff0c;并点击Create 项目创建完成 二.pom文件添加相关的依赖 <dependencies><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starte…

排序——直接插入排序折半插入排序

文章目录 前言一、排序的基本概念1. 排序的定义2. 排序的分类1) 稳定排序2) 不稳定排序 二、插入排序1. 直接插入排序1&#xff09;直接插入排序算法分析 2. 直接插入排序代码3. 直接插入排序时间复杂度4. 折半插入排序5. 折半插入排序代码 总结 前言 排序的基本概念数据结构稳…

从数字化到智能化再到智慧化,智慧公厕让城市基础配套更“聪明”

随着科技的迅猛发展&#xff0c;城市生活方式与配置设施的方方面&#xff0c;面也在不断的改变和升级。智慧公厕作为城市基础配套设施的一部分&#xff0c;从数字化到智能化再到智慧化&#xff0c;正逐渐展现出其独特的魅力和优势。实现了公共厕所建设、使用与管理方式的全面变…

【AI】机器学习——支持向量机(非线性及分析)

5. 支持向量机(线性SVM) 文章目录 5.4 非线性可分SVM5.4.1 非线性可分问题处理思路核技巧核函数特点 核函数作用于SVM 5.4.2 正定核函数由 K ( x , z ) K(x,z) K(x,z) 构造 H \mathcal{H} H 空间步骤 常用核函数 5.5 SVM参数求解算法5.6 SVM与线性模型关系 5.4 非线性可分SVM …