“服务器篇”的版本间的差异

来自陌陌游戏WIKI
跳转至: 导航搜索
简单的 Playbooks
Playerbooks 基础
第82行: 第82行:
  
 
===== Tasks =====
 
===== Tasks =====
 +
 +
      每一个 task 必须有一个名称 name,这样在运行 playbook 时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个 task 的.
  
 
==== Handlers ====
 
==== Handlers ====

2015年12月10日 (四) 07:56的版本

性能压测工具

   工具地址:http://clr.igamesofficial.com:9090/loadnode-web/
   备注:账号需要向陌陌技术支持申请

运维自动化工具

运维自动化工具可以做什么

     1、操作系统的安装
     2、操作系统的配置以及相关软件安装
     3、批量程序的部署
     4、批量命令的运行查看状态信息

常用的运维自动化工具比较

   Puppet —— 基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱
   SaltStack —— 基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL
   Ansible —— 基于 Python 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL

使用 Ansible 需要安装什么

    1、部署机以及被管理的主机需要安装有 Python 2.6 及以上的版本
    2、部署机器上需安装 Ansiblle 
    3、Ansible 通过 SSH 协议管理服务器。如果使用 Password 的方式登陆被管理的主机,还需安装 SSHPass

Ansible 安装教程

    1、通过 Yum 安装 Ansible 最新发布版本
Ansible安装.png
2、SSHPass 安装
源码下载地址:http://sourceforge.net/projects/sshpass/ Sshpass安装.png

新手上路

Inventory 文件

    Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts
    Inventory 文件的格式如下:
    Host.png
方括号[]中是组名,用于对系统进行分类,便于对不同系统进行个别的管理 如果有主机的 SSH 端口不是标准的22端口,可在主机名之后加上端口号,用冒号分隔 对于每一个 host,还可以配置连接用户名、密码等信息

你的第一条命令

    现在ping machine1分组中的所有节点:
    $ ansible machine1 -m ping
    Ping.png
使用 -i 可以指定一个文件作为 Inventory 文件,不是使用 -i 则使用默认路径(/etc/ansible/hosts)中的 Inventory 文件

远程执行 shell 命令

    $ ansible machine1  -m shell  -a "/bin/echo hello"
    Ansible shell.png
命令中,-m 表示模块 -a表示命令 ,ansible支持的模块可以通过 ansible-doc -l 命令来查询。

简单的 Playbooks

     当我们配置机器的时候,通常需要在同一时间内做许多操作。Anisble提供了一个工具叫playbooks,playbooks使用YAML文件。
     一个简单的playbook配置如下:
     Playbookseg.png

YAML

     所有的 YAML 文件开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
     列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格):
     Yaml1.png
一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格): Yaml2.png
更多 YAML 信息可以查看 http://www.yaml.org/

Playerbooks 基础

主机与用户
     你可以为 playbook 中的每一个 play,个别地选择操作的目标机器是哪些,以哪个用户身份去完成要执行的步骤
     ---
     - hosts: webservers
        remote_user: root
Tasks
     每一个 task 必须有一个名称 name,这样在运行 playbook 时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个 task 的.

Handlers

     Ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:
     Ansiblehandlers.png

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