服务器篇
来自陌陌游戏WIKI
目录
性能压测工具
工具地址:http://clr.igamesofficial.com:9090/loadnode-web/ 备注:账号需要向陌陌技术支持申请
运维自动化工具
运维自动化工具-Ansible
使用 Ansible 需要安装什么
1、部署机以及被管理的主机需要安装有 Python 2.6 及以上的版本
2、部署机器上需安装 Ansiblle
3、Ansible 通过 SSH 协议管理服务器。如果使用 Password 的方式登陆被管理的主机,还需安装 SSHPass
Ansible 安装教程
1、通过 Yum 安装 Ansible 最新发布版本
2、SSHPass 安装
源码下载地址:http://sourceforge.net/projects/sshpass/
新手上路
Inventory 文件
Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts
Inventory 文件的格式如下:

方括号[]中是组名,用于对系统进行分类,便于对不同系统进行个别的管理
如果有主机的 SSH 端口不是标准的22端口,可在主机名之后加上端口号,用冒号分隔
对于每一个 host,还可以配置连接用户名、密码等信息
你的第一条命令
现在ping machine1分组中的所有节点:
$ ansible machine1 -m ping

使用 -i 可以指定一个文件作为 Inventory 文件,不是使用 -i 则使用默认路径(/etc/ansible/hosts)中的 Inventory 文件
远程执行 shell 命令
$ ansible machine1 -m shell -a "/bin/echo hello"

命令中,-m 表示模块 -a表示命令 ,ansible支持的模块可以通过 ansible-doc -l 命令来查询。
简单的 Playbooks
当我们配置机器的时候,通常需要在同一时间内做许多操作。Anisble提供了一个工具叫playbooks,playbooks使用YAML文件。
YAML
所有的 YAML 文件开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格):

一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格):

更多 YAML 信息可以查看 http://www.yaml.org/
一个简单的playbook配置如下:

Playerbooks 基础
主机与用户
你可以为 playbook 中的每一个 play,个别地选择操作的目标机器是哪些,以哪个用户身份去完成要执行的步骤
---
- hosts: webservers
remote_user: root
Tasks
每一个 play 包含了一个 task 列表(任务列表).每一个 task 必须有一个名称 name。
这样在运行 playbook 时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个 task 的。
下面是一种基本的 task 的定义,service moudle 使用 key=value 格式的参数,这也是大多数 module 使用的参数格式:
tasks:
- name: make sure apache is running
service: name=httpd state=running
比较特别的两个 modudle 是 command 和 shell ,它们不使用 key=value 格式的参数,而是这样:
tasks:
- name: disable selinux
command: /sbin/setenforce 0
Handlers
Ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:

执行一个 playbook
ansible-playbook playbook.yml
Ansible 进阶资料
Ansible 官方文档:http://docs.ansible.com/ansible/index.html Ansible 中文文档:http://www.178linux.com/doc/ansible/docs/intro.html DevOps 更多资料请参看:https://github.com/geekwolf/sa-scripts/blob/master/devops.md