10 2017 档案
摘要:你将学到什么 虚拟机的Ping包是如何出外网的 DevStack环境准备 | 节点 | 硬件配置| 网络配置 | 类型 | 操作系统 | | | | | | | | DevStack | 4G 2CPU 50GB | 2张网卡(NAT模式) | VMWare虚拟机(开启CPU虚拟化) | CentO
阅读全文
摘要:开发记录 状态魔法使用 下面是服务器接收到C_LoginToServer后产生的日志,角色在登入后使用了敏捷提升、力量提升、加速术和神圣魔法武器 [Send C] 0000: 79 04 00 40 30 00 00 00 y..@0... [Send Encrypt C] 0000: fe af
阅读全文
摘要:开发记录 道具使用 能够喝药水、使用武器、使用装备、选择箭矢 Java版本的道具使用将所有逻辑都写在了一个函数中,不方便后期添加和调试,于是我重构了下,道具使用分为材料道具使用(etcitem)、武器道具使用(weapon)和防具道具使用(armor) C_ItemUse 道具使用主流程,做一些共性
阅读全文
摘要:开发记录 角色登入 选择角色进入游戏并能走动(处理来自客户端的登入请求 ) 经过测试其中角色进入游戏需要发送的最少数据包及顺序如下: S_OPCODE_HOUSEMAP S_OPCODE_LOGINTOGAME 4个空字节 S_OPCODE_OWNCHARSTATUS S_OPCODE_MAPID
阅读全文
摘要:开发记录 角色创建 完成数据库的插入 客户端的正常显示 Object 天堂对象抽象: 属性: 对象资源唯一标识 对象所在地图 对象在地图内的位置 方法: 更新画面内的对象 计算与其他对象的距离 响应其他对象的对话而采取的行为 响应其他对象而采取的行为 需要实现: 全局唯一标识的获取:IdFactor
阅读全文
摘要:开发日志 (一)游戏服务器主体框架 最初想法是使用 的`StreamServer coroutine`的方式来替代源码的多线程方式,但是本身对python语言不太熟悉,怕影响后期的调试,所以暂时还是和源码保持一致使用原始的多线程。相关文件:Server.py、GameServer.py、Client
阅读全文
摘要:硬件环境 角色 类型 操作系统 配置 Server VMWare虚拟机 Windows 7 内存:2GB 磁盘:20GB Client VMWare虚拟机 Ubuntu 16.04 TLS 内存:1GB 磁盘:30GB 软件环境 Server节点配置 网络配置 # vim /etc/network/
阅读全文
摘要:问题描述 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突,具体为: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新; 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。
阅读全文
摘要:环境配置 | 节点 | 配置 | 类型 | 操作系统 | | | | | | | Sched | 2G 2CPU 50GB ens3= 192.168.200.11 | KVM虚拟机 | CentOS 7 | | Nova | 4G 2CPU 50GB ens3= 192.168.2000.12 |
阅读全文
摘要:基础环境 安装docker 验证安装 配置Kibana 参考文档 "Docker Logging via EFK (Elasticsearch + Fluentd + Kibana) Stack with Docker Compose"
阅读全文
摘要:filter初级 Logstash安装 ruby语法基本使用 filter高级用法 grok插件 自定义正则: 将需要提取的正则表达式用 括起来,然后使用 的固定语法格式给匹配项打上标签 内置正则: 使用 "内置正则地址" 如果想要给一串很长的字符的很多字段都打上标签,即多个自定义组合的情况,那么正
阅读全文
摘要:环境配置 | 节点 | 配置 | 类型 | 操作系统 | | | | | | | Sched | 2G 2CPU 50GB ens3= 192.168.200.11 | KVM虚拟机 | CentOS 7 | | Nova | 4G 2CPU 50GB ens3= 192.168.2000.12 |
阅读全文
摘要:基本用法 基础环境 | 操作系统 | 硬件配置 | | | | | CentOS 7 Server | 磁盘:40GB 内存:8GB 网卡:ens3(外网) | 网络配置 部署Collectd 安装Collectd 配置Collectd 高级用法 输出信息到kafka 下载collectd源码包 修
阅读全文
摘要:使用docker部署kafka 基础环境 | 操作系统 | 硬件配置 | | | | | CentOS 7 Server | 磁盘:40GB 内存:8GB 网卡:ens3(外网) | 网络配置 基础环境配置 安装PIP 安装PIP编译环境 安装docker 配置docker环境 参考文档 "Land
阅读全文
摘要:参考文档 "haproxy使用详解" "haproxy配置范例" 配置范例 开启日志 TCP代理配置 基本配置说明 全局配置段 global 全局设置:定义haproxy进程管理安全及性能相关的参数 log 127.0.0.1 local0 日志输出配置,所有日志都记录在本机,通过local0输出
阅读全文
摘要:基本实验 参考文档 "博文地址" 环境拓扑 下面使我们要实现的负载均衡集群图示 主节点地址: 92.0.0.11 从节点地址: 92.0.0.12 共享虚拟地址:92.0.0.8 下面是负载均衡集群可能出现的两种场景(当主节点故障时,将从图1切换到图2) Application服务可以部署到其他主机
阅读全文
摘要:常用方法 ternary 根据结果的真假来决定返回值 vg_result.rc不为0返回dir,否则返回lvm if语法 根据结果的真假来决定返回值 when中使用jinja2 when表达式中不建议直接使用 {{}} 的方式来获取变量值,如果变量是字符串可以使用管道操作 | string 来获取变
阅读全文
摘要:你将学到什么 如何使用playbook 如何编写playbook 如何使用roles PlayBook使用 基础环境 简单的playbook 执行playbook 样例playbook 下载样例 修改样例配置文件 执行playbook 出错处理 问题1 解决办法 问题2 解决办法 roles使用 r
阅读全文
摘要:文件操作 文件创建 file 用于设置文件/链接/目录的属性,或者删除文件/链接/目录 修改文件 lineinfile 用于检测文件是否存在特殊行或者使用后端正则表达式来替换匹配到的特殊行 replace lineinfile的多行匹配版本,此模块会在文件中插入一段内容,并在内容开始和结束位置设置标
阅读全文
摘要:你将学到什么 如何配置ansible运行环境 如何执行ansible命令 如何配置Inventory 环境 | 角色 | 操作系统 | 网络地址 | | | | | | 管理主机 | ubuntu 14.04 TLS | 192.168.200.250 | | 托管节点 | ubuntu 16.04
阅读全文
摘要:使用脚本自动安装 阿里云的安装脚本 手动安装 添加 yum 源 虽然 CentOS 软件源 中有 Docker,名为 ,但是不建议使用系统源中的这个版本,它的版本相对比较陈旧,而且并非 Docker 官方维护的版本。因此,我们需要使用 Docker 官方提供的 CentOS 软件源。 执行下面的命令
阅读全文
摘要:你将学到什么 什么是cgroup 如何使用cgroup Cgroup简介 CGroup是Control Groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的硬件资源的机制。 Cgroup子系统 具体的资源管理功能被称为CGroup子系统或控制器,比如CPU 时间、系统内存
阅读全文
摘要:V2 安装删除脚本 设置私有仓库目录环境变量 删除镜像 参考文档 "burnettk"
阅读全文
摘要:基本操作命令 列举镜像 列举容器 运行容器 查询容器资源使用情况 终止容器 进入容器 删除容器 删除镜像 搜索镜像 使用主机网络 高级用法 使用本地仓库 上传镜像到本地仓库
阅读全文
摘要:你将学到什么 如何安装LXC 如何创建LXC容器 如何管理LXC容器 如何查询进程所属Namespace 如何给LXC容器添加网卡 如何限制LXC容器资源 环境 x64 Ubuntu 14.04.3 LTS 安装LXC 创建LXC容器 容器配置样例 管理LXC容器 Namespace查询 LXC容器
阅读全文
摘要:服务端 服务器环境 已经安装过qemu img的32位ubuntu 服务端配置 创建一个文件系统为ext3的qcow2文件 不需要加载nbd模块 发布文件 客户端 客户端环境 安装了libvirt的64位CentOS 客户端配置 加载nbd模块 映射服务器的块设备到本地nbd设备 挂载本地nbd设备
阅读全文
摘要:Libvirt加密磁盘使用 创建加密磁盘 进入libvirt默认存储池目录 创建加密磁盘 刷新默认存储池 创建密钥 使用xml文件创建密钥 cat volume secret.xml Super secret name of my first puppy os.qcow2 virsh secret
阅读全文
摘要:Fedora环境 编译环境 操作系统: 64位 Fedora23 下载源文件 "spice gtk" 、 "spice protocol" 安装依赖 设置环境变量 编译spice protocol 编译spice gtk ubuntu环境 方法一 编译环境 操作系统: 64位 Ubuntu 14.0
阅读全文
摘要:序言 通过Virt Manager研究学习Spice gtk的Python方法 你将学到什么 Virt Manager研究 显示代码定位 首先我们使用Virt Manager来观察桌面连接窗口 然后我们使用 glade 打开 Virt Manager 源码目录下的 ui 目录下的文件进行比对,发现
阅读全文
摘要:问题描述 有些时候,由于网络存在问题,虚拟机无法获取到IP地址,无法使用spice或vnc来连接虚拟机,但是又需要连到虚拟机来排查故障 解决办法 编辑虚拟机配置 设置xml命名空间 修改网络类型 将虚拟机的3389端口重定向到主机的5555端口 使用远程桌面连接
阅读全文
摘要:DBus调试命令 查询连接名 查询连接对象路径 监控dbus消息 实际应用 问题描述 分析过程 首先看下出错的对应代码 查询下对应连接 连接是存在的,接着我们查询下对应方法 我们接着来看下dbus收到了哪些消息 我们手动测试下列举虚拟机命令 我们看下连接点org.freedesktop.machin
阅读全文
摘要:Libvirt介绍 "参考资料" Libvirt学习 通过virsh了解libvirt api的调用方式 通过virHypervisorDriver了解libvirt api的实现 virsh代码阅读 通过阅读virsh代码我们能够了解libvirt api的作用以及调用方法 |文件名|对应vshC
阅读全文
摘要:外部快照的创建 实验环境 CentOS 7 升级QEMU CentOS 7自带的qemu版本太低需要升级 创建外部快照 查询主机上的虚拟机 查询虚拟机快照列表 查询虚拟机的磁盘 创建外部快照 外部快照文件 快照文件 拍摄快照后会自动生成对应的快照文件,快照文件的根元素 元素记录了参与快照的磁盘信息;
阅读全文
摘要:Windows "参考文档" 下载virtio驱动 "下载地址" 如果是在Fedora或CentOS环境下,可使用yum的方式下载驱动 安装virtio驱动 将iso文件挂载到虚拟机上 进入虚拟机并更新驱动 |驱动名称|设备名称|说明| | | | | |Balloon|PCI standard R
阅读全文
摘要:符号说明 $ 表示在用户模式下执行命令 表示在root模式下执行命令 表示注释用于解释接下来一条命令的作用 更新环境源 设置阿里源 编译spice 安装编译依赖 编译python 设置环境变量(二选一) 编译gcc 编译glib 编译spice protocol 编译spice 编译qemu 安装编
阅读全文
摘要:Winodws版本 编译环境 下载VSS SDK的setup.exe "下载地址" 提取VSS SDK头文件 将下面的代码保存成extract vsssdk headers.sh脚本,然后放入setup.exe所在的 目录,然后执行 安装交叉编译依赖 下载qemu源文件 "下载地址" 安装依赖 32
阅读全文
摘要:部署OVN实验环境 同OVN学习(一) 网关 在L3网络基础上部署网关 添加L3网关 网关与外网连接 设置SNAT
阅读全文
摘要:参考文档 "OVN学习系列参考博文" 部署OVN实验环境 网络拓扑 安装软件包 配置OVN L2网络 定义逻辑网络 创建一个逻辑交换机,然后添加两个交换机端口,并为端口设置物理地址 伪造虚拟机 创建网络命名空间,并在br int上添加端口,然后将端口添加到命名空间,最后通过设置端口的MAC地址和网卡
阅读全文
摘要:部署OVN实验环境 同OVN学习(一) L3网络 创建逻辑交换机和路由 创建路由端口 创建交换机 设置DHCP 创建虚拟机 测试
阅读全文
摘要:参考文档 "朱双印个人日志" netfilter/iptables架构 | 位置 | 钩子函数/规则链 | 说明 | | | : : | : : | | 数据包刚刚进入网络层的位置 | PREROUTING | 在这里处理目标地址转换 | | 经过路由判断,数据包从内核流入本机用户空间的位置 | I
阅读全文
摘要:基础用法 系统配置 命令使用 显示当前正在被追踪的流 监控流事件 高级用法 L命令实现 问题处理 在容器中运行conntrack命令报错 参考资料 "conntrack" "iptables tutorial" "netfilter官网"
阅读全文
摘要:安装OpenStack(allinone)环境 安装OVN组件 开启OVN 配置OVN 删除neutron默认配置 重启neutron服务 验证安装
阅读全文
摘要:安装OVN组件 控制节点 计算节点 扩展知识 OVS所有服务都使用/usr/share/openvswitch/scripts/ovs ctl脚本启动 问题处理 ovsdb server启动异常,绑定端口失败
阅读全文
摘要:概述 ovn controller是OVN在虚拟机上的agent,北向连接OVN的南向数据库,学习OVN的配置和状态,并使用虚拟机的状态来填充PN表以及Binding表的Chassis列;南向连接openflow控制器ovs vswitchd,使用ovsdb server来监控和控制Open vSw
阅读全文
摘要:下载源码 下载依赖包 编译OVS 编译OVS内核模块 故障处理 ovsdb server服务启动失败
阅读全文
摘要:说明 [Record]就是行对应的_uuid [if exists]当值不存在的是否会报错而不是返回False 基本信息查询 列举数据库 列举数据库表 列举数据库列 列举数据库数据 列举数据库特定列数据 查询数据库表项值 设置数据库表项值 删除数据库表项值 添加数据库表项 清空数据库表行
阅读全文
摘要:基本概念 基本命令 ovs vsctl 网桥查询 端口查询 接口查询 端口、接口归属查询 ovs ofctl 查询网桥流表 查询网桥信息 ovs dpctl Datapath统计信息查询:hit表示datapath命中数,missed未命中,lost表示没有传递到用户空间就丢弃了 查询端口详细统计信
阅读全文
摘要:SDN & OpenFlow & Open vSwitch SDN SDN(软件定义网络)是一个概念、是一个思想、一个框架、是一种网络设计理念,它有三个特征 控制平面与转发平面分离 控制平面集中化 网络可编程 OpenFlow OpenFlow是控制平面和转发平面之间的通讯协议,类比编程中的概念,S
阅读全文
摘要:性能检测工具安装 基本命令 测试 测试环境网络拓扑 br ex用于ssh连接,br mgmt上网卡用于测试 不启用GSO/GIO 网卡配置 Host A | 选项 | 状态 | | | | | tcp segmentation offload | off | | generic segmentati
阅读全文
摘要:概要 apt使用本地源,pip使用本地源 网络环境 物理机环境 | 网络名 | 网络地址 | VLAN | | | | | | br ex | 192.168.200.250/24 | 90 | | br mgmt | 92.0.0.100/24 | 92 | ansible控制主机配置 | 主机类
阅读全文
摘要:基本功能部署 基础环境 | 角色 | 操作系统 | 硬件配置 | | | | | | Depoly | CentOS 7 Server | 磁盘:40GB 内存:8GB 网卡:ens3(内网) ens4(外网) | | Sched | CentOS 7 Server | 磁盘:40GB 内存:8GB
阅读全文
摘要:Cinder环境 "Cinder配置" 重新创建卷组cinder volumes Openstack 问题处理 cinder volume服务启动失败 根据日志可以看出是openstack cinder volume.service服务没起来,因为我前面删掉了原本的loop设备,所以导致这个问题,我
阅读全文
摘要:日志文件说明 Nova日志 OpenStack计算服务日志位于/var/log/nova目录下(此目录在Controller和Compute节点都存在),默认权限拥有者是nova用户 | 文件名 | 作用 | | | | | nova compute.log | 虚拟机实例在启动和运行中产生的日志
阅读全文
摘要:msitools学习 "msitools使用" "wixl heat使用" 概述 打包程序就是把程序依赖的所有库文件和可执行文件以及其他一些资源文件按照源目录结构进行压缩,知道自己的程序依赖哪些库是简单的,但是要知道依赖的库依赖哪些库就非常复杂了,所以我们需要使用msitools,它为我们预置了很多
阅读全文
摘要:制作rpm包 方法一:checkinstall 方法二: rpmbuild 安装rpm工具 创建spec文件 编写spec文件 编译rpm包 参考资料 "RPM 打包技术与典型 SPEC 文件分析" "RPM包rpmbuild SPEC文件深度说明" "How to create an RPM pa
阅读全文
摘要:制作deb包 方法一:checkinstall 的原理就是将 的内容放到一个临时目录然后打包,只要能执行 就能创建deb包,如果代码已经 了,需要先执行 ,不然会出现只打包库文件的软连接而没有打包库文件的情况。通过 可以查看deb包的文件是否正常。 设置打包环境 制作deb包 检查deb包 方法二:
阅读全文
摘要:CMake使用 基础CMakeList.txt 使用pkg config的CMakeList.txt 动态库CMakeList.txt 执行shell命令
阅读全文
摘要:工程地址 "automake语言国际化" 最初工程目录结构 源文件剖析 将工程改造成automake 运行autoscan & 修改configure.ac文件 与中级篇不同点 使用AM_GLIB_GNU_GETTEXT宏代替AM_GNU_GETTEXT宏 使用PKG_CHECK_MODULES获取
阅读全文
摘要:工程地址 "automake语言国际化" 最初工程目录结构 源文件剖析 $ cat main.cpp include include include "config.h" include "gettext.h" define _(String) gettext (String) int main()
阅读全文
摘要:工程地址 "https://github.com/silvermagic/automakeDev.git" 最初工程目录结构 $ vim main.cpp $ vim src/main.cpp ls l total 12 drwxrwxr x. 2 fedora fedora 4096 Jun 23
阅读全文
摘要:说明 从零开始编写automake工程非常复杂也没有必要,我们只要能看懂开源项目的automake即可,然后根据自己实际情况进行修改即可,下面给出两个比较好的参考项目,其中 spice gtk 涵盖了使用libtool生成动态库的方法,后面所有的教程都是根据这两个模板进行改编 "spice gtk"
阅读全文
摘要:Git Submodule使用 创建子模块 更新submodule代码 git submodule update init recursive 克隆submodule代码到对应子目录 更新子模块在主模块中的commit id 在子模块目录通过commit或pull等操作修改commit id,然后在
阅读全文
摘要:Git分支管理 获取远程目录 git clone ssh://UserName@RemoteIp/ProjectPath 克隆远程git目录 获取远程仓库分支 git clone https://github.com/openstack/taskflow.git b branch 获取远程对应分支
阅读全文
摘要:Git查询 查询分支 git branch 查询本地分支 git branch a 查询所有分支 $ git branch a master remotes/origin/HEAD origin/master remotes/origin/master $ git branch master 查询仓
阅读全文
摘要:Git配置 git配置文件~/.gitconfig 忽略文件.gitignore
阅读全文
摘要:Git提交与恢复 提交修改 git add all 提交所有修改文件 git add file file 提交部分修改文件 $ git status On branch master Your branch is up to date with 'origin/master'. Changes to
阅读全文
摘要:方法一 缓存deb包 搭建repo服务 创建GPG KEY 导出key文件 生成Packages.gz、Release、InRelease、Release.gpg文件 设置软件源 问题处理 失败 解决办法 方法二 使用apt cacher ng制作缓存 安装apt cacher ng 修改软件源 下
阅读全文
摘要:rpm安装包管理 | 指令 | 说明 | | | | | rpm i XX.rpm | 安装XX.rpm软件包 | | rpm qa XX | 查看XX软件包安装的所有文件 | | rpm e XX | 卸载XX软件包 | yum管理软件 | 指令 | 说明 | | | | | yum search
阅读全文
摘要:命令 获取系统安装包的编译源码及脚本 远程连接windows 指定程序运行CPU 配置 SSH登入很慢 设置阿里源 关闭SELINUX
阅读全文
摘要:SSL介绍 公钥私钥就好比箱子和钥匙,通信双方没人都有一个箱子和一把钥匙,自己的箱子只有自己的钥匙才能打开,而且箱子不能暴力拆开(公钥加密的内容不能暴力破解) SSL通信简单介绍 角色: 浏览器:浏览器公钥(箱子A) 浏览器私钥(钥匙A) 服务器:服务器公钥(箱子B) 服务器私钥(钥匙B) 场景:
阅读全文
摘要:服务端 服务器环境 已经安装过qemu img的32位ubuntu 服务端配置 安装iscsi服务端 编辑配置文件 启动服务 客户端 客户端环境 安装了libvirt的64位CentOS 客户端配置 安装iscsi客户端 寻找服务器发布的块设备 链接块设备 查看并挂载块设备 删除设备 总结 回到服务
阅读全文
摘要:Ubuntu IP配置文件样例 设置静态IP+DNS 关闭NetworkManager,设置 网桥配置 VLAN配置 指定网卡名 关闭系统命名规则 if grep q 'net.ifnames=0 biosdevname=0' /etc/default/grub; then \ echo "noth
阅读全文
摘要:命令行创建设置用户密码 查询usb设备信息 查询usb设备对应的/dev文件 查询文件或者设备进程占用情况 查询磁盘使用情况 find多文件名匹配 文本输出去重 连接/监听端口 下载文件
阅读全文
摘要:LVM框架 LVM实验环境准备 创建一个128MB的文件模拟磁盘 [centos@centos lvm]$ dd if=/dev/zero of=./disk.img count=128 bs=1MB 记录了128+0 的读入 记录了128+0 的写出 128000000字节(128 MB)已复制,
阅读全文
摘要:Wheel包制作 Ubuntu "参考文档" 下载pip2pi 搭建apache2服务 批量下载软件包 建立索引 单独下载软件包并更新索引 测试pip源 问题处理 MySQL python安装报错 解决办法 Psycopg2安装报错 解决办法 Xattr安装报错 解决办法 CentOS 下载pip2
阅读全文
摘要:创建模板文件 cat example.txt example.txt <!pattern) | 非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反.例如"(?<!2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Wind
阅读全文
摘要:基础知识 条件判断 文件类型判断 | 测试选项 | 作用 | | | | | b 文件 | 判断该文件是否存在,并且是否为块设备文件(是块设备文件为真) | | c 文件 | 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) | | d 文件 | 判断该文件是否存在,并且是否为目录(
阅读全文
摘要:需求说明 在只有外网地址的机器上也能正常访问内网地址 配置过程 环境网络信息 | 网络名称 | 网络地址 | | | | | 外网 | 192.168.200.0/24 (网关:192.168.200.251) | | 内网 | 92.0.0.0/24 | SNAT服务器信息 开启转发 添加转发规则
阅读全文
摘要:deb安装包管理 | 指令 | 说明 | | | | | dpkg I XX.deb | 查看XX.deb软件包的详细信息,包括软件名称、版本以及大小等 | | dpkg c XX.deb | 查看XX.deb软件包中包含的文件结构 | | dpkg i XX.deb | 安装XX.deb软件包 |
阅读全文
摘要:命令 获取系统安装包的编译源码及脚本 查询端口被占用的进程 配置 配置阿里源 SSH允许ROOT登入 切换成GNOME界面 切换窗口管理器 apt源更新报错 启动VNC服务 时间同步 Ubuntu Server添加中文支持 软件自动更新设置 安装rabbitmq server
阅读全文
摘要:VIM模式 命令模式 : 控制光标的移动,以及字符、行或块的删除复制,按下 i 进入输入模式,按下 : 进入底行模式(vim打开文件后进入的就是命令模式) 底行模式 : 可执行VIM命令进行保存、高级替换、显示行号或配置环境等 输入模式 : 只有此模式可以输入文字,按 ESC 回到命令模式 基本操作
阅读全文
摘要:"参考文档" 环境准备 更换阿里源 安装web服务 下载软件包及其依赖 制作软件源 设置软件源
阅读全文