特点
python开发
Ansible 是 python语言编写的,而Devops在国内已然是一种趋势,python逐步普及,运维人员自己开发工具的门槛降低,得益于此,方便对Ansible进行二次开发
Agentless
Ansible 主推的卖点是其无需任何Damon维护进程即可实现相互间的通信,且通信方式基于SSH,同时因为SSH是每台linux主机系统必装的软件,所以Ansible无需在远程主机端安装任何额外的进程,即可实现Agentless,进而助力其实现去中心化的思想。
Ansible的组成部分
Ansible 组成部分- playbooks:
任务剧本,编排Ansible任务集的配置文件,由ansible会顺序执行,通常是Json格式的YML文件。 - INVENTORY:
ansible主机管理清单 - MODULES:
Ansible执行命令的功能模块,多数为内置的核心模块,也可以自定义,比如说user、yum、shell等 - PLUGINS:
模块功能的补充,如连续类型插件、循环插件、变量插件等,不常用 - API:
供第三方程序调用的应用程序编程接口 - ANSIBLE核心:
我们可以理解为ANSIBLE的命令工具,所有命令的执行通过该工具去调用INVENTORY、API、MODULES、PLUGINS等
ansible的执行逻辑
Ansible执行逻辑使用者使用ansible或者ansible-playbooks(会额外读取playbook文件)在服务器终端输入的Ansible命令集或者playbook后,Ansible会遵循预先编排的规则将PLAYbook逐条拆解为Play,再将Play组织成Ansible可以识别的任务(Task),随后调用任务涉及到的所有MODULES及PLUGINS,根据INVENTORY中定义的主机列表通过SSH协议将任务集以临时文件或者命令的形式传输到远程客户端并返回结果,如果是临时文件则执行完毕后自动删除。
需要安装些什么
Ansible默认通过 SSH 协议管理机器.
安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器.在远程被管理的机器上,不需要安装运行任何软件,因此升级Ansible版本不会有太多问题.
选择哪一个版本?
因为Ansible可以很简单的从源码运行,且不必在远程被管理机器上安装任何软件,很多Ansible用户会跟进使用开发版本.
Ansible一般每两个月出一个发行版本.小bugs一般在下一个发行版本中修复,并在稳定分支中做backports.大bugs会在必要时出一个维护版本,不过这不是很频繁.
对管理主机的要求
目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.
安装
Ansible被Redhat红帽官方收购后,其安装源被收录在EPEL中,如已安装EPEL可直接通过yum安装,或者通过PIP 或者easy_install 的python第三方包管理器也可以安装Ansible。
pip安装方式
安装python-pip及python-devel程序包
yum install -y python-pip python-devel -y
如果是centos7 ,请先安装EPEL扩展源
sudo yum -y install epel-release,再执行上面的命令
安装Ansible服务
//安装前请确认服务器的gcc、glibc 开发环境均已安装,系统几乎所有的软件包编译环境均基于gcc,如不确认,可以先执行如下命令:
yum install -y gcc glibc-devel zlib-devel rpm-build openssl-devel
升级本地pip至最新版本
pip install --upgrade pip
安装ansible服务
pip install ansible --upgrade
验证:
ansible --versions
yum安装方式
//安装前请确认服务器的gcc、glibc 开发环境均已安装,系统几乎所有的软件包编译环境均基于gcc,如不确认,可以先执行如下命令:
yum install -y gcc glibc-devel zlib-devel rpm-build openssl-devel
sudo yum -y install epel-release #安装EPEL扩展源
yum install -y ansible
验证:
ansible --version
EPEL : (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是由Fedora小组维护的一个软件仓库项目,为RHEL/CENTOS提供他们默认不提供的软件包
建议读者使用yum 安装方式,因为后面本人会根据yum安装方式为大家介绍ansible的配置文件
网友评论