自动化运维系列之Ansible的简介与安装

自动化运维工具简介

由于互联网的快速发展导致产品更新换代的速度逐渐加快,这就导致运维人员的日常工作会大大增加,如果还是按照传统方式进行维护工作会使工作效率低下。此时,就需要部署自动化运维了,自动化运维会尽可能安全、高效的完成运维人员的日常工作。

自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:Puppet、Func、Zabbix等;另一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如:Ansible、Fabric等。

Ansible简介

Ansible是基于Python开发的,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能。默认通过ssh协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多平台主机并行管理,使得管理主机更加便捷。

自动化运维系列之Ansible的简介与安装_第1张图片

以上就是Ansible基本构架组成,主要分为六个部分:

Ansible core 核心引擎

Host inventory 主机清单:用来定义Ansible所管理的主机,默认是在Ansible的hosts配置文件中定义被管理主机,同时也支持自定义动态主机清单和指定其他配置文件的位置。

Connection plugins 连接插件:负责和被管理主机实现通信。除支持使用SSH连接被管理主机外,Ansible还支持其他的连接方式,所以需要有连接插件将各个主机用连接插件连接到Ansible。

Playbooks(yam1,jinja2) 剧本 : 用来集中定义Ansible任务的配置文件,即将多个任务定义在一个剧本中由Ansible自动执行,可以由控制主机针对多台被管理主机同时运行多个任务。

Core modules 核心模块:是Ansible自带的模块,使用这些模块将资源分发到被管理主机,使其执行特定任务或匹配特定的状态。

Custom modules 自定义模块:用于完成模块功能的补充,可借助相关插件完成记录日志、发送邮件等功能。

Ansible自动化运维工具的部署安装

  • 实验环境
角色 主机名 IP地址 组名
控制主机 CentOS7-1 172.16.10.138
被管理主机 CentOS7-2 172.16.10.147 webserver
被管理主机 CentOS7-3 172.16.10.133 mysql
  • 安装配置yum源

yum -y install epel-release

  • 安装Ansible工具及tree树形图显示工具

yum -y install ansible tree

  • 安装好ansible之后,可以查看ansible的版本信息

ansible --version

自动化运维系列之Ansible的简介与安装_第2张图片

  • 以树形图的方式显示ansible的相关文件

tree /etc/ansible

自动化运维系列之Ansible的简介与安装_第3张图片

  • 修改ansible的主机清单,将两台被管理主机的IP及组名添加

vim /etc/ansible/hosts

[webserver]
172.16.10.147    #将第一台被管理主机添加至webserver组

[mysql]
172.16.10.133   #将第二台被管理主机添加至mysql组
  • 生成密钥对,使控制主机发送部署时免交互
ssh-keygen -t rsa
ssh-copy-id [email protected]
ssh-copy-id [email protected]

ssh-agent bask
ssh-add