Linux下的自动化运维ansible工具

什么是自动化运维

    随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越复杂的业务,
面对越来越多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来保障IT服务能灵活便捷、安
全稳定地持续保障,这种模式中的保障因素就是IT运维(其他因素是更加优越的IT架构等)。从初期的
几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标
准化、自动化、架构优化、过程优化等降低IT服务成本的因素越来越被人们所重视。其中,自动化最开始作为代替人工操作为出发点的诉求被广泛研究和应用。
   IT运维从诞生发展至今,自动化作为其重要属性之一已经不仅仅只是代替人工操作,更重要的是深
层探知和全局分析,关注的是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。自
动化对IT运维的影响,已经不仅仅是人与设备之间的关系,已经发展到了面向客户服务驱动IT运维决策
的层面,IT运维团队的构成,也从各级技术人员占大多数发展到业务人员甚至用户占大多数的局面。
   因此,IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就
是实现IT运维的质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。

什么是ansible


  ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、
chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。可以实现
多台服务器的配置,在多台服务器上同时执行统一个命令。


ansible的框架

> host inventory:定义被ansible操作的主机列表
> connection plugins:负责监控被操作主机与被操作主机之间通信
> playbook:定义ansible的任务
> plugins:拓展模块,主要用来完成日志,邮件等功能
> 核心模块,自定义模块:主要用于执行命令12345671234567


下载并安装ansible


 1. 下载ansible
 [[email protected] ~]# wget http://releases.ansible.com/ansible/ansible-2.3.2.0-0.4.rc4.tar.gz
 2. 安装ansible
    [[email protected] ~]# tar -xzf ansible-2.3.2.0-0.4.rc4.tar.gz
    [[email protected] ~]# cd ansible-2.3.2.0
    [[email protected] ~]# python setup.py build
    [[email protected] ~]# python setup.py install
 3. 装备配置文件
    [[email protected] ~]# mkdir /etc/ansible
    [[email protected] ~]# cp -r examples/* /etc/ansible/


hosts配置文件


格式:
    [webservers]                 //主机组名字
        alpha.example.org
        beta.example.org
        192.168.1.100
        192.168.1.110


ansible命令


 1. 格式:
    ansible <host-pattern> [-f forks] [-m module_name] [-a args] 
 2. 详细参数:
    host-pattern:配置文件定义的主机群名    
    -f gorks:级别,默认为5
    -m:指定要使用的核心模块,默认为command模块    
    -a:指定模块参数 
 3. 替他命令:
    ansible -l:用来查看ansible所支持的模块
    ansible-doc -s module_name:用来查看某一个模块所支持的参数


使用ansible命令实现远程shell执行


host文件
 

目标机
 

ansible主机
 [[email protected] ~]# ssh-keygen
 [[email protected] ~]# ssh-copy-id [email protected]
 

[[email protected] ~]# ansible install_httpd -m shell -a “yum -y  install httpd”
 

目标机
 

使用yaml语法定义多任务


 1. 文件定义格式:
     Task_set.yaml           (文件后缀.yaml) 
 2. 文本内容格式:
     - hosts:hosts_name           //定义在hosts文件中的主机名
        remote_user: root          //运行此次任务的用户
        tasks:                   ///应以任务
         - name:taks_name       //任务名称
            moudule_name:args[1]=? args[2]=? .... //参数,即命令中-a 对应的选项
            ignore_errors:True   //忽略错误
            notify:               //若没有改变不会发生以下事件
             - handerls_name
       handlers:             //实现在变化发生完成后一次性地执行指定操作,
如:改变配置文件后从新启动服务。
        - name: handerls_name          module:args
    *注*:一个主机集可以对应多个任务,一个.yaml文件可以含有多个主机集 
 3. 文本内容运行命令:
    [[email protected] ~]#  ansible-playbook file.yam

测试

时间: 2024-08-06 21:01:13

Linux下的自动化运维ansible工具的相关文章

ansible自动化运维必备工具详解

第2章 ansible简单介绍: 2.1 ansible是什么? ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 仅需在管理工作站上安装 ansible 程序配置被管控主机的 IP 信息,被管控的主机无客户端. ansible 应用程序存在于 epel( 第三方社区 ) 源,依赖于很多 python 组件 python语言是运维人员必会的语言!ansible是一个基于Python开

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

Linux Shell交互式自动化运维程序

Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装,也可以通过网络借助yum源来安装,yum源安装比较简单:我们下面借助Expect库来实现Linux交互式自动化运维操作,只需要执行脚本就可以实现自动化运维操作,不需要手动输入一些信息按确定,我们可以将交互过程写在一个脚本上,使之自动化完成.我们可以通过expect实现ssh自动登录.ftp自动登录

自动化运维Ansible之Playbook剧本(持续更新)

附上前两篇关于Ansible的博客地址,以供查阅,欢迎学习交流!自动化运维之Ansible概述及Ansible部署Ansible命令应用之常用模块 Playbook简介 playbook是ansible用于配置,部署,和管理被控节点的剧本. 通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态.playbook就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成. 也可以这么理解,playbook 字面意思,即剧本,现实中

Ansible:分布式场景下的自动化运维利器实战!!!

项目背景: 实验环境: 软件介绍 Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建.集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. ansible软件的一些特

3.2 企业自动化运维ansible

ansible的Host-pattern ansible的Host-pattern 匹配主机的列表All :表示所有Inventory中的所有主机 ansible all –m ping:通配符 ansible "" -m ping 这个"*"号相当于all全部主机 ansible 192.168.1.* -m ping ansible "*srvs" -m ping 或关系 ansible "websrvs:appsrvs"

自动化运维-Ansible (第三部:Playbook 介绍)

前言 之前有两篇文章分别讲了 Ansible 的部署.Ansible 的 模块使用,对 Ansible 有了最初的了解,这篇文章最主要是要介绍 Playbook.需要了解 Ansible 的部署请点击:Ansible 第一部 :部署需要了解 Ansible 的模块庆典节:Ansible 第二部:模块使用 Playbook 介绍 Playbook 是由一个或多个play 组成的列表,主要功能是将task 定义好的角色归并为一组进行统一管理,也就是通过task 调用 Asible 的模板将多个 pl

Centos 6.5下企业级自动化运维部署-Ansible

一.Ansible 介绍 Ansible和目前市面上一些其它的项目管理工具有很大的不同,它的设计初衷就是为了更方便.快捷的进行配置管理.它易于安装和使用.语法也非常简单易学.你可以用Ansible将平常复杂的配置工作变得简单,变得更加标准化更容易控制. Ansible只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端.因为它是基于SSH的,Linux服务器离不开SSH,所以Ansible不需要为配置工作添加额外的支持. 你可以通过命令行来使用Ansible,运行Ansible

自动化运维Ansible实践(一)

第 1 章 Ansible概述 1.1 IT自动化的好处1.1.1 团队影响? 节省时间,提高工作效率? 消除重复任务? 更少的错误风险? 改善协作和工作满意度1.1.2 企业影响? 克服复杂性? 更多创新资源? 加强问责制和合规性1.2 Ansible是什么Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境.Ansible也是一种简单的自动化语言,可