目录
ansible简介与部署
ansible 是什么?
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远
程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。
ansible特点
部署简单,只需要在控制端部署ansible,被控制端不需要任何操作
默认使用ssh协议对设备进行管理
有大量常规操作模块,可以实现日常绝大部分操作
配置简单,功能强大,扩展性强
支持API及自定义模块,可通过Python轻松扩展
通过Playbooks来定制强大的配置、状态管理
轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
ansible的架构模块
核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):定义ansible管理的主机
安装ansible
强烈建议使用yum 进行安装,或者装所有服务器配置为同一版本的python以避免因为python版本而导致的错误。
先配置epel源,可以去阿里源找(epel镜像epel下载地址epel安装教程-阿里巴巴开源镜像站 (aliyun.com))
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
然后yum安装ansible
[root@ansi-1 ~]# yum -y install ansible
当我们需要管理一些主机的时候需要在/etc/ansible/hosts文件里添加资产
[root@ansi-1 ~]# cat /etc/ansible/hosts
[test1]
192.168.8.7
192.168.8.8
然后我们没有配置ssh的时候在使用ansible命令需要加入-k命令来验证ssh,然后可以配置ssh密钥验证,这样就不需要加入-k命令了
[root@ansi-1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/53MPGKbNX4fbP1kMVNVaVbm/hkJ6b/H38cS0AJg2Lk root@ansi-2
The key's randomart image is:
+---[RSA 2048]----+
| ooo O|
| ..o . .*.|
| . . +o o|
| E + o.o|
| S + *.|
| . + O|
| . oX=|
| .oO+=@|
| .+oB=X|
+----[SHA256]-----+
[root@ansi-1 ~]# ssh-copy-id 192.168.8.7
这样就可以在使用ansible命令的时候省去-k选项