Debian7通过apt-get升级内核到3.16安装Docker

目前docker-ce 17.03版本,官方要求Debian版本大于wheezy 7.7或者Linux Kernel版本大于3.10,因此需要升级默认Debian 7的3.2.0内核版本。官方说明 添加官方backports源: vi /etc/apt/sources.list deb http://ftp.debian.org/debian/ wheezy-backports main # 或者用下方阿里的源也可以 # deb http://mirrors.aliyun.com/debian-backports/ wheezy-backports main contrib non-free # deb-src http://mirrors.aliyun.com/debian-backports/ wheezy-backports main contrib non-free 然后获取最新包版本: apt-get update && apt-get -t wheezy-backports … “Debian7通过apt-get升级内核到3.16安装Docker”

Read More

Windows下保存git账号密码实现免输入

Windows 10 支持git的凭证管理,但是Window 7之前的还不行。我在个人电脑的虚拟机上有时候懒得输入git的账号密码,可以使用此方法一劳永逸,不过这样账号同时也存在风险。 首先电脑上已经装了Git 工具,在Git Bash或其他终端输入git config –global credential.helper store即可。 也可以用Win+R 键盘打开 运行 窗口,输入 %USERPROFILE% 回车,这时候在该目录下有个.gitconfig的隐藏文件(没有则创建),使用文本编辑器打开,在底下添加如下两行: [credential] helper=store 然后当下次输入账号密码后,Git会自动将信息保存在此目录的.git-credentials文件中,往后就不必重复输入了。

Read More

升级Centos6到Centos7错误记录

入了一个HK的kvm,但是预置镜像都是老版本:centos6,debian7。因为只是为了做个DOCKER REGESTRY和扶墙,想升级下系统版本和内核,折腾了debian7无果,折腾下centos升级版本,再换内核。 网上找了一下,按照说明升级,发现已经不支持从6.x升级到最新的7.3了。 详情链接 WARNING! Do not use this method to upgrade from CentOS 6.7 or higher as several system critical packages are of a higher version number than they are in centos 7 so … “升级Centos6到Centos7错误记录”

Read More

用Python通过Jenkins View视图批量构建Jobs

这里用到了Jenkins的Python Module,所以先安装模块pip install python-jenkins。 废话少说。 # coding:utf-8 import jenkins def build_job_by_view(jenkins_server:jenkins.Jenkins,view_name:str): jobs = jenkins_server.get_jobs(view_name=view_name) for job in jobs: job_info = jenkins_server.get_job_info(name=job.get(‘name’)) if ‘com.cloudbees.hudson.plugins.folder.Folder’ == job_info.get(‘_class’): folder_jobs = job_info.get(‘jobs’) for folder_job in folder_jobs: full_jobname = job_info.get(‘fullName’) … “用Python通过Jenkins View视图批量构建Jobs”

Read More

CentOS 7 升级内核开启 BBR

有两台在美国的 VPS,带宽是千兆, 系统跑的是 CentOS 7,不过一直以来都跑不满百兆.最近看到 Linux Kernel 4.9 版本已经正式发布有段时间了,而谷歌的 BBR 流量拥塞算法已经合并到 4.9 的内核主分支中了, 就记录下升级CentOS 内核试试 BBR 的过程. 首先要有 root 或 sudo 权限. # 安装最新 Linux Kernel 的 CentOS 源 rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm … “CentOS 7 升级内核开启 BBR”

Read More

创建基于Fannel网络的Kubernetes 1.5.4

Kubernetes 是个基于容器的调度编排工具,源于谷歌,现在全球的开发者在为其贡献代码.它极大的方便了分布式部署服务的难点,我认为这应该是将来服务发布部署主流的方向. Kubernetes现在底层调度的是Docker.去年我接触了Docker,Docker的容器给我的感受就是它确实是比 KVM 模式便捷许多,并且 KVM 有的资源分配与环境隔离Docker都已经实现的较为完全了,相比于 KVM,其优势就是任务的快速创建和资源的快速回收.Kubernetes则是在此之上统一管理调度这些任务和资源. 而Kubernetes的难点在于其部署的过程极为复杂,并且网络配置也较为困难.我看了一天,也才略微懂了皮毛. 参考Kubernetes.io 准备环境 需要准备好各个节点的名称,IP,以及需要的docker,etcd,kubernetes等运行程序,全部流程使用root权限,关闭SELinux与Firewalld服务. 节点名称和IP 三个节点,既为master也为node,运行系统为 CentOS 7. Node Name IP node1 192.168.200.21 node2 192.168.200.22 node3 192.168.200.23 将每个节点的Hostname改为对应的Node Name: # node-1 hostnamectl –static set-hostname node1 # node-2 … “创建基于Fannel网络的Kubernetes 1.5.4”

Read More

hiredis异步调用的接口封装

hiredis 是来自 redis 官方的 C 语言驱动(官方没有推出C++版的驱动,其他的都不是官方的,请认准一家),支持所有 redis 功能的调用,并且包含同步与异步模式,效率极高。 下载最新的稳定版0.13.3,使用make生成静态库和动态库,选择是否install安装到系统环境中。我通常直接将库放到项目中,指定include路径,这样可以减少项目中开发的环境不一致问题。 再要求高并发的项目中,应该尽量避免使用同步的方法,虽然同步的编程难度相比于异步而言要低很多。hiredis 中同时提供了同步和异步的调用接口,其代码质量十分优秀。 使用异步的接口需要导入头文件hiredis.h和async.h,最后还要导入异步事件的驱动头文件,hiredis 提供了对 ae,libev,libevent,libuv,qt 还有 macosx 异步库的支持,相应头文件在 adapters 文件夹中,这里用 uv 库. 头文件如下: #include “hiredis/hiredis.h” #include “hiredis/async.h” #include “hiredis/adapters/libuv.h” typedef struct redisConfig { char addr[256];//the full … “hiredis异步调用的接口封装”

Read More

深入WebSocket协议

无论是 HTTP 还是 HTTPS协议,它们一出场就已经定死了只能是短连接,而诸如基于 Jquery 或 Ajax 靠定时器轮询的请求来实现长连接的方法却会加大服务端的资源消耗,只能是旁门左道。即便服务端有 HTTP Keepalive 这种连接复用,仍旧无法避免一段空闲时间后就断开连接的尴尬,尤其是中间还有不可预知的网关也可能会关闭这个连接,并且服务端一旦配置不当,TCP长连接在服务端未能及时释放造成资源消耗加剧,就会出现类似雪崩效应。 并且基于短连接,HTTP/HTTPS 协议就产生了一个巨大缺陷,即请回只能由客户端发起,服务端只能做回应,不能做主动推送,因为服务端不知道客户端何时会将连接关闭(TCP是双工的,而各个浏览器的实现也不一样)。 因此就急需一种能够让浏览器支持并兼任HTTP/HTTPS协议的TCP长连接。 时代造就英雄,这种环境下便有了WebSocket。 WebSocket 协议在2008年诞生,由谷歌提出(话说Ajax也是谷歌提出的),是 HTML5 种的一个协议规范,2011 年成为国际互联网标准规范 RFC 6455,跟随着 HTML5 的步伐一同面世,主流浏览器早已全部支持了。 WebSocket 的优点有: 底层基于 TCP 实现的长连接协议,双工的性质使得服务端能主动推送信息 同样可以使用 80 和 443 端口,协议转换通过 HTTP/HTTPS … “深入WebSocket协议”

Read More