-
SaltApi安装使用
Salt-API安装配置及使用
SaltStack 官方提供有REST API格式的 salt-api 项目,将使Salt与第三方系统集成变得尤为简单。本文讲带你了解如何安装配置Salt-API, 如何利用Salt-API获取想要的信息。
具体使用请参考:salt-api手册
-
Saltstack安装使用
什么是Saltstack ?
Saltstack 是一个具备puppet 与func 功能为一身的集中化管理平台,saltstack 基于python实现,功能十分强大,各模块融合度及复用性极高,官方极力推荐作为云计算平台的基础架构。
-
Ycm,我的自动化运维之路
我的运维之路
最开始的运维,就是在终端连接一台主机,远程操作。其次就是一些脚本,解放了重复。之后就是各种python脚本,python提供很多第三方库,可以提高运维效率。
接触到自动化运维工具:ansible,pupple,puppet,Func, Saltstack等一系列监控工具
但所有的资源都是分散的,所以,就要做一款自己的运维平台
-
Python GIL那些事
GIL是什么?
GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。
- CPython实现中的GIL?
Global Interpreter Lock
In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
一个防止多线程并发执行机器码的一个Mutex
- CPython实现中的GIL?
-
Python的内存管理机制
-
Redis基础篇
Redis
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
-
初探node.js
什么是node.js
node.js != Javascript
事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。- Node.js 是构建于Chrome的JavaScript引擎的
Google的浏览器Chrome,有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎可以被独立出来,该解释器拥有另一个独特特征;可以下载该引擎并将其嵌入任何 应用程序。Node.js就是建立在V8之上的。这也是为什么Node.js会运行的如此之快。对于开发者来说,有几个好处:- js完全通用
- v8的发展影响着node.js
- Node.js 是构建于Chrome的JavaScript引擎的
-
python编写一个端口扫描器
编写一个端口扫描器
- 任何一个靠谱的网络攻击,都是起步于侦察。所以攻击服务器,也就是检查服务的漏洞。我使用的两种方式无非是web注入和端口扫描。所以先编写一个端口扫描器
- 端口扫描是基于TCP的,一共分为三个步骤,分别编写三个方法:
- 处理数据,也就是处理用户输入数据的,此处我们定义为main函数,用来获取主机名和端口
- 将主机名转换为对应的IPv4互联网地址,采socket.gethostbyname(hostname),获取到IP,然后调用处理端口扫描的函数.定义为portScan(tgtHost,tgtPorts)
- 端口扫描,也是就TCP的全连接,对目标地址和端口进行连接。最后为了确定该端口上运行的什么服务,我们还会发送垃圾信息,并读取返回的Banner.函数定义为connScan(tgtHost,tgtPort)
-
C语言实现ping
学习C网络编程笔记
ping 命令
ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。
1234ping www.baidu.comPING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.64 bytes from 180.97.33.107: icmp_seq=1 ttl=50 time=42.2 ms64 bytes from 180.97.33.107: icmp_seq=2 ttl=50 time=37.4 ms
-
浅析docker实现思想
从虚拟化的种类和层级说起
- cpu虚拟化:可以模拟不同CPU,例如bochs
- 完全虚拟化:只能模拟同样CPU,但是可以执行不同系统,例如vmware
- 半虚拟化
- 硬件虚拟化:可以当作获得硬件加速的完全虚拟化
- 系统虚拟化:host和guest共享一样的内核,例如Openvz
- 语言沙盒:只能在语言的范围内使用
虚拟化的级别越偏底层,速度越慢,用户越难察觉到虚拟化的存在。 虚拟化的级别越偏上层,速度越快,用户越容易感知。也就是虚拟幻的包装,如何一个虚拟化完全包装底层,呈现给用户一个新的操作系统,那么用户会知道他用的什么吗?
- cpu虚拟化和完全虚拟化时,用户几乎可以阿不察觉到虚拟化的存在
- 半虚拟化时,guest内核必须存在补丁
- 系统虚拟化时,用户不能控制自己的内核
- 语言沙盒时,用户没有使用api的自由