打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
轻量级自动化运维工具-ansible


随着IT行业的发展,运维已经成为IT信息产业和服务中不可或缺的一部分。面对越来越复杂的业务,越来越多样化的用户需求,运维的业务量也随之增大,单个运维人员管理的IT对象也越来越多。从初期的几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、架构优化、过程优化等降低IT服务成本的因素越来越被人们所重视。其中,自动化最开始作为代替人工操作为出发点的诉求被广泛研究和应用。这种情况下运维自动化的概念随之而出。

自动化运维

IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。

自动化运维路线图

自动化运维工具-ansible

ansible

ansible是基于Python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能的自动化运维工具。它相较于其它自动化运维工具的有以下优点:

  • 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可。

  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。

  • 使用python编写,维护更简单,ruby语法过于复杂。

  • 支持sudo。

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

  • connection plugins:连接插件,负责和被监控端实现通信。

  • host inventory:指定操作的主机,是一个配置文件里面定义监控的主机。

  • 各种模块核心模块、command模块、自定义模块。

  • 借助于插件完成记录日志邮件等功能。

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

ansible安装

Redhat/CentOS(前提是软件仓库增加了EPEL源)

  • yum install ansible

Debian/Ubuntu

  • apt-get update

  • apt-get install software-properties-common

  • apt-add-repository ppa:ansible/ansible

  • apt-get update

  • apt-get install ansible

其它linux发行版及源码编译安装见官方网站http://docs.ansible.com/ansible/latest/intro_installation.html

ansible配置

  1. 定义host inventory,即主机清单。

    vim /etc/ansible/hosts

    [webhosts]

    192.168.1.2 ansible_ssh_user=root ansible_ssh_pass=your_passwd

    web2 ansible_ssh_user=root ansible_ssh_pass=your_passwd

    参数解析(更多的参数详见官网):

    [webhosts]:自定义主机组,可以添加多行,不在主机组的记录则一行就是一条主机信息,支持IP和可解析主机名。

    ansible_ssh_user=root 是ssh登陆用户 ,默认是使用root登录。

    ansible_ssh_pass=guoting 是ssh登陆密码。如果被控制主机配置了允许ansible主机密钥登录,引处可不填写。

  2. 测试连接

    ansible web2 -m ping

    web2 | SUCCESS => {

    "changed": false,

    "ping": "pong"

    }

模块使用

ansible命令最常用的用法(所支持的模块可以使用ansible-doc -l来查看):

ansible 主机/主机组 -m 模块名 -a '模块参数'

常用模块:

  1. ping/win_ping:ping测试

  2. hostname:管理主机名

  3. command:在远程主机上执行命令

  4. shell:切换到某个shell执行指定的指令

  5. raw:类似command,但可以传递管道

  6. script:执行脚本 (执行的是本地的脚本将其复制到远程在执行)

  7. copy:复制文件到远程主机

  8. fetch:获取远程主机文件

  9. file:设置文件的属性

  10. setup:查看远程主机的基本信息

  11. service:用于管理服务

  12. cron:用于管理计划任务

  13. filesystem:在块设备上创建文件系统

  14. yum:用yum管理软件包

  15. user:管理用户

  16. group:管理组

  17. synchronize:使用rsync同步文件

  18. mount:配置挂载点

  19. pip:管理python的pip模块

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
运维太忙?那是你还没掌握 Ansible !
Ansible 介绍和使用
Ansible vs SaltStack 谁才是自动化运维好帮手?
在 CentOS 7 中安装并使用自动化工具 Ansible
Linux运维工具Ansibe的安装和基本使用教程
安装配置Ansible
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服