需求背景:随着第一版远程执行发布使用paramiko模块进行远程调用脚本的稳定,开始着手第二版关于使用ansible runner执行远程发布任务paramiko和ansible runner各自的优缺点:Paramiko:Paramiko 是一个 Python 的 SSH 库,用于在远程主机上执行命令。优点:直接通过 SSH 连接到远程主机,无需额外的中间层。可以实现细粒度的远程命令执行控制。缺
在浏览器中,只要发送请求的URL的协议,域名,端口,这三者中的任意一者与当前页面地址不同,则称之为跨域,在了解跨域之前,先来了解浏览器的同源策略。1,浏览器的同源策略同源策略(Same Origin Policy) 是一种安全约定,是所有主流浏览器最核心,也是最基本的安全功能之一,同源策略规定:在没有明确授权的情况下,不同域的客户端脚本不能请求对方的资源,“同源”指:协议,域名,端口都要相同,只要
简介supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。安装配置好yum源后,可以直接安装yum i
在学习装饰器之前我们需要先了解闭包闭包(closure)是一个概念,它可以用来描述一种特殊的函数。在 Python 中,当一个函数定义在另一个函数内部时,且该函数引用了外部函数中的变量或参数,那么这个函数就是一个闭包。在闭包中,外部函数中的变量或参数可以被内部函数引用,并且在外部函数已经执行完毕后,这些变量或参数的值仍然可以被内部函数访问和使用。具体地说,闭包是由一个函数和它所引用的自由变量组成的
在大多数前后端分离项目,更多的使用JWT来进行接口认证,接下来详细介绍:一,认识JWT1,什么是JWTJWT(Json Web Token)是一种为了在网络应用环境间传递声明而执行的,基于JSON的开放标准,通过数字签名的方式,以JSON对象为载体,在不同的服务终端之间安全的传输信息2,JWT的组成JWT由头部(Header),负载(Payload),签名(Signature) 这3部分构成,其中
一,什么是celery1.1celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。消息中间件Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,
一,LDAP备份迁移1,原服务器上导出备份文件mkdir /opt/ldap /usr/sbin/slapcat > /opt/ldap/ldapdbak.ldif2,目标服务器搭建ldap环境yum install openldap openldap-clients openldap-servers service slapd start systemctl enable slapd sl
netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。下面是一些使用netcat的例子.[
其它VPN还有IPSEC VPN,L2TP VPN几种,PPTP最简便,IPSEC VPN最通用,各个平台都支持,L2TP VPN最安全搭建前提:需要公司it通过nat映射公网1723端口到内网vpn服务器上的1723端口上一,下载与安装pptpdyum install pptpd -y2:编辑配置文件,设置VPN的服务器IP和客户端IP范围# vim /etc/p
软件环境:jenkins+git+gitlab+tomcatjenkins页面如下:java服务在远程服务器是以www普通用户来运行的2,jenkins General配置如下:配置钉钉机器人,和构建保留天数个性化定制3, jenkins构建参数定义4.jenkins构建环境,这个需你下载Password Parameters插件才有的,因为我远程是用www用户发布的,这个的www还有密码就是远端
我们自己编写的发布系统基于Python3.6开发,项目存放在自建gitlab上,地址为ssh://gitlab.xxxx/xxx/xxx.git这里先简单说下gitlab的3中发布方式:HTTP协议是最常用的方式,因为它简单易用,拉取只需要输入账号密码,但相对较慢且安全性较低。SSH协议则更加安全和方便,拉取代码速度更快,适合在需要较高安全性的场景使用。而Git协议则更适合在内部网络环境中使用,因
需求背景:自研运维发布系统前后端不分离结构,虽然功能比较完整,但是由于限制较多且规划不完善导致后续扩展较为困难,故开始对代码进行重构,进行前后端分离开发,而想要实现前后端分离,那么后端flask是必须要了解restful的。REST概念:由Roy Fielding在其博士论文中介绍了web服务的RESET架构方式,并列出这一架构定义的特征:客户端-服务器客户端和服务器之间必须有明确的界线无状态客户
Redis锁可以用于保证对公共资源的操作的一致性。在并发环境中,多个线程或进程可能同时访问同一个资源,这可能会导致资源的不一致性,因此需要一种机制来保证操作的原子性和互斥性。Redis提供了一种分布式锁的实现方式,可以在多个进程之间实现资源的互斥访问。使用Redis锁的基本思路是,在需要访问共享资源的代码段前后添加加锁和释放锁的代码。现在通过Python Multiprocess多进程模拟多个进程
实现目标:将在后台运行(非tty终端环境)的ansible输出结果作为日志转换为html在浏览器显示:技术背景:我司使用的运维平台,使用flask框架搭建。对各个操控主机使用ansible进行操作,采用ansible_runner调用ansible使用方式有两种:运维人员使用flask cli方式在终端操作。业务人员使用web页面在浏览器操作。以上两种方式最大的区别就是ansible的运行环境:在
目前公司游戏客户端资源存放在阿里云oss上,通过配置cdn回源oss实现提高资源访问的速度,安全性,节约带宽,增加用户体验,整个原理和访问链路是这样的:用户通过浏览器或其他客户端发起访问,请求到达CDN 节点。CDN 节点检查本地缓存,如果缓存命中,则直接返回缓存内容给用户,否则进行回源请求。回源请求被发送到您配置的源站地址,即阿里云 OSS。阿里云 OSS 接收到回源请求后,根据请求中的信息获取
基于python3 zabbix api方式,达到批量创建指定机器业务端口的监控项和触发器的创建的效果,目前不支持并发处理,只支持串行处理zabbix-net-server.py 内容 ,放到zabbix服务器上,然后执行python3 zabbix-net-server.py 启动socket监听#!/usr/bin/python3 import socket, sys, time i
1,安装openvpnyum install -y easy-rsa openvpn openvpn-auth-ldap2,配置证书配置EasyRSA#下载EasyRSA 3.0.7cd /opt/ wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz tar xf EasyRSA-3
现在很多ldap文档不太适合centos7下安装使用ldap,于是自己搓了一篇作为留底LDAP基础概念:在开始部署前,要了解一些LDAP知识点:条目 entry区别名/唯一标识名 Distinguished Name / DN属性 attributeLDAP的条目(entry) 是 具有区别名(Distinguished Named/DN唯一标识名)的属性(attribute)。DN是用来引用条目
说明这次是使用的是1个master、2个node为的是模拟搭建环境,真实环境是多master(n>1) 且为奇数安装k8s的节点必须是大于1核心的CPU使用的系统centos7,6的话好多命名空间有很多不支持内核3.1以上才是较好的运行环境,最好是4.4内核以上网络采用Flannel(官方推荐)方式ps: 第2点是因为为了防止单节点故障,高可用一般都为3,5,7 ###资料地址 链接: ht
原小米团队创建的开源项目,后面团队去了滴滴,再后来团队人员陆续解散,现在openfalcon已经不维护,新出的另外一个开源监控产品叫夜莺,这是官网地址:Nightingale - 夜莺云原生监控 (n9e.github.io)一,整个单机搭建,可以参照官方文档单机搭建步骤体验下,官方文档地址是:单机安装 · GitBook (open-falcon.org)二,
zabbix库连接信息,文件名为Conn.pyimport pymysql """ 获取后台数据库连接 """ def CON(): con = pymysql.connect(host='rm-xxx.xxxxx.rds.aliyuncs.com', user='xxx', password='xxxx', db='zabbix'
在官网文档上是这么介绍的具体来说,当用户需要访问一台服务器时,用户会先通过 JumpServer 的网域网关,建立与目标服务器之间的隧道连接。网域网关将用户的请求进行转发,并在转发过程中将目标服务器的真实 IP 地址进行隐藏。这样可以保护目标服务器的安全,同时也可以方便用户在 JumpServer 上统一管理和控制服务器的访问权限。需求:我在内网服务器(10.0.0.29)上搭建了一个jumpse
一,先说下sdk访问整体链路二,我们使用阿里云pts进行压测使用中发现生成的报告中有大量的405请求检查场景列表上的对应场景配置的链路发现确实是POST请求,sdk程序也是写的POST,而且进行单次api调式完全没有问题三,还是从顶层高防排查,果然是因为高防拦住了,只有部分请求请求到sdk服务解决方法:1,打开域名接入对应的防护设置2,打开精准访问控制,设置3,新增规则,添加一条针对pts请求的放
def stop_qsdk_service(xxx, xxx, xxx): """ """ def start_qsdk_service(xxx, xxx, xxx): """ """ def update_qsdk_service(xxx, xxx, xxx): """ """ if __name__ == "__main__": # 不再通过if elif,而是通过这
有两种方式:第一种:使用sersync进行数据实时同步一:sersync介绍sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器二:sersync工作过程在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更
1,安装必要的软件包yum install -y vsftpd libdb-utils2,设置虚拟账号信息(使用文件存储)2.1 创建明文账户信息# vim /etc/vsftpd/vuser_listlinghu123456peng1234562.2 创建数据库账户信息db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_l
背景:随着云服务,云原生的发展,越来越多的企业选择将公司项目迁移到云服务器上,并通过云上购买负载均衡,高防等服务来保证服务的高并发,高可用,那么对于一些实在不向迁移的传统项目,如何来做流量控制来保证服务稳定运行Web应用防护系统部署总结以下,便是配置简单、轻量,几乎对服务器性能不产生影响.多台服务器可以通过Redis实例共享黑名单.动态配置,可以手工或者通过某种自动化的方式设置一.基于lua模块部
钉钉报警脚本#!/usr/bin/env python3 # -*- coding: utf-8 -*- # https://www.aityp.com import requests import json import sys import os import time #import configparser headers = {'Content-Type': 'applicat
关于开启负载均衡检查导致php-fpm进程cpu占用升高的一次记录钉钉发现告警信息sdk-10heroes这台机器负载突然升上来了,然后我们通过命令top发现cpu占用高的都是php-fpm进程,我们用到php-fpm也就是和nginx关联的访问业务,所以我们打开sdkadminapi nginx配置文件cat /etc/nginx/sites-available/sdkadminapi.10he
是这样的,我有一台区服列表服务器,上面搭建有nginx服务,nginx安装目录在/usr/local/nginx下,我准备用system去管理nginx服务cat /etc/systemd/system/nginx.service [Unit] Description=The Nginx HTTP Server After=network.target remote-fs.target nss-l
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号