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
 [root@www ~]# wget http://releases.ansible.com/ansible/ansible-2.3.2.0-0.4.rc4.tar.gz
 2. 安装ansible
    [root@www ~]# tar -xzf ansible-2.3.2.0-0.4.rc4.tar.gz
    [root@www ~]# cd ansible-2.3.2.0
    [root@www ~]# python setup.py build
    [root@www ~]# python setup.py install
 3. 装备配置文件
    [root@www ~]# mkdir /etc/ansible
    [root@www ~]# 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主机 
 [root@www ~]# ssh-keygen 
 [root@www ~]# ssh-copy-id root@192.168.80.130 
 这里写图片描述


[root@www ~]# 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. 文本内容运行命令:
    [root@www ~]#  ansible-playbook file.yam

测试 
这里写图片描述

这里写图片描述

本文转自lnsaneLlinux博客51CTO博客,原文链接http://blog.51cto.com/lnsane784/1951496如需转载请自行联系原作者

Insane_linux
相关文章
|
10天前
|
存储 运维 监控
运维.Linux下执行定时任务(中:Cron的常用替代方案)
本文是关于Linux下执行定时任务系列的第二部分,主要探讨除了Cron之外的常用替代方案。介绍了Systemd Timers、Anacron及at命令三种工具,它们分别适用于不同场景下的定时任务需求。文章详细分析了每种工具的特点、工作原理、基本使用方法及其高级功能,并对比了它们各自的优缺点,帮助读者根据实际情况选择最适合的定时任务解决方案。此外,还提供了指向具体实例和进一步阅读材料的链接。
42 4
运维.Linux下执行定时任务(中:Cron的常用替代方案)
|
3天前
|
运维 监控 Unix
运维必看,Linux 远程数据同步工具详解。
运维必看,Linux 远程数据同步工具详解。
|
4天前
|
运维 持续交付 网络安全
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。
|
8天前
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
12 2
|
9天前
|
运维 监控 持续交付
构建高效自动化运维体系:Ansible与Docker的协同实践
【7月更文挑战第42天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为提升效率、确保系统稳定性的关键。本文将探讨如何利用Ansible这一强大的自动化工具与Docker容器技术相结合,搭建一个高效、可靠的自动化运维体系。文章首先简述了自动化运维的必要性和Ansible与Docker的基本概念,随后详细介绍了两者结合的优势,并通过实际案例分析展示了如何实现自动化部署、管理和扩展应用服务。通过阅读本文,读者将获得一套可行的自动化运维解决方案,以应对日益复杂的IT环境挑战。
|
13天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署CodeX Docs文档工具
【8月更文挑战第7天】Linux系统之部署CodeX Docs文档工具
28 4
|
14天前
|
运维 Linux Shell
从Linux小白到大神的逆袭之路:解锁高级自测秘籍,让你的Linux技能瞬间燃爆,成为运维界的超级英雄!
【8月更文挑战第5天】Linux作为开源世界的基石,凭借其强大功能与高度可定制性,吸引着众多技术爱好者与专业人士。对于希望精进Linux系统管理的学习者来说,“Linux高级自测学习”是一次技术深潜之旅,也是对个人极限的挑战。本学习路径首先回顾基础操作,并进阶至LVM磁盘管理、系统性能优化、复杂网络配置与安全、自动化运维及容器化技术等领域。通过实践与探索,你将逐步解锁Linux潜力,成为高手。技术之路永无止境,保持好奇与求知心至关重要。
37 4
|
14天前
|
运维 Kubernetes 网络协议
Istio的运维-诊断工具
Istio的运维-诊断工具
14 2
|
2天前
|
存储 监控 Ubuntu
完全交互式!易于使用的 Linux 性能监控工具
完全交互式!易于使用的 Linux 性能监控工具
|
5天前
|
Linux Windows
【Linux】rzsz——本地Windows与云端Linux文件传输工具
【Linux】rzsz——本地Windows与云端Linux文件传输工具