一、Ansible概述
由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下。这是部署自动化运维可以尽可能安全、高效地完成这些工作。
Ansible是基于Pythen开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并进行管理,使得管理主机更加便捷。
二、Ansible核心组件
Ansible可以看做是一种基于模块进行工作的框架进行工作的框架结构,批量部署能力就是由Ansible所运行的模块实现的。简而言之Ansible是基于“模块”完成各种“任务”的。其基本框架结构如下图。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第1张图片
Ansible基本框架由六个部分组成:
Host inventory主机清单:用来定义Ansible所管理的主机,默认是在Ansible
的hosts配置文件中定义被管理主机,同时也支持自定义动态主机清单和指定其他配置文件的位置。
Connection plugins连接插件:负责和被管理主机实现通信。除支持使用SSH连接被管理主机外,Ansible还支持其他的连接方式,所以需要有连接插件将各个主机用连接插件连接到Ansible。
Playbooks剧本:用来集中定义Ansible任务的配置文件,即将多个任务定义在一个剧本中Ansible自动执行,可以由控制主机针对多台被管理主机同时运行多个任务。
Core modules核心模块:是Ansible自带的模块,使用这些模块将资源分发到被管理主机,使其执行特定任务或匹配特定的状态。
Custom modules自定义模块:用于完成模块功能的补充,可借助相关插件完成记录日志、发送邮件等功能。
三、在CentOS7上安装Ansible并实现免交互
实验环境:3台CentOS7
要求3台虚拟机在同一网段。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理
这里直接使用yum在线安装Ansible。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第2张图片
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第3张图片
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第4张图片
进入hosts文件中定义所需要管理的服务器IP地址。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第5张图片
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第6张图片
生成密钥和公钥。公钥需要给被管理的服务器所知道。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第7张图片
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理_第8张图片
在被管理的服务器上就可以看到公钥
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理
实验能否与被管理的服务器实现通信。
Ansible基本介绍并在CentOS7上安装Ansible且实现免交互管理
实现免交互