<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Python on bystander&#39;s blog</title>
    <link>http://blog.leaver.me/tags/python/</link>
    <description>Recent content in Python on bystander&#39;s blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 25 Mar 2016 19:51:07 +0000</lastBuildDate>
    <atom:link href="http://blog.leaver.me/tags/python/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ansible简单使用</title>
      <link>http://blog.leaver.me/2016/03/25/ansible%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Fri, 25 Mar 2016 19:51:07 +0000</pubDate>
      <guid>http://blog.leaver.me/2016/03/25/ansible%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8/</guid>
      <description>&lt;p&gt;由于线下机器太多.有没有日志平台,所以查询日志比较麻烦.发现了ansible,按照官方文档(ubuntu)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get install software-properties-common
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-add-repository ppa:ansible/ansible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get install ansible
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一步步执行,第二步执行的时候,可能会报错&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo: add-apt-repository: command not found
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这时候.先执行&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo add-apt-repository ppa:git-core/ppa
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后接着执行上面的第二步就行了..&lt;/p&gt;
&lt;p&gt;安装完成后,配置集群&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /etc/ansible/hosts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[servergroup1]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;192.168.1.1 ansible_ssh_user=root ansible_ssh_pass=root
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[servergroup2]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;192.168.2.1 ansible_ssh_user=root ansible_ssh_pass=root
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;后面的账号和密码,如果你使用ssh key登陆的话就不需要了.但是如果有很多机器,需要加到known_hosts就太多了.
这时候可以参考&lt;a href=&#34;https://github.com/linuxyan/linuxyan/blob/master/python/Batch_create_pub_key/Batch_key.py&#34;&gt;Batch_key&lt;/a&gt;
这个脚本.稍微修改一下,就能批量生成了&lt;/p&gt;
&lt;p&gt;然后就是执行命令了&lt;/p&gt;
&lt;p&gt;ansible常见用法为ansible host-pattern -m 模块 -a 命令，host-pattern类似于简化的正则表达式，而模块可以通过ansible-doc -l命令来查询。下面是一些常用模块的使用方法：&lt;/p&gt;
&lt;p&gt;安装软件：&lt;code&gt;ansible servergroup1 -m apt -a &#39;name=gcc state=present&#39; 或者ansible local -m yum -a &amp;quot;name=nmap state=installed&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;执行命令：&lt;code&gt;ansible servergroup1 -m shell -a &#39;uptime&#39;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;拷贝文件：&lt;code&gt;ansible servergroup1 -m copy -a  &#39;src=http://blog.leaver.me/tmp/server dest=/tmp/server&#39;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;文件属性：&lt;code&gt;ansible servergroup1 -m file -a  &#39;dest=/tmp/server mode=755 owner=root group=root&#39;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;还有一个playbook的,看上去就是一个任务定义.我也暂时用不上..&lt;/p&gt;
&lt;p&gt;参考文档:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://docs.ansible.com/ansible/intro_installation.html&#34;&gt;http://docs.ansible.com/ansible/intro_installation.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://lifeonubuntu.com/ubuntu-missing-add-apt-repository-command/&#34;&gt;http://lifeonubuntu.com/ubuntu-missing-add-apt-repository-command/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.cnblogs.com/feisky/p/4102613.html&#34;&gt;http://www.cnblogs.com/feisky/p/4102613.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Python学习资源</title>
      <link>http://blog.leaver.me/2014/07/26/python%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90/</link>
      <pubDate>Sat, 26 Jul 2014 16:19:18 +0000</pubDate>
      <guid>http://blog.leaver.me/2014/07/26/python%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90/</guid>
      <description>&lt;p&gt;最近突然觉得需要学习一个轻便的语言，每次写个小工具啥的还要打开eclipse，很是不方便。于是学习了一下python，看看官方文档基本就可以上手了，剩下的就是多用了，个人用python写了个调用websevice的东西，suds这个库3.x已经不维护了，坑爹，需要使用&lt;a href=&#34;http://pypi.python.org/pypi/suds-jurko&#34;&gt;http://pypi.python.org/pypi/suds-jurko&lt;/a&gt; 这个库代替，主要是为了批量测试mock的连通性的，&lt;/p&gt;
&lt;p&gt;另外是python3.x和python2.x差异是在很大，我选了3&amp;hellip;, 刚学习的人还是建议从2.x开始吧，否则很多源代码你下载回来基本运行不了。&lt;/p&gt;
&lt;p&gt;本文是我在学习过程中看到的不错的文档，希望有所帮助。&lt;/p&gt;
&lt;p&gt;先看官方文档，英文版觉得有难度看下中文版：&lt;a href=&#34;http://www.pythondoc.com/pythontutorial3/&#34;&gt;Python3.4 入门指南&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;然后写写代码，小例子看看&lt;a href=&#34;http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html&#34;&gt;Python快速教程&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;遇到问题，可以去看看：&lt;a href=&#34;https://github.com/wklken/stackoverflow-py-top-qa&#34;&gt;stackoverflow python 百问&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;刚开始，你可能不知道module，package，这些都傻，先看看这篇文章&lt;a href=&#34;http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868200171577d6385bb5b4f4875bee9cbf0f0fa29c5000&#34;&gt;python模块&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你比较纳闷那个命名中的双下划线，但下划线都啥意思，看看&lt;a href=&#34;http://igorsobreira.com/2010/09/16/difference-between-one-underline-and-two-underlines-in-python.html&#34;&gt;单下划线和双下划线区别&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;之后，你可能想看看一个系统的组织，那么看看&lt;a href=&#34;http://docs.python-guide.org/en/latest/&#34;&gt;python最佳实践指南全版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你觉得上面的太多，看看&lt;a href=&#34;http://wklken.me/posts/2013/11/25/summary-of-the-hitchhikers-guide-2-python.html&#34;&gt;中文的摘要版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;后来我看到一个yield，不太明白，于是我看到了&lt;a href=&#34;http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/&#34;&gt;Python yield 使用浅析&lt;/a&gt;，只能说写的真是好，就是迭代器生成的&lt;/p&gt;
&lt;p&gt;想看看正则？看看&lt;a href=&#34;http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html&#34;&gt;python正则表达式指南，&lt;/a&gt;非常全面&lt;/p&gt;
&lt;p&gt;我只是想发个http请求，如果你用了python3.x，报错，Import error: No module name urllib，那么看看&lt;a href=&#34;http://stackoverflow.com/questions/2792650/python3-error-import-error-no-module-name-urllib&#34;&gt;urllib&lt;/a&gt;这个坑，你可能要看看，你没有看错，他们合并了。。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://woodpecker.org.cn/diveintopython/toc/index.html&#34;&gt; Dive into Python &lt;/a&gt;中文也看看，不要在意细节。&lt;/p&gt;
&lt;p&gt;最后好像看看&lt;a href=&#34;http://book.douban.com/subject/3285148/&#34;&gt;&lt;strong&gt;Expert Python&lt;/strong&gt; Programming&lt;/a&gt;，因为我没看。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
