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

来自陌陌游戏WIKI
跳转至: 导航搜索
主机与用户
运维自动化工具
第18行: 第18行:
 
     Ansible —— 基于 Python 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL
 
     Ansible —— 基于 Python 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL
  
===使用 Ansible 需要安装什么===  
+
===Ansible===
 +
 
 +
 
 +
 
 +
 
 +
====使用 Ansible 需要安装什么====
 
    
 
    
 
     1、部署机以及被管理的主机需要安装有 Python 2.6 及以上的版本
 
     1、部署机以及被管理的主机需要安装有 Python 2.6 及以上的版本
第24行: 第29行:
 
     3、Ansible 通过 SSH 协议管理服务器。如果使用 Password 的方式登陆被管理的主机,还需安装 SSHPass
 
     3、Ansible 通过 SSH 协议管理服务器。如果使用 Password 的方式登陆被管理的主机,还需安装 SSHPass
  
===Ansible 安装教程===
+
====Ansible 安装教程====
  
 
     1、通过 Yum 安装 Ansible 最新发布版本<br />
 
     1、通过 Yum 安装 Ansible 最新发布版本<br />
第32行: 第37行:
 
       [[文件:sshpass安装.png|700px]]<br />
 
       [[文件:sshpass安装.png|700px]]<br />
  
===新手上路===
+
====新手上路====
  
====Inventory 文件====
+
=====Inventory 文件=====
  
 
     Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts
 
     Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts
第43行: 第48行:
 
     对于每一个 host,还可以配置连接用户名、密码等信息
 
     对于每一个 host,还可以配置连接用户名、密码等信息
  
====你的第一条命令====
+
=====你的第一条命令=====
  
 
     现在ping machine1分组中的所有节点:
 
     现在ping machine1分组中的所有节点:
第50行: 第55行:
 
     使用 -i 可以指定一个文件作为 Inventory 文件,不是使用 -i 则使用默认路径(/etc/ansible/hosts)中的 Inventory 文件
 
     使用 -i 可以指定一个文件作为 Inventory 文件,不是使用 -i 则使用默认路径(/etc/ansible/hosts)中的 Inventory 文件
  
====远程执行 shell 命令====
+
=====远程执行 shell 命令=====
  
 
     $ ansible machine1  -m shell  -a "/bin/echo hello"
 
     $ ansible machine1  -m shell  -a "/bin/echo hello"
第56行: 第61行:
 
     命令中,-m 表示模块 -a表示命令 ,ansible支持的模块可以通过 ansible-doc -l 命令来查询。
 
     命令中,-m 表示模块 -a表示命令 ,ansible支持的模块可以通过 ansible-doc -l 命令来查询。
  
===简单的 Playbooks ===
+
====简单的 Playbooks ====
  
 
       当我们配置机器的时候,通常需要在同一时间内做许多操作。Anisble提供了一个工具叫playbooks,playbooks使用YAML文件。
 
       当我们配置机器的时候,通常需要在同一时间内做许多操作。Anisble提供了一个工具叫playbooks,playbooks使用YAML文件。
第62行: 第67行:
 
       [[文件:Playbookseg.png|700px]]<br />
 
       [[文件:Playbookseg.png|700px]]<br />
  
====YAML====
+
=====YAML=====
  
 
       所有的 YAML 文件开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
 
       所有的 YAML 文件开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
第71行: 第76行:
 
       更多 YAML 信息可以查看 http://www.yaml.org/
 
       更多 YAML 信息可以查看 http://www.yaml.org/
  
==== Playerbooks 基础====
+
===== Playerbooks 基础=====
  
===== 主机与用户 =====
+
====== 主机与用户 ======
  
 
       你可以为 playbook 中的每一个 play,个别地选择操作的目标机器是哪些,以哪个用户身份去完成要执行的步骤
 
       你可以为 playbook 中的每一个 play,个别地选择操作的目标机器是哪些,以哪个用户身份去完成要执行的步骤
第80行: 第85行:
 
         remote_user: root
 
         remote_user: root
  
===== Tasks =====
+
====== Tasks ======
  
 
       每一个 play 包含了一个 task 列表(任务列表).每一个 task 必须有一个名称 name。
 
       每一个 play 包含了一个 task 列表(任务列表).每一个 task 必须有一个名称 name。
第95行: 第100行:
 
           command: /sbin/setenforce 0
 
           command: /sbin/setenforce 0
  
==== Handlers ====
+
===== Handlers =====
  
 
       Ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:
 
       Ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:
 
       [[文件:Ansiblehandlers.png|700px]]<br />
 
       [[文件:Ansiblehandlers.png|700px]]<br />
  
==== 执行一个 playbook ====
+
===== 执行一个 playbook =====
  
 
       ansible-playbook playbook.yml  
 
       ansible-playbook playbook.yml  
  
===Ansible 进阶资料===
+
====Ansible 进阶资料====
  
 
     Ansible 官方文档:http://docs.ansible.com/ansible/index.html
 
     Ansible 官方文档:http://docs.ansible.com/ansible/index.html
 
     Ansible 中文文档:http://www.178linux.com/doc/ansible/docs/intro.html
 
     Ansible 中文文档:http://www.178linux.com/doc/ansible/docs/intro.html
 
     DevOps 更多资料请参看:https://github.com/geekwolf/sa-scripts/blob/master/devops.md
 
     DevOps 更多资料请参看:https://github.com/geekwolf/sa-scripts/blob/master/devops.md

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

性能压测工具

   工具地址: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

使用 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
     每一个 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,使用起来如下:
     Ansiblehandlers.png
执行一个 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