ansible自动化:备份管理实践

需求运维过程中经常遇到的场景:服务器或应用故障,需要重新部署;中间件、应用服务等配置丢失,需要进行恢复;数据库数据丢失或异常,需要进行数据还原;系统扩容,需要配置文件;以上场景比较可靠的解决方式就是从备份进行恢复,因此备份管理就成为了我们最后的“杀手锏”。备份位置一般分为本地备份和异地备份,本地备份的保存时间较短(如:一个月),避免占用过多磁盘空间;而异地备份的保存时间较长(如:一年)。具体情况可按监管要求进行存放。根据不同的需求,我们可将备份内容分为以下几种类型:系统级配置文件.
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

运维思索:接地气的运维自动化建设

简述《运维思索》介绍了一系列运维规范、运维管理及自动化的文章,主要分享的是运维自动化建设的部分想法与思路。站在读者的角度,或许只有我自己明白,那么它们在整个运维自动化建设中到底处于什么位置、发挥着什么作用呢?先来分享一张比较初步且接地气的图:图中所用到的运维工具应该都是我们比较熟悉的且常用的,从运维框架的层次来看:基础设施层,Vsphere虚拟化、物理机等;数据层,数据库、elk、缓存等;应用层,各种基础组件、业务应用,如java、python、php、nginx、中间件等;平台层,各种监
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

ansible自动化:操作系统初始化具体实现

《运维思索:操作系统配置规范化、自动化》一文介绍了对于一台基于安装规范交付的操作系统,还不能够直接用于生产环境,我们还需要进一步的优化,如内核参数、时间同步、排查工具、安全加固等等,保证主机安全的同时、避免因操作系统配置引发的问题。需求在此我们将操作系统基于安全、审计、管理等角度出发,进行了一系列优化:用户服务器使用固定用户,主要为管理用户、应用用户、日志用户。此处可根据堡垒机的系统用户进行分配,避免用户混乱。软件源安装基础组件需要通过统一的软件源。关闭服务统一关闭selinux
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

ansible自动化:基础软件的自定义安装

这是我参与8月更文挑战的第10天。《ansible自动化:操作系统初始化具体实现》一文实现了对操作系统的交付,接下来我们就需要根据研发、运维需求定制各种基础软件,用于日后的系统上线。在此我的实现方式是通过ansible playbook 进行基础软件的自定义安装,后续也可结合jenkins 进行按需持续集成。需求基础软件的需求通常有以下场景:java项目jdk、tomcat、应用日志目录、环境变量及其他订制需求;python项目python3、anaconda、supervisor、p
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

Jenkins+Ansible:助力基础设施建设

这是我参与8月更文挑战的第11天。简述《ansible自动化:操作系统初始化具体实现》《ansible自动化:基础软件的自定义安装》两篇文章我们虽然通过ansible在字符界面满足了操作需求,但是这并不友好。我们希望团队内每个人都能直接上手无缝使用,因此就需要一个图形化界面来提高可操作性。在此我们借助Jenkins+Ansible 来实现图形化的参数化构建过程:我们在输入IP后,根据选择的PLAYBOOK(剧本),再进一步选择不同的TAG(标签),就可以按需自动化实现我们的需求。下面就来讲解下我
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

基础运维神器:开源的裸金属服务器管理平台RackShift

需求最近前同事问我有没有免费或者开源的硬件运维管理平台,通过此平台可以实现包括自动抓取服务器配置、带外管理、开关机、bios配置、固件升级等等功能。虽然我们可以通过IPMI标准监视接口跨不同的操作系统、固件和硬件平台,智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器管理成本;但是服务器厂商都有自己的硬件管理平台,如华为的BMC、戴尔的iDRAC,没有一个统一的管理平台服务可以兼容各家厂商。解决方案现在我们有了一个靠谱的开源解决方案:RackShift。RackShift 是开源的裸金属
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

docker-compose编排实现java多环境交付

简介Jenkins+Docker+git多分支实现springboot项目多环境快速交付一文我们介绍了CI/CD交付springboot项目过程中的环境校验、发版/回滚/重启、操作校验等步骤,在实际应用过程中有几点思考:构建前的运行参数定义构建前我们只按规范定义了APP_NAME(项目名)、IMAGE_NAME(镜像名)、MONITOR_URL(健康检查URL),相关的JVM参数、端口映射等与实际运行的参数仍然需要在后续的容器运行时手动修改,增加了配置难度,因此我们考虑将其提取到环境变量统一设置,
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

基于Nginx+Lua自建Web应用防火墙

简介对于信息类网站,总是会被各种不同目的的爬虫、采集器等不断的抓取或恶意访问,这些会让网站不堪重负,导致页面无法正常访问,极大的影响用户体验。针对此种情况,我们就需要对所有的访问来进行访问控制。此时Web应用防火墙(Web Application Firewall,简称 WAF)就可以助我们一臂之力,它可以为网站提供一站式安全防护。WAF可以有效识别Web业务流量的恶意特征,在对流量进行清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致服务器性能异常等问题,保障网站的业务安全和数
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

运维思考:Java进程管理规范

需求无论是在spring boot 还是spring cloud 项目中,随着应用的不断增多,JVM参数的统一管理的重要性就会凸显出来,否则你可能会遇到几个问题:Java进程出现性能问题,无GC日志支撑提供重要信息;OOM异常频发,无法通过dump文件进行分析定位;JVM堆内存设置规格不一致,被动等待出问题时发现;作为运维,虽然没有超强的能力去最终的定位、分析、排查问题,但并不意味着我们就可以袖手旁观,那么我们能做什么呢?首先,我们要知道Java进程默认参数启动并不会打印某些我们需要的日
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

运维思索:自动化运维体系如何入手

需求运维是事件驱动,还是自驱动可能是我们在运维工作中不太关注的问题。事件驱动让运维止步于故障,而自驱动让运维不止于建设。持续性的运维建设就需要一套自动化的运维体系,那么我们应该从何入手?其实前期《运维思考》一系列文章已经给我们答案了,就是从运维框架入手分层建设、打好基础,记住“万丈高楼平地起,勿在浮沙筑高台”。运维框架通常讲到运维建设,我们脑海中首先浮现的是“一团麻”,因为这不是一个人、一个岗位的工作,而是一整个团队的工作;所以我们将“这团麻”进行由底层向上可划分为:IT基础设施层IT基础
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

【OpenCV-Python】:直方图及直方图均衡化(有源码)

直方图  直方图是进行图像处理过程中的一种非常重要的工具。它是从图像内部灰度级的角度对图像进行表述。  直方图统计的是图像内各个灰度级出现的次数。直方图的绘制1.使用pyplot绘制直方图  使用函数:matplotlib.pyplot.hist(X, BINS)X 和 BINS 的参数如下:  X:数据源,必须是一维的。对于通常的二维图像来说,需要使用ravel()函数将图像处理为一维数据源。  BINS:表示灰度级的分组情况。  函数ravel()的作用是将二维数组降维成一维数组,举例
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

【OpenCV-Python】:色彩空间转换(有源码)

色彩空间类型转换:它是将图像从一个色彩空间转换到另外一个色彩空间,每个色彩空间都有自己擅长的处理问题的领域。通道的拆分与合并在RGB色彩空间中,图像通道的顺序是R→G→B,即第一个通道是R通道,第2个通道是G通道,第3个通道是B通道。注:在OpenCV中,通道顺序是B→G→R。接下来我们考虑如何将3个通道进行拆分并单独显示其中一个通道的图像,这里给出两种拆分方式:1. 通过索引拆分我们使用...
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

深度学习笔记1——激活函数

想必对于深度学习或多或少学过的童鞋们一定知道激活函数,本文就详细介绍以下为什么深度学习模型需要激活函数,激活函数的种类都有哪些,我们又该如何正确选择激活函数。∗∗本文很重要∗∗**本文很重要**∗∗本文很重要∗∗...
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

【OpenCV-Python】:图像从一个文件夹中读取,写入另一个文件夹

话不多说,直接看代码!import osimport cv2def read_path(file_pathname): for filename in os.listdir(file_pathname): filename = filename img = cv2.imread(file_pathname+'/'+filename) cv2.imwrite("Destination_folder" + "/" + filename, img)
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

【OpenCV-Python】:批量读取文件夹内图像并显示

话不多说,直接看代码!import osimport matplotlib.pyplot as plttrain_dir = os.path.join("E:\\CelebA\\Img\\64normal")train_image_names = os.listdir(train_dir)print(train_image_names)for i in range(0, len(train_image_names)): im = plt.imread(train_dir +"/" +
分类: 其他 发布时间: 11-29 09:36 阅读次数: 0

【OpenCV-Python】:批量生成掩膜图像

话不多说,直接看代码!import cv2import osimport numpy as npdef read_path(file_pathname): for filename in os.listdir(file_pathname): # 遍历文件夹内的所有图片 print(filename) # 打印图片名称 a = 44
分类: 其他 发布时间: 11-29 09:35 阅读次数: 0

【OpenCV-Python】:Canny边缘检测的图像化与数值化直观显示

首先给出Canny边缘检测的代码!import cv2img = cv2.imread('C:\\Users\\Wxr\\Desktop\\21.jpg', cv2.IMREAD_GRAYSCALE)c1 = cv2.Canny(img, 32, 128)r1 = cv2.imshow("result", c1)cv2.waitKey()cv2.imwrite('C:\\Users\\Wxr\\Desktop\\r1.jpg', c1)下图左侧是原图,右侧是边缘检测后的图像。如果在做图
分类: 其他 发布时间: 11-29 09:35 阅读次数: 0

【OpenCV-Python】:图像PSNR、SSIM、MSE计算

评价一幅图像质量的好坏有多种方式,目前最常用的是PSNR、SSIM、MSE。接下来我们具体讲解。1. MSE(Mean Squared Error)均方误差MSE是预测值f(x)与目标值y之间差值平方和的均值,公式表示为:MSE=∑i=1n(f(x)−y)2nMSE=\frac{\sum_{i=1}^{n}(f(x)-y)^{2}}{n}MSE=n∑i=1n​(f(x)−y)2​对于图像来说,两个m×n单色图像I和K,如果一个为另一个的噪声近似,那么它们的均方误差定义为:MSE=1mn∑i=0m−
分类: 其他 发布时间: 11-29 09:35 阅读次数: 0

【OpenCV-Python】:图像批量翻转

在做深度学习工作时,有时数据集数量不够,势必要进行数据增强,一些框架如tensorflow、keras、pytorch也提供了相应的API用于数据增强。keras中的tf.keras.preprocessing.image.ImageDataGenerator使用实时数据增强生成批量张量图像数据。这里给出API整体:tf.keras.preprocessing.image.ImageDataGenerator( featurewise_center=False, samplewise_c
分类: 其他 发布时间: 11-29 09:35 阅读次数: 0

【Python】:修改图片后缀

话不多说,直接看代码!import osdirName = "C:\\Users\\Wxr\\Desktop\\12_LOL\\210normal\\" # 图片所在路径total_img = os.listdir(dirName)for filename in total_img: # 索引所有图像 newname = filename newname = newname.split(".") # 分离后缀
分类: 其他 发布时间: 11-29 09:35 阅读次数: 0