zoukankan      html  css  js  c++  java
  • Ansible的安装与使用

    ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

    运维工具常见的工作模式  
    1. agent模式: 基于ssl实现。代理工作在被监控端。像puppet。  
    2. agentless模式: 基于ssh服务实现工作在被监控端。监控端是ssh的客户端。 
    

    ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。

    1. 幂等性不会重复执行相同的指令。例如不会重复安装软件  
    2. 期望状态只需要告诉被监控端的期望状态 
    

    ansible是基于模块工作的ansible本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。架构包括

    * 连接插件connection plugins负责和被监控端实现通信。
    
    * Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机
    
    * 各种模块核心模块command模块自定义模块
    
    * 借助于插件完成记录日志邮件等功能
    
    * 
    

    PlayBooks:剧本执行多个任务时。并非必需可以让节点一次性运行多个任务

    具体可以参见:
    http://os.51cto.com/art/201409/451927_all.htm

    1. 安装软件yum install ansible -y
    2. 配置需要被监控的主机IP或者是hostname(hostname要用域名来标志,并有DNS服务器),总之,确保能ping通
    3. 在装有Ansible的监控主机中配置Host Inventory信息($sudo vim /etc/ansible/hosts). 可以将同一个主机同时归并到多个不同的组中此外当如若目标主机使用了非默认的SSH端口还可以在主机名称之后使用冒号加端口号来标明。
      比如我想建一个组叫[webhosts],当然也可以添加用户名和密码如果有的话。则可以如下添加信息。另外,如果是采用SSH的无密码方式访问的话,请自行配置ssh,具体网上一大堆。

    [webhosts]
    172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=guoting
    172.16.10.33:5050 ansible_ssh_user=root ansible_ssh_pass=guoting 解释 ansible_ssh_user=root 是ssh登陆用户 ansible_ssh_pass=guoting
    是ssh登陆密码3、测试各个模块 注意每个模块的用法可以使用 ansible-doc MOD 来查看例如ansible-doc copy

    ansible命令最常用的用法
    ansible <Host-partten> -m MOE -a 'MOD_ARV'
    所支持的模块可以使用ansible-doc -l来查看
    11 # Ex 1: Ungrouped hosts, specify before any group headers.
    12
    13 green.example.com
    14 blue.example.com
    15 192.168.100.1
    16 192.168.100.10
    17
    18 # Ex 2: A collection of hosts belonging to the ‘webservers’ group
    19 [webhosts]
    20 10.221.75.134
    21 10.221.75.136:5050
    22
    23 [webservers]
    24 alpha.example.org
    25 beta.example.org
    26 192.168.1.100
    27 192.168.1.110
    28
    29 # If you have multiple hosts following a pattern you can specify
    30 # them like this:
    31
    32 www[001:006].example.com

    1. 然后我们可以使用ansible webhosts -m shell -a 'ifconfig | grep eth0' 来与被监控机进行通讯,因为ansible是采用agentless的方式工作的,即比如我们可以采用ssh协议通讯的方式。
      [root@chenqiang-master-dev001-shgq downloads]# ansible webhosts -m shell -a ‘ifconfig | grep eth0’
      10.221.75.134 | success | rc=0 >>
      eth0 Link encap:Ethernet HWaddr FA:16:3E:8A:CA:91

    10.221.75.136 | success | rc=0 >>
    eth0 Link encap:Ethernet HWaddr FA:16:3E:8D:8C:2B

    ansible命令最常用的用法
    ansible <Host-partten> -m MOE -a 'MOD_ARV'所支持的模块可以使用ansible-doc -l来查看

    未完,待续

  • 相关阅读:
    洛谷[P1002]过河卒
    ACM-Teleportation
    ACM-Team Tic Tac Toe
    Data_Structure04-树
    Data_Structure03-栈和队列
    Data_Structure02-线性表
    Data_Structure01-绪论
    C语言第二次实验报告
    C语言第一次实验报告
    mysql
  • 原文地址:https://www.cnblogs.com/qianggezhishen/p/7349425.html
Copyright © 2011-2022 走看看