掌握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。
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的执行状况,便于统计和分析主机的状态。
说了这么多,看下面这张架构图就清晰了:
安装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 你需要这样一本指南的主要内容,如果未能解决你的问题,请参考以下文章