Ansible hosts 配置

折腾了两三天,Ansible终于能连接本地的vagrant了。
问题出在Inventory上。

原本我写成这样了:

[local]
127.0.0.1:2222

这样是连接不了的。

于是我改成这样:

[local]
127.0.0.1 ansible_port=2222

这样还是连接不了

[local]
skys215.dev ansible_port=2222

这样又可以连接……(/etc/hosts里写了127.0.0.1 skys215.dev
跪orz……

在文档中看到有ansible_host的选项。我就觉得奇怪了,在tutorial中明明直接把ip写在inventory文件中的,怎么还需要这个选项?
再次尝试:

[local]
ansible_host=127.0.0.1 ansible_port=2222

还是不行。

在网上搜了下别人写的inventory文件,想到:咦?如果只想连接其中一台电脑的话怎么办?
原来是要这样写:

[local]
server1 ansible_host=127.0.0.1 ansible_port=2222

要给组中的每个server一个名称才行。
的样子……

Ansible 连接错误

安装完ansible,在/etc/ansible/hosts添加了公司的正式服和测试服之后,尝试连接服务器,看看配置正不正确。
ansible all -m ping
却报了UNREACHABLE的错误。

www.xxx2.com | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
www.xxx.com | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

我已经把自己的key放到了服务器上的,为什么还不行呢?
在StackOverflow上找到解决方案。说是没有添加公钥。
这就奇怪了,我是按照文档说明的去做的。
Whatever,打开/etc/ansible/ansible.cfg,找到[defaults]中的private_key_file部分;

[defaults]
private_key_file=~/.ssh/my-key.pem

指定公钥位置即可。

www.xxx.com | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Ansible安装

为了补补我厂的运维,于是开始了解运维方面的知识。
其实是代码质量比较差,想要做持续集成。

但是我发现发布上去的代码需要在质量上可靠,可以简单地映射为能跑通测试。
然而完全没经验写测试代码……

好像扯远了。

目前的路径是 服务器管理(连接、执行命令安装等)-> 代码部署 ->服务器监控。
因为现在基本上代码扔上去之后就基本不管了。偶尔看看报错日志的程度。
也没有多少人看用户反馈,好像pc端也没有反馈的地方……

从上方提供的路径决定先从服务器管理下手。
在咨询了前辈们之后,决定用Ansible。
理由是:

  1. 简单(听说的)
  2. 我厂服务器还不算多,Ansible足以应付。(也是听说ansible管理大量服务器上有不足)

(好吧,都是听说的)

下面正式开始安装过程:

按照官方文档安装。

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

很顺利的安装完了。
接下来就是配置和使用了。

毕业设计有感

(老师说论文里不能有这些东西,于是就放这里来了)

2015年11月底我约见了我的毕设导师。当时讨论了一个约时间的项目。我在实习之余做了大概一个多月,在2016年1月的时候,做了一个简单的demo去见老师。在和老师讨论结束之后,认为这个项目作为毕业设计有点简单。当场我提了这个项目之后,我回去花了一个月的时间做了简单的雏形出来。在2月底的时候,终于确定了毕业设计的题目。经过一个多月的紧张设计和开发,终于完成了此次毕业设计。中途经历过发现bug的忧伤,也经历过修复bug的喜悦;经历了测试代码时的紧张,也经历了代码测试通过时的释然。这都会作为我人生中的一部分陪伴下去。
其实本次的毕业设计内容早在我大一第一学期的时候就已经开始做了。当时用的方法很笨拙,没有好好利用所学知识,故做完之后也想优化但是知识水平不够。第一学期我挂科了,第二学期开始又接了些兼职来做。一直以没有时间为由推脱着,没有优化。然而这些都是借口。时间都是挤出来的,自己愿意做的事情无论如何也应当能找到时间完成它。
此次毕业设计在3年多的大学生涯中,是一次为数不多的将理论与实际联系起来的机会。通过这次毕业设计,了解到了在技术方面基础要扎实,如果只是略知一二,一知半解的话,肯定会有bug出现,甚至需要推倒重来。在项目管理方面,了解到了划分主次功能,适当精简不必要的功能这一条定理。因为时间是有限的,如果将时间安排在完善功能,甚至大费周章在一个不起眼的功能上,那么整个项目都会受到影响。另外也领悟到了合理安排时间的重要性。等到快要截止的时候再赶工是不可取的办法。
虽然此次毕业设计的作品不是很成熟,相信也隐藏着不少的bug,不过我因我写的每一行代码而骄傲,都是我的劳动成果。看着自己写的程序从0到1,从无到有慢慢茁壮成长的过程,我倍感欣慰。从大一时候第一个版本做出来,效果不好感到沮丧,到大四作为毕业设计再次开发出来效果良好,我为我自己开发出来的系统感到自豪。

Ubuntu下升级git至2.x的方法

在git-scm.com上Windows的git版本已经升级到了2.8.1了。
然而我看我的VPS上的git却还是1.9.1版,于是我决定升级一下我VPS上的git版本。
一开始我用的是sudo apt-get upgrade命令,直接升级所有包(因为感觉我好久没升级过了)
upgrade完发现git还是在1.9.1版。

我谷歌了一阵之后发现,2.x版和原来的不是一个ppa。
需要执行以下命令完成升级操作:

sudo add-apt-repository ppa:git-core/ppa -y
# 添加ppa

sudo apt-get update
# 更新包信息

sudo apt-get upgrade git
# 升级git版本

至此,我的git版本终于升级到了2.8.1版本。