Monkey

Think! And Think Again


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 站点地图

  • 公益404

  • 搜索

未命名

发表于 2016-12-13 |

使用travis来做持续集成.md

参考文档

未命名

发表于 2016-12-13 |

inventory 处理

class Runner(object):

def __init__(self,
    host_list=C.DEFAULT_HOST_LIST,      # ex: /etc/ansible/hosts, legacy usage
    )


self.inventory  = utils.default(inventory, lambda: ansible.inventory.Inventory(host_list))

utils 中

def default(value, function):
‘’’ syntactic sugar around lazy evaluation of defaults ‘’’
if value is None:
return function()
return value

如果 inventory 存在,就使用inventory变量里面的,如果没有,就调用哪个ansible.inventory.Inventory 函数。

ansible 结构
inventory 目录中 ini.py 是解析 ini文件
script.py 是解析 可执行文件

如果是str 比如: “/etc/ansible/hosts” 进入 ini.py 文件

class InventoryParser(object) 类
def _parse(self):

self._parse_base_groups()
self._parse_group_children()
self._parse_group_variables()
return self.groups

解析后返回 三个对象
{‘ungrouped’: , ‘web’: , ‘all’: }

就是,无分组 ,分组 ,all

{‘127.0.0.1’: }

最后得到
self.parser = InventoryParser(filename=host_list)
self.groups = self.parser.groups.values()

print self.parser.hosts
{‘127.0.0.1’: }
print self.parser.groups
{‘ungrouped’: , ‘web’: , ‘all’: }

未命名

发表于 2016-12-09 |

git flow 工作流的使用

安装gitflow

sudo dnf install gitflow

把已有仓库 初始化为 gitflow仓库

$ cd project_dir
$ git flow init
$ git branch

  • develop
    master

创建 Feature

$ git flow feature start authentication
$ git flow feature finish authentication

Versioned releases

$ git flow release start 0.1.0

$ git flow release finish 0.1.0

Hotfixing production code

$ git flow hotfix start assets
$ git flow hotfix finish assets

未命名

发表于 2016-12-09 |

http://www.jianshu.com/p/7a0d6917e009

https://www.gitlab.cc/downloads/

gitlab地址:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.14.1-ce.1.el7.x86_64.rpm

安装:
$ rpm -ivh gitlab-ce-8.14.1-ce.1.el7.x86_64.rpm

初始化 GitLab

sudo gitlab-ctl reconfigure

修改host

添加访问的 host,修改/etc/gitlab/gitlab.rb的external_url

external_url ‘http://git.home.com‘

vi /etc/hosts,添加 host 映射
127.0.0.1 git.home.com

每次修改/etc/gitlab/gitlab.rb,都要运行以下命令,让配置生效

sudo gitlab-ctl reconfigure
配置本机的 host,如:192.168.113.59 git.home.com。最后,在浏览器打开网址http://git.home.com,登陆。默认管理员:

用户名: root
密码: 5iveL!fe

下载汉化包后上传服务器后解压。下载链接

停止Gitlab服务。

sudo gitlab-ctl stop

备份服务器上的/opt/gitlab/embedded/service/gitlab-rails目录。 注:该目录下的内容主要是web应用部分,也是当前项目仓库的起始版本,也是汉化包要覆盖的目录。

将解压后的汉化包覆盖服务器上的/opt/gitlab/embedded/service/gitlab-rails目录。

启动Gitlab服务。

sudo gitlab-ctl start

重新执行配置命令。

sudo gitlab-ctl reconfigure

完成上述步骤即实现汉化。

未命名

发表于 2016-12-08 |

ansible 报错处理

今天运行ansible的时候报错

  1. 执行
    TASK [common : unarchive jdk-8u60-linux-x64.tar.gz to /opt/fonsview/3RD] *
    An exception occurred during task execution. To see the full traceback, use -vvv. The error was: MemoryError
    fatal: [172.16.6.86]: FAILED! => {“failed”: true, “msg”: “Unexpected failure during module execution.”, “stdout”: “”}
    to retry, use: –limit @/etc/ansible/sites/epg/src/install_epg.retry

  2. 报错类型 The error was: MemoryError

  3. 我运行的解压命令 unarchive 其实是 先把主机 copy到远程,然后解压

  4. ansible 2.2.0 copy模块有个bug,当copy 大文件时 会报 MemoryError

主要原因是,可用内存 必须 大于 要copy的单个报的大小

我的问题是,我的主机可用内存是150mb,而我copy的 jdk-8u60-linux-x64.tar.gz包 是173MB,
所以内存不够,就报错 The error was: MemoryError

  1. 解决方法,释放自己的内存,使可用内存大于 173MB 问题解决

未命名

发表于 2016-12-07 |

scrapy 的使用

  1. items.py 内容储存方式
  2. pipelines.py 流程
  3. setting.py 设定

安装

pip install scrapy

创建一个项目

scrapy startproject tutorial

➜ tree
.
├── scrapy.cfg
└── tutorial
├── init.py
├── items.py
├── pipelines.py
├── settings.py
└── spiders
└── init.py

2 directories, 6 files

运行一个项目

cd tutorial/
vim tutorial/spiders/quotes_spider.py

  1. 列出 可用 spider
    scrapy list

  2. 运行
    scrapy crawl quotes

Selectors选择器简介

XPath表达式的例子及对应的含义:

/html/head/title: 选择HTML文档中 标签内的 元素<br>/html/head/title/text(): 选择上面提到的 <title> 元素的文字<br>//td: 选择所有的 <td> 元素<br>//div[@class=”mine”]: 选择所有具有 class=”mine” 属性的 div 元素</td>

response.xpath(‘//base/@href’).extract()
[u’http://example.com/‘]

response.css(‘base::attr(href)’).extract()
[u’http://example.com/‘]

@符号代表 属性

映射:
response.selector.xpath() –》 response.xpath()
response.selector.css() –》 response.css()

demo

  1. shell 调试
    scrapy shell “http://quotes.toscrape.com/page/1/“

自动 会把页面返回放到 response 类中

  1. response.body

支持 js scrapy-splash

  • 安装
    pip install scrapy-splash

Scrapy爬虫中使用Splash处理页面JS

未命名

发表于 2016-12-05 |

wireshark 的使用

安装

  1. dnf install wireshark

  2. dnf install wireshark-gtk.x86_64

  3. 给用户赋予 权限
    usermod -a -G wireshark monkey

  4. 给抓取网卡的权限
    setcap ‘CAP_NET_RAW+eip CAP_NET_ADMIN+eip’ /usr/sbin/dumpcap

使用

未命名

发表于 2016-12-05 |

ngrep – 简单数据包抓取分析工具

抓取 HTTP 数据

ngrep -q -Wbyline ‘HTTP’

未命名

发表于 2016-12-05 |

如果大家在使用 虚拟主机的过程中
根分区 空间不够,使用如下方法 可以给根分区扩充50G
注:扩充过程中数据不会有任何损坏

  1. 把空闲磁盘 vdb 转换为物理卷(如果没有vdb,请联系管理人员添加磁盘)
    [root@fonsview ~]#pvcreate /dev/vdb

  2. 把/dev/vdb 添加到卷组 VolGroup00中
    [root@fonsview ~]#vgextend VolGroup00 /dev/vdb

  3. 扩充根逻辑卷VolGroup00-LogVol00 并把文件系统增大50G
    [root@fonsview ~]#lvresize –resizefs –size +50GB /dev/mapper/VolGroup00-LogVol00

名词解释:
空闲磁盘的意思是 没有分区 没有挂载 没有使用

未命名

发表于 2016-12-05 |

pycharm的使用

  • 快捷键

Alt + F 快速新建文件

Ctrl + Alt + T 插入 判断等 (自动创建注释等)

Shift + F10 是运行程序
shift + F9 调试运行
F9 移动到下一个断点
F8 步进调试

Alt + Shift + E 执行选中的代码

  • 指定一个定时器
    打开 setting -> Tools -> Python Integrated Tools
    学 Default test runner -> Nosetests
  • 可以给代码设置断点
    右键断点处,可以给断点修改断点属性
    condition 给断点加条件
  •   当需要输入HTML类型标签时,PyCharm同样设计了帮助系统:

  Ctrl+Space调用拼写提示功能。

  当输入一个括号时,会自动生成另一个括号以进行匹配

  • pycharm 的database 可以直接连接 数据库 很方便

  • 自动导入

    比如写 time.sleep(10) 时忘记先import time 的话,可以Alt + Enter 自动导入

    • file watcher 监控文件的改变
      如果文件发生改变 就调用指定的命令

使用场景:
index.jade 如果改变 调用pyjade 生成对应的jinja或html页面
index.less 如果改变 调用less 生成对应的css文件

  • 创建便签注释

todo 注释

1…141516…21
kikiyou

kikiyou

越努力越幸运

204 日志
20 标签
GitHub Quora 知乎 豆瓣 果壳 Facebook Twitter 新浪微博
Links
  • Awesome
© 2015 - 2017 kikiyou
由 Hexo 强力驱动
主题 - NexT.Mist