聚焦式系统管理,小手册连串

日期:2019-09-07编辑作者:系统操作

Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。

介绍


Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。Ansible 是通过 Python 语言开发。Ansible 平台由 Michael DeHaan 创建,他同时也是知名软件 Cobbler 与 Func 的作者。Ansible 的第一个版本发布于 2012 年 2 月,相比较其它同类产品来说,Ansible 还是非常年轻的,但这并不影响他的蓬勃发展与大家对他的热爱。

Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上。您只需要将 Ansible 安装在一台服务器,在 Ansible 安装完后,您就可以去管理控制其它服务器。不需要为它配置数据库,Ansible 不会以 daemons 方式来启动或保持运行状态。

Ansible 的目标有如下:
• 自动化部署应用
• 自动化管理配置
• 自动化的持续交付
• 自动化的(AWS)云服务管理。

根据 Ansible 官方提供的信息,当前使用 Ansible 的用户有:evernote、rackspace、NASA、Atlassian、twitter 等。

Puppet的简单陈述规范语言的能力提供了强大的classing制定了主机之间的相似之处,同时使他们能够提供尽可能具体的必要的,它依赖的先决条件和对象之间的关系清楚和明确。

Ansible是怎么工作的


图片 1

Paste_Image.png

从上图可以看出,运行ansible的先决条件是,安装ansible到管理节点,定义主机清单,并有一些playbooks定义。

让我们来看看我们如何使用Ansible将我们的Ubuntu虚拟机转换为Web服务器。

您在管理节点上运行Ansible Playbook,它查看您在playbook中定义的命令参数,并通知我们定位到网络组中的节点。 Ansible然后读取主机清单以查找分配给Web组的节点。在这一点上,Ansible已经准备好开始工作,所以它将通过ssh远程连接到定义的机器,通常你会想要通过预共享密钥建立一些类型的ssh信任,这样你就不必在进行ssh登陆的时候输入密码。然后Ansible将开始逐步执行playbook中的任务,一次一个任务,从顶部到底部的顺序遍历它们,就像你手动登录执行任务一样。所以,它安装软件包,更新配置文件,使用git部署我们的网站代码,最后启动我们的Web服务。当Ansible很愉快的把一切都按预期的完成,你会得到一个执行成功的状态报告。

可以用动图说明下此次过程。

图片 2

46-ansible-playbook-haproxy-nginx1.gif

Puppet与其他手工操作工具有一个最大的区别就是 Puppet的配置具有稳定性,因此你可以多次执行Puppet, 一旦你更新了你的配置文件,Puppet就会根据配置文件来更改你的机器配置,通常每30分钟检查一次。Puppet会让你的系统状态同配置文件所要求的状态保持一致。比如你配置文件里面要求ssh服务必须开启。假如不小心ssh服务被关闭了,那么下一次执行Puppet的时候,Puppet会发现这个异常,然后会开启 ssh 服务。以使系统状态和配置文件保持一致。Puppet就象一个魔术师,会让你的混乱的系统收敛到Puppet配置文件所想要的状态。

对管理主机的要求


目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.
主机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等.

可以使用Puppet管理服务器的整个生命周期,从初始化到退役。不同于传统的例如sun的Jumpstart或者RedHat的Kickstart, Puppet可以长年让服务器保持最新状态,只要一开始就正确的配置他们,然后再也不用去管他们。通常Puppet用户只需要给机器安装好Puppet并让他们运行,然后剩余的工作都由Puppet来完成

对节点主机的要求


通常我们使用 ssh 与托管节点通信,默认使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在托管节点上也需要安装 Python 2.4 或以上的版本.如果版本低于 Python 2.5 ,还需要额外安装一个模块:

python-simplejson

图片 3

Ansible 与其它配置管理的对比


选择了目前几款主流的与 Ansible 功能类似的配置管理软件 Puppet、Saltstack,这里所做的对比不针对各个软件的性能作比较,只是对各个软件的特性做个对比。

Puppet Saltstack Ansible
开发语言 Ruby Python Python
是否有客户端
是否支持二次开发 不支持 支持 支持
服务器与远程机器是否相互验证
服务器与远程机器通信是否加密 是,标准 SSL 协议 是,使用 AES 加密 是,使用 OpenSSH
平台支持 支持 AIX、BSD、HP-UX、Linux、 MacOSX、Solaris、 Windows 支持 BSD、Linux、Mac OS X、Solaris、 Windows 支持 AIX、BSD、 HP-UX、 Linux、Mac OSX、Solaris
是否提供 web ui 提供 提供 提供,不过是商业版本
配置文件格式 Ruby 语法格式 YAML YAML
命令行执行 不支持,但可通过配置模块实现 支持 支持

资源


官方文档: http://docs.ansible.com/
中文文档: http://www.ansible.com.cn/ http://ansible-tran.readthedocs.io/
Jinja2 中文文档: http://docs.jinkan.org/docs/jinja2/
yaml语法: http://www.yaml.org/
书籍: https://www.ansible.com/ebooks 链接:http://pan.baidu.com/s/1qYazeos 密码:28p2
ansible examples :https://github.com/ansible/ansible-examples
ansible-vim: https://github.com/pearofducks/ansible-vim (可以高亮显示,语法检查)


更多文章请看 Ansible 专题文章总览

本文由今晚最快开奖现场直播发布于系统操作,转载请注明出处:聚焦式系统管理,小手册连串

关键词:

fedora 16 使用LiveCD修复grub2引导

笔者认可本人这厮太贪婪了,自从笔者的Computer装了fedora16改成双系统未来,竟然又对opensuse感兴趣了,结果扬眉吐气...

详细>>

lzo文件的交互map管理,文件压缩工具集

Zutils 是一组用来管理压缩文件的工具集,协助的压缩档包涵:gzip, bzip2,lzip, and xz. 当前版本提供的命令有:zcat, zcmp...

详细>>

如何合理设置Linux的swap分区,由匿名内存看swap分

看代码的时候,从能看到通过mmap映射一段匿名内存,但是为什么非要映射一段匿名内存呢,匿名内存到底是干啥用的...

详细>>

操作系统是什么,Server的snapapi折腾笔记

目标:我要在一个被修改过的linux(基于centos5.4修改的,重新编译过内核)系统,备份他的整个硬盘,该硬盘做了LV...

详细>>