分类 服务器端 下的文章

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

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

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版本。

virtual memory exhausted: Cannot allocate memory

今天在VPS上pip install -r requirements.txt的时候,报了这个错误。
不是很知道原因是什么,

dd if=/dev/zero of=/swap bs=1024 count=1M 
//Format the swap file: 
mkswap /swap 
//Enable the swap file: 
swapon /swap 
//Enable swap on boot: 
echo "/swap swap swap sw 0 0" >> /etc/fstab

根据网上的搜索结果,这样做就解决问题了。

Mysql table doesn't exist

前段时间,在用着数据库的时候,突然就提示数据库不存在(Errno 1146 Table doesn't exist)。
然而怎么重启,数据表就是存在啊! 真是奇怪。
当初遇到这个问题是在公司,所以我赶紧换Linux系统继续开发。
之后也因为各种事情,以及尝试了一些小方法之后也没有解决,就这么忘记了。

过了两个月,我在做学校作业的时候又遇到了这个问题。
重新导了一遍数据库未果,于是又切换Linux继续工作。

就在今天,又遇到了这个问题。
我就下定决心解决。
在查阅了一些资料后,得到如下方法:

  1. 备份
  2. alter table tbl_name discard tablespace 删除表空间。
    但是,我在执行这句的时候,也报了这个错。

于是我直接重命名了ibd文件的后缀。(划掉)
于是我用drop table tbl_name删除了表。
虽然删除的时候也会报table doesn't exist 的错,但是用show tables这个命令查看表时,那个表却不见了。

  1. 从备份的数据库创建具有相同表结构的表。(还好我在服务器上也有这个库……)
  2. 把新生成的tbl_name.ibd文件用备份的同名ibd文件覆盖。此时,可能ibd文件会处于被占用状态。
    就解决了。

问题是解决了,但是还是不知道为什么引发了这个问题。
后续我会关注这个问题,留意这个问题是在什么情况下产生的。

2017-04-26 更新
今天在写代码的时候,突然发现删不了数据库。
搜索一番发现也没什么有效的解决方案。
看log后发现,它报的是“Too many open files”。
然后想起来我用Sequel Pro开了5个标签,我关掉一些标签之后,就正常了……