Linux自动化运维工具之ansible(一)

运维自动化是运维发展的必然方向,同时也是一个运维工程师实现效率最大化的必然选择。

运维自动化的知识可以说是浩瀚如海,本文将选择其中一个工具ansible为大家介绍一下。

一、哪些工作需要批量部署

1、操作系统的安装

常见的有collber,red hat satelite(redhat)系统专用。

2、操作系统的配置

常见的有cfengine,puppet,chef,func。其中puppet最受欢迎

3、批量程序的部署

4、批量命令的运行查看状态信息

二、ansible介绍

ansible的架构大致如下

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


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

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


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

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

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

Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机

各种模块核心模块command模块自定义模块

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

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

三、ansible的基本使用

1、安装软件


  1. yum install ansible -y # 对应的软件在 epel 仓库中也可自己手动编译 
  2.  
  3. #源码地址 https://pypi.python.org/packages/source/a/ansible/ansible-1.5.tar.gz   

2、定义Host Inventory


  1. # vim /etc/ansible/hosts 
  2.  
  3. [webhosts] 
  4.  
  5. 172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=guoting 
  6.  
  7. 172.16.10.33 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来查看

四、ansible示例

1、查看时间信息。command、shell模块

2、在控制端添加添加用户。user模块

3、实现ssh秘钥认证。shell、copy模块

此时就可以实现基于ssh秘钥通信了此时/etc/ansible/hosts可以修改如下


  1. ###### /etc/ansible/hosts 
  2.  
  3. [webhosts] 
  4.  
  5. 172.16.10.22 
  6.  
  7. 172.16.10.33   

4、安装软件和启动服务。yum、service模块

 

5、支持管道的命令。raw模块,类似于shell模块

关于ansible的基本介绍到这里就结束了,下一篇文章我们会介绍一些批量部署的小技巧哦~

作者:newtime

来源:51CTO

时间: 2024-12-02 10:06:13

Linux自动化运维工具之ansible(一)的相关文章

Linux自动化运维工具之ansible(二)

YAML简介 YAML是一个可读性高的用来表达资料序列的格式. YAML参考了其他多种语言,包括:XML.C语言.Python.Perl以及电子邮件格式RFC2822等. Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者. YAML Ain't Markup Language,即YAML不是XML.不过,在开发的这种语言时,YAML的意思其实是:"Yet Another Markup Language"

Linux集群和自动化维3.6 轻量级自动化运维工具Fabric介绍

3.6 轻量级自动化运维工具Fabric介绍 笔者公司目前的数据中心采用的是分布式部署方案,在全球多地都有数据中心.数据中心采用的是AWS EC2机器,在核心的数据中心里,EC2机器的数量比较多,基本上每个数据中心都在运行着几百台AWS EC2机器,而且业务繁忙的时候,会通过AWS AMI(Amazon系统映像)直接上线几十台相同业务的EC2机器,它们的机器类型.系统应用和配置文件基本上都是一模一样的,很多时候需要修改相同的配置文件和执行相同的操作,这个时候为了避免重复性的劳动就需要用到自动化运

自动化运维工具ansible的使用详细教程_服务器其它

一.ansible简介 1.ansible ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控主机的IP信息,被管控的主机无客户端.ansible应用程序存在于epel(第三方社区)源,依赖于很多python组件.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操

《Puppet权威指南》——1.3 自动化运维工具对比

1.3 自动化运维工具对比 在1.2节中我们介绍了现在比较常见的自动化配置工具Cfengine.Chef和Puppet,下面再来看一下这3款自动化运维工具的区别,如表1-1所示. 讲到这里,我们已经基本了解了Cfengine.Chef和Puppet这3款自动化运维工具.通过表1-1可知,Puppet的优势还是比较明显的.若是我们去Puppet的官方网站上看一看,会发现很多使用Puppet作为公司自动化运维工具的例子,目前超过18000家公司在使用Puppet软件,其中包括Twitter.Zyng

MySQL自动化运维工具 Inception

Inception 详细介绍 Inception -- 集审核.执行.备份及生成回滚语句于一身的MySQL自动化运维工具 MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很 吃力的,标准越多,DBA越累,开发也越累. 那么在这个都追求自动化运维的时代,审核也必须要跟上步伐,因此Inception诞生了.而Inception可以做的工作远不止是一个自动化审核工 具,同时还具备执行,生成对影响数据的回滚语句(类似

《Puppet权威指南》——第1章 运维工程师的利器——自动化运维工具

第1章 运维工程师的利器--自动化运维工具 随着网络云时代和大数据时代的到来,运维工程师负责管理的服务器数量也成倍地增长.如何管理好这些服务器为云时代和大数据时代保驾护航,是摆在运维工程师面前的一道难题.而解决这道难题就需要运维工程师对自动化运维工具的掌握达到一定的程度.笔者希望通过本章抛砖引玉,结合自己的经验介绍多年来使用自动化运维工具的心得和体会.本章首先介绍互联网运维工程师的职责.优秀运维工程师和普通运维工程师的区别:然后简要介绍常见的自动化运维工具:最后比较当前常见的自动化运维工具的优势

自动化运维工具Saltstack学习笔记(一)

1.Saltstack简介 Saltstack是一个具备puppet与func功能为一身的集中化,轻量级的自动化运维管理工具,使用python编写,功能非常强大,可以使用EPEL快速安装.相比较puppet,安装和配置更加容易和简单.下面是Saltstack安装和基础配置文档.(官方文档:http://docs.saltstack.com/topics/installation/rhel.html) 2.物理环境 3.安装前准备 修改服务器的主机名和hosts,使其能相互解析和ping通,下面以

自动化运维工具ansible安装配置步骤

一.简介 Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack.Ansible 是通过 Python 语言开发.Ansible 平台由 Michael DeHaan 创建,他同时也是知名软件 Cobbler 与 Func 的作者.Ansible 的第一个版本发布于 2012 年 2 月.Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上.您只需要将 Ansible 安装在一台服

Apprenda发布Kubernetes自动化运维工具KET

在美国西雅图KubeCon大会上,Apprenda发布了开源工具Kismatic Enterprise Toolkit(KET)的1.0.0版本,并为它提供商业支持.KET为开发和运营人员提供了一套工具,用于对生产环境Kubernetes容器集群的设计.部署和运营进行自动化.KET套件和它的源代码可以从Apprenda的Github主页下载,它的发行基于Apache 2.0协议. 谷歌在今年早些时候向Cloud Native Computing Foundation(CNCF)贡献了它的开源容器