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

系统 Linux 系统运维 自动化
运维自动化是运维发展的必然方向,同时也是一个运维工程师实现效率最大化的必然选择。运维自动化的知识可以说是浩瀚如海,本文将选择其中一个工具ansible为大家介绍一下。

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

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

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

1、操作系统的安装

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

2、操作系统的配置

常见的有cfengine,puppet,chef,func。其中puppet***

3、批量程序的部署

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

二、ansible介绍

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模块 

 

 

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

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

 

 

在控制端添加添加用户 

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

 

 

实现ssh秘钥认证 

此时就可以实现基于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的基本介绍到这里就结束了,下一篇文章我们会介绍一些批量部署的小技巧哦~ 

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2017-03-22 18:30:44

Linux运维自动化ansible

2014-09-22 11:24:18

运维

2015-10-08 10:55:23

云服务自动化运维 ANSIBLE

2022-07-29 14:39:17

Ansible运维工具

2014-08-04 10:10:35

IT运维自动化运维

2015-03-09 11:10:14

运维

2020-12-11 10:20:33

Ansible运维软件包

2020-04-30 15:00:17

运维Ansible自动化

2013-04-16 14:55:21

自动化运维Puppet实战

2019-10-28 15:14:53

Python脚本语言Java

2015-10-09 13:14:10

clip自动化运维工具

2012-05-05 21:28:44

2013-04-11 17:31:28

运维自动化Cobbler

2015-06-24 10:42:19

云计算运维自动化运维ANSIBLE

2010-08-12 17:39:07

网站运维自动化管理

2012-05-05 22:27:46

puppet自动化运维

2012-05-05 21:48:43

puppet自动化运维

2012-10-22 14:54:48

2012-05-05 21:43:27

puppet自动化运维

2011-09-01 10:22:03

Cobbler运维自动化
点赞
收藏

51CTO技术栈公众号