掌握Ansible 你需要这样一本指南

Posted 红帽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握Ansible 你需要这样一本指南相关的知识,希望对你有一定的参考价值。

什么是Ansible?

Ansilbe是一个部署一群远程主机的工具。远程的主机可以是远程虚拟机或物理机, 也可以是本地主机。


Ansible能做什么?

Ansilbe通过SSH协议实现远程节点和管理节点之间的通信。理论上说,只要管理员通过ssh登录到一台远程主机上能做的操作,Ansible都可以做到。

包括:


  • 拷贝文件

  • 安装软件包

  • 启动服务



Ansible的架构

Ansilbe管理员节点和远程主机节点通过ssh协议进行通信。所以Ansible配置的时候只需要保证从Ansible管理节点通过SSH能够连接到被管理的远程的远程节点即可。。但是SSH必须配置为公钥认证登录方式,而非密码认证,下一章会讲到具体的配置方法。

连接方式SSH

在管理员节点安装Ansible,编写脚本。在管理节点执行命令或者脚本时,通过SSH连接被管理的主机。 被管理的远程节点不需要进行特殊安装软件。



支持多种类型的主机

Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机。管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。


掌握Ansible 你需要这样一本指南


为什么要有Ansbile Tower


Ansilbe Tower一款针对企业用户的收费软件。

在上一节的Ansible架构中和下一章Ansbile的安装中会讲到,每一台被ansible远程管理的主机,都需要配置基于key的ssh连接。个人用户管理几台虚拟机和远程主机不会有什么问题,但是对于企业级用户,则满足不了业务和安全上的需求。


  • 首先,每增加一台主机,都需要手工配置一下ssh连接,企业级的pc主机成百上千,每个管理员都需要在自己的电脑上配置所有的ssh连接,无疑工作量巨大。

  • 还有,在安全方面如果管理员能够拿到ssh key,或者拷贝给别人,对于生产环境来说无疑是最大的安全隐患。


Ansible Tower能做什么

Ansile Tower则是针对企业级用户的,中心化ansible管理节点。它向管理员提供 Web 页面接口,来运行ansible脚本playbook。


  • 管理员在ansible tower上使用和分享主机的ssh key,但是不能查看和拷贝key文件。

  • 登录ansible tower的所有管理员可以共享playbook脚本,减少重复工作。

  • 此外ansible还可以收集和展现所有主机的playbook的执行状况,便于统计和分析主机的状态。


说了这么多,看下面这张架构图就清晰了:


掌握Ansible 你需要这样一本指南


安装Ansile

这里以RedHat系Linux为例,其他系统请参考ansible的官网。


管理员的电脑上


  • 安裝Ansible软件


$ # Redhat/CentOS Linux上,Ansible目前放在的epel源中
$ # Fedora默认源中包含ansible,直接安装包既可
$ sudo yum install epel-release
$ sudo yum install ansible -y



  • 配置Ansible管理节点和主机的连接


其实就是配置从管理节点到远程主机之间基于key(无密码的方式)的SSH连接:


$ # 生成ssh key
$ ssh-keygen
$ # 拷贝ssh key到远程主机,ssh的时候就不需要输入密码了
$ ssh-copy-id remoteuser@remoteserver
$ # ssh的时候不会提示是否保存key
$ ssh-keyscan remote_servers >> ~/.ssh/known_hosts


验证SSH配置: 在管理节点执行下面的ssh命令,既不需要输入密码,也不会提醒你存储key,那就成功啦。


$ ssh remoteuser@remoteserver


被管理的远程主机

不需要安装特殊的包,只需要python>2.4,RedHat Linux一般安装方式都是默认安装的。



以上内容节选自《Ansible快速入门:技术原理与实战》。这是一本Ansible入门书籍,侧重于实战,浅入深地介绍了Ansible以及周边产品Ansible Galaxy和Ansible Tower的用法。本书共计6章,前4章由浅及深、层层递进地介绍了Ansible的使用方法。第5章着重介绍了Ansible的代码分享机制role以及其分享平台Ansible Galaxy。第6章概括性地介绍了企业级软件Ansible Tower。全书的叙述风格通俗易懂,没有过多地引入复杂的概念,侧重于讲解原理,立足于实战,引领Ansible新手轻松入门。

关于作者


史晶晶,毕业于吉林大学计算机与科学技术专业,资深软件工程师,目前在红帽软件从事Linux与云平台的工具开发工作。


点击“阅读原文”了解更多详情。

以上是关于掌握Ansible 你需要这样一本指南的主要内容,如果未能解决你的问题,请参考以下文章

ansible介绍和安装

Ansible 文档译文Playbooks 变量

细说Ansible主机清单inventory

在詹金斯调用Ansible剧本

Ansible权威指南pdf

ansible的常见模块用法