自动化运维系列之Ansible的简介与安装
自动化运维工具简介
由于互联网的快速发展导致产品更新换代的速度逐渐加快,这就导致运维人员的日常工作会大大增加,如果还是按照传统方式进行维护工作会使工作效率低下。此时,就需要部署自动化运维了,自动化运维会尽可能安全、高效的完成运维人员的日常工作。
自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:Puppet、Func、Zabbix等;另一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如:Ansible、Fabric等。
Ansible简介
Ansible是基于Python开发的,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能。默认通过ssh协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多平台主机并行管理,使得管理主机更加便捷。
以上就是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的相关文件
tree /etc/ansible
- 修改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 root@172.16.10.147
ssh-copy-id root@172.16.10.133
ssh-agent bask
ssh-add
https://blog.51cto.com/13659301/2158115