设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Ansible评测:老牌Unix管理员的梦想级方案

2013-10-16 15:02| 发布者: joejoe0332| 查看: 4036| 评论: 0|原作者: 51CTO|来自: 51CTO

摘要:   大部分服务器自动化及流程解决方案,例如Puppet与Chef,都依赖于特定方案编码、Web UI以及命令行工具等要素的综合体,从而使整套体系正常运转。Ansible则有所不同。尽管也能够支持Web UI,Ansible在Unix管理员的 ...


  现在,我们可以运行其它命令进一步探索其功能特性:


  • [ansible@ansible1: ~]$ ansible all -m copy -a ”src=/etc/myconf.conf dest=/etc/myconf.conf” -u ansible -sudo 
  • ansiblecentos.iwlabs.net | success >> { 
  •     ”changed”: true,  
  •     ”dest”: ”/etc/myconf.conf”,  
  •     ”gid”: 500,  
  •     ”group”: ”ansible”,  
  •     ”md5sum”: ”e47397c0881a57e89fcf5710fb98e566″,  
  •     ”mode”: ”0664″,  
  •     ”owner”: ”ansible”,  
  •     ”size”: 200,  
  •     ”src”: ”/home/ansible/.ansible/tmp/ansible-1379430225.64-138485144147818/source”,  
  •     ”state”: ”file”,  
  •     ”uid”: 500 
  • ansibleubuntu.iwlabs.net | success >> { 
  •     ”changed”: true,  
  •     ”gid”: 1000,  
  •     ”group”: ”ansible”,  
  •     ”mode”: ”0664″,  
  •     ”owner”: ”ansible”,  
  •     ”path”: ”/etc/myconf.conf”,  
  •     ”size”: 200,  
  •     ”state”: ”file”,  
  •     ”uid”: 1000 


  如大家所见,以上命令旨在将/etc/myconf.conf文件复制到我们的两台托管主机当中。在复制过程中,我们还会获得一个JSON返还对象,其中包括数据以及文件归属等信息。我们还可以通过命令行调整其归属、权限以及其它变量。


  我们还可以通过以下命令确保服务会在主机启动的同时开始运行:


  • [ansible@ansible1: ~]$ ansible webservers -m service -a ”name=httpd state=running“ u ansible -sudo 


  或者重新启动这些主机:

  • [ansible@ansible1: ~]$ ansible webservers -m command -a ”/sbin/reboot -t now” 


  或者提取一份包含全部主机的清单:

  • [ansible@ansible1: ~]$ ansible  all -m setup  -u ansible –sudo 


  最后一行命令将输出用于描述每一台主机的JSON对象,其中包括总体内存、已使用内存、CPU、网络、磁盘信息、操作系统版本以及内核版本等等。


  如各位所见,Ansible允许用户通过调整命令行参数执行命令、收集数据并向目标位置复制文件。


   这项功能本身也可以单独通过SSH外加一些脚本来实现,毕竟利用远程主机上的SSH实现命令执行早已不是什么新闻。Ansible的进取之处在于有能力 通过一条短短的参数集同时实现命令执行、分组、清单以及其它更高级别的主机管理功能。每一项Ansible命令行功能都提供多种选项,包括引用多个分组或 者在单一子集(例如将前五十台服务器构建为一个分组子集)中运行命令。


  Unix管理员当然能够立即上手这些功能,并快速利用Ansible的工具编写脚本、从而以非常简便的方式实现任务处理的自动化与流程化。除此之外,我们还可以创建Playbook以收集命令与任务集,这样能够大大降低管理工作的复杂程度。


  Ansible Playbook


  Playbook采用YAML语法结构,因此它们一般比较易于阅读并加以配置。举例来说,下面这条简单的Playbook能够确保NTPD始终以“ansible”用户身份运行在全部主机上、且利用sudo进行连接。


  • — 
  • - hosts: all 
  • remote_user: ansible 
  • tasks: 
  • - service: name=ntpd state=started 
  • sudo: yes 


  我们还可以利用Playbook实现文件复制。如下所示为Playbook文件复制版本,其中同时对归属及文件所在客户机的权限做出了指定:


  • — 
  •  
  • - hosts: all 
  •  
  • remote_user: ansible 
  •  
  • tasks: 
  •  
  • - name: Copy file to client 
  •  
  • copy: src=/etc/myconf.conf dest=/etc/myconf.conf 
  •  
  • owner=root group=root mode=0644 


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部