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

豌豆贴心提醒,本文阅读时间5分钟

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

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

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

1、操作系统的安装

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

2、操作系统的配置

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

3、批量程序的部署

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

二、ansible介绍

ansible的架构大致如下

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

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

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

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

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

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

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

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

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

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

三、ansible的基本使用

安装软件yum install ansible -y # 对应的软件在 epel 仓库中也可自己手动编译
#源码地址 https://pypi.python.org/packages/source/a/ansible/ansible-1.5.tar.gz
2、定义Host Inventory
# vim /etc/ansible/hosts
[webhosts]
172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=guoting
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可以修改如下

###### /etc/ansible/hosts
[webhosts]
172.16.10.22
172.16.10.33

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

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

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


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏七夜安全博客

后门编程(1)之双管道主动连接型

16040
来自专栏同步博客

Redis可视化工具 Redis Desktop Manager

  从接触Redis也有两年,平时就使用它来做缓存层,它给我的印象就是很强大,内置的数据结构很齐全,加上Redis5.0的到来,新增了很多特色功能。而Redis...

11.8K30
来自专栏实用工具入门教程

如何搭建微信订阅号后台服务

微信公众号后台自带的功能可能有时不能满足我们的需要,这时候我们就需要搭建自己的服务端。本实验带您从零开始,基于 NodeJS 搭建起一个可以支撑微信订阅号自动回...

2.2K40
来自专栏上善若水

S005SELinux(SEAndroid)的实际文件组成无标题文章

SEAndroid 是将SELinux 移植到Android 上的产物,可以看成SELinux 辅以一套适用于Android 的策略。

23250
来自专栏HansBug's Lab

【gitlab】gitlab快速部署教程

下载页面: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/g...

41210
来自专栏大数据和云计算技术

MongoDB系列11:Munin监控MongoDB

Munin是一个网络资源监控工具,可以帮助分析资源趋势。默认提供了大量的分析图形。以下讲述如何设置MongoDB的Munin监控插件。

23130
来自专栏林欣哲

图解Git合并--Merge和Rebase

项目初始情况 ? Merge fast-forward ? 快速合并,直接把指针指向前去,无冲突要解决。 非 fast-forward ? 保留历史记录,解决冲...

35670
来自专栏猿人谷

CentOS7安装GitLab、汉化、邮箱配置及使用

一.GitLab简介 GitLab是利用Ruby On Rails开发的一个开源版本管理系统,实现了一个自托管的Git项目仓库,是集代码托管,测试,部署...

34270
来自专栏MoeLove

Open-Falcon监控系统部署

数据库连接的配置格式是: username:password@tcp(path:port)/xxxx

47830
来自专栏云计算教程系列

使用mysqldump备份MySQL或MariaDB

在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具。本文将简介MySQL如何使用mysqldump工具进...

17730

扫码关注云+社区

领取腾讯云代金券