Django为多个环境设置配置文件
前言在Django开发中, 每个部署环境是不一样的, 那我们如何去管理Django的配置文件呢?
新建配置文件在项目根目录新建 myproject/settings.py 当做我们的配置文件入口
12345678910111213141516171819202122232425# -*- coding: utf-8 -*-import os"""请不要修改该文件如果你需要对settings里的内容做修改,config/default.py 文件中 添加即可"""APP_ENVIRONMENT = os.environ.get('APP_ENV', 'development')ENVIRONMENT = { 'development': 'dev', 'testing': 'stag', 'production': 'p ...
Active Choices pipeline 使用
Active Choices 插件如何在 Pipeline中使用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123properties([ parameters([ [$class: 'ChoiceParameter', choiceType: 'PT_SINGLE_SELECT', description: 'Select the Env Name from the Dropdown List' ...
Django日志配置
前言用Django REST framework来构建Restful API,需要记录用户请求的时间、方法、数据、响应状态等
实现方法用Python的logging模块
在配置文件中写入settings
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788# LOGGING settingLOG_DIR = BASE_DIR + "/logs"if not os.path.exists(LOG_DIR): os.mkdir(LOG_DIR)LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { ...
Coding Hook ervice 实现CiCd
前言
如何通过Coidng Service ook 实现CiCd
实现方法
1,Coding 创建新的Service Hook 类型为Jenkins
2,选择触发的事件类型
3,选择发送方式
12345678910111213url http://user:pass@jenkins:8080/generic-webhook-trigger/invoke #jenkins 安装generic-webhook-trigger 插件token #定义在job中的token值 jenkins 根据这个值来区分不同的job#自定义请求体,jenkins从里面取到构建参数请求参数和请求头参数不填写{ "url" : "${project.url}", "name" : "${project.display_name}", "Project_name" : "${project.name}", ...
Python-jenkins使用
一、背景公司项目容器化,需要svn提交的时候触发jenkins job去打包编译,一般是使用shell脚本调用curl命令去发送post请求触发job的构建,这种方式比较繁琐,很容易出现因格式不正确导致触发任务失败,而且这种方式不能帮助我们获取更多的关于job的信息以便于我们后续对job的状态进行跟踪。python-jenkins它几乎涵盖了大部分Jenkins的操作,大大方便了我们在后台进行对Jenkins的一些列操作。
Python-Jenkins官网:https://pypi.python.org/pypi/python-jenkins/
Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html
二、操作步骤
2.1 安装Python-jenkins
1[root@node1 ~]# pip3 install python-jenkins
123456789101112131415161718#!/usr/bin/env python3# -*- coding:utf-8 -*-i ...
Python-Prometheus
使用Prometheus-client模块来监控服务器端口,ssl证书到期时间
实现过程
1234567891011121314151617181920212223242526#!/usr/bin/env python3# -*- coding:utf-8 -*-import sysimport ossys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))os.environ['USER_SETTING'] = 'config.settings'from src.script import run #导入入口文件from flask import Response, Flask,render_templatefrom lib.conf.config import settings #导入配置模板app = Flask(__name__,template_folder='../templates') @app.route ...
Python进程间通讯,实现RPC调用
前言如何通过 multiprocessing 模块实现Python的RPC
实现方法首先, 我们需要实现一个RPC的注册处理类
改类实现了方法注册和保存功能, 通过connect对象,去循环接收执行函数并返回
12345678910111213141516171819202122# RPCHandler.pyimport pickleclass RPCHandler: def __init__(self): self._functions = {} def register_function(self, func): self._functions[func.__name__] = func def handle_connection(self, connection): try: while True: # 接收一条消息 func_name, args, kwargs = pickle.loads(connection.re ...
paramiko连接多层跳板后的机器
前言公司的机器不可能总是公网开放, 而使用这些机器则需要跳板机, 那我们使用paramiko时如何加上我们的跳板机呢?
案例
123456789101112131415161718192021222324252627282930313233from paramiko import SSHClient# Set up the proxy (forwarding server) credentialsproxy_hostname = 'your.proxy.hostname'proxy_username = 'proxy-username'proxy_port = 22# Instantiate a client and connect to the proxy serverproxy_client = SSHClient()proxy_client.load_host_keys('~/.ssh/known_hosts/')proxy_client.connect( proxy_hostname, port=proxy ...
关于mysqldump使用中--skip-opt的一些坑
前言我们在备份线上数据的过程中, 经常使用mysqldump这个工具.而这个工具在备份过程中默认是开启锁表的--opt默认开启的, 这导致在备份大数据的时候会影响到线上业务.为了防止这个,一般我们会在备份中使用--skip-opt 取消这个默认选项来备份.
mysqldump选项之skip-opt实际上如果使用了这个选项, 默认也会关闭如下功能
123--add-drop-table, --add-locks,--create-options, --quick, --extended-insert,--lock-tables, --set-charset, and --disable-keys
选项 --create-option 看起来比较不起眼:
12-a, --create-options Include all MySQL specific create options.
如果关闭了它, 备份出来的表结构就会少了
12AUTO_INCREMENT --PK字段的AUTO_INCREMENT属性以及数据表的AUTO_INCREMENT属性都会丢掉ENGINE=I ...
镜像构建流水线
前言每个项目都需要构建镜像, 但是假如说每个镜像配合一个Jenkins任务,那未免有点不太合适.
所以重新写了一个接入指南.
项目容器构建接入指南要求
Dockerfile 必须在git仓库的根目录
必须添加名称为BuildEnv.groovy的配置文件
需要将xxx构建用户加入项目,并赋予可读权限
公司正在使用的仓库,以及对应的credentialsId
docker-registry.xxxx.com: 71983ff4-4a95-4b27-a7a8-f09f62dd7577
docker-registry.aaaa.com: 71983ff4-4a95-4b27-a7a8-f09f62dd7577
Webhook地址地址: xxx.aaa.com
可接受事件类型:
Tag push events
接入流程
在此页面获取自己上传仓库的 credentialsId
赋予xxxgit用户可读权限
创建配置文件, 修改响应的配置
在gitlab中配置,webhook地址选择对应可接入类型.
BuildEnv.groovy 配置文件格式1234567891011121314151 ...