热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

funcmcollectivesaltandrundeck(saltstack简介)

转自:http:wiki.saltstack.cnfunc-mcollective-salt-and-rundeck*原文:http:www.coloandcloud

转自:http://wiki.saltstack.cn/func-mcollective-salt-and-rundeck

原文: http://www.coloandcloud.com/editorial/func-mcollective-salt-and-rundeck/

译者: pengyao

* 译者注: 无意中看到这篇文章,才知道世界上还有salt这个神器,把玩一番后被深深的吸引,不可自拔......

Remote execution is an often underestimated component of cloud computing. Some compare it to the foundation of a building that easily gets looked over, but facilitates the construction of the edifice placed on top. The goal of a remote execution system is to have a means to execute commands on large numbers of desktops/servers without having to log into them one at a time.Several open source cloud communication / remote execution solutions are currently available; we’ll just focus our attention on Func, MCollective, Salt and RunDeck. While differing in their strengths, there is enough similarities to review these four solutions together.

远程命令执行是一个常常被低估的云计算组件. 有人将它比作一个大厦的基础,看起来很简单,却承载着上层建筑. 远程执行系统的目的是无需一次登录到大量桌面或服务器上,即可完成大批量远程执行命令操作. 当前有许多开源的通讯或远程执行套件: 我们将在本文关注下Func、MCollective、Salt及RunDeck,对比他们的优势和差异.

https://img.php1.cn/3cd4a/1eebe/cd5/4283cd4bbba41b87.png

Func



Func is an acronym for “Fedora Unified Network Controller“, and is a popular open source tool that provides a two-way authenticated system for remote administration. Func is customizable with modules and easily works in conjunction with applications.

Func 是Fedora Unified Network Controller的首字母缩写,它是一个流行的开源工具,为远程管理提供双端认证的系统. Func 是通过定制化的模块非常易于和应用程序结合工作.

Integration with existing management tools(与现有管理工具整合)

Func is included in Fedora and EPEL. Func is compatible with EL-4 and up, and Fedora 7 and up. Active development with Taboot, OpenSymbolic, Genome,FuncWeb, Loki, Funcshell, CAS and OpenNode. Puppet certificate authority integration.

与以存在的管理工具集成, Func包含在 Fedora 及 EPEL 中, Func兼容EL-4及Fedora 7及以上系统. 活跃的开发使用者有Taboot, OpenSymbolic, Genome, FuncWeb, Loki, Funcshell, CAS及 OpenNode. 可以轻松和Puppet证书认证集成.

Programming interface(编程接口)

Python API for module creation, development and customization. Various libraries exist to speak with Func from other languages (such as the Java/Groovy Binding). Func works over XMLRPC and SSL.

为模块创建、开发及定制提供Python API. 多样的函数库为其他语言(如Java/Groovy)连通Func提供了桥梁. Func工作基于XMLRPC和SSL.

Scale it can handle Can handle large networks of desktops/servers with a minimum of hassel and setup.

只需要少量的成本和部署,即可操作大量的桌面/服务器.

Ease of deployment(部署简单)

Simple setup: yum/rpm; debian, and AIX (limited).

部署简单: yum/rpm; debian及AIX(有限制).

Features offered(特性)

Manage an arbitrary group of machines all at once. Automatically distribute certificates to all “Slave” machines. Command line for sending remote commands and gathering data. Anyone can write their own modules using the Python module API. Works over XMLRPC and SSL. Uses certmaster for secure master-to-slave communication.

一次课管理任意主机组. 自动为 Slave分配证书. 通过命令行发送远程执行命令及收集数据. 可以通过Python API模块编写自己的模块. 基于XMLRPC和SSL, 使用certmaster来保证masterslave交互数据安全.

Resources(资源)

* Func website: https://fedorahosted.org/func/

* Func-list: https://www.redhat.com/mailman/listinfo/func-list

* #func IRC on irc.freenode.net

Salt



Salt is quite flexible and has shown appeal to simple system administrator tasks, as well as the DevOps community, up to application development. Salt is intended not only to be an interface as an administrative tool, but also a development platform. Salt has a very rich feature set, from being extremely fast to being highly extensible.

Salt是一个相当灵活、简单易于的系统管理工具,常用于DevOps环境. Salt不仅仅可以作为管理工具接口,也可用于开发平台. Salt有非常丰富的特性,可以快速部署、高效扩展.

Integration with existing management tools(与现有管理工具整合)

  • Salt is fundamentally detached in the way that it executes commands, which makes it easy to actively integrate into existing applications. Salt is integrated in the package managers for Red Hat, Fedora, Debian, Ubuntu, FreeBSD, Gentoo and Arch Linux. Salt is also integrated into libvirt for virtual machine management, as well as the network stack, and user management system for Linux and FreeBSD. Salt modules enable platform specific application integration.

与已存在的管理工具整合. 通过执行命令, Salt可以轻松的与已存在的应用整合. Salt可以整合在RedHat、Fedora、Debian、Ubuntu、FreeBSD、Gentoo及Arch Linux包管理系统中. Salt也可以整合在libvirt中,用于虚拟机的管理,也可以为Linux及FreeBSD提供用户管理. Salt模块化的平台支持和应用程序整合. (译者注:当前Salt已经包含在EPEL中)

Programming interface(编程接口)

Salt comes with a Python API. The api can be used to do many things, from integrating an application into the remote execution system, to gaining direct access to the system that integrates application interfaces.

Salt提供一个Python API. 该API可以用于在远程执行系统中整合应用程序, 为应用程序接口提供直接访问系统的接口.

Scale it can handle

Salt is engineered to handle a high load and has been tested with concurrent complex commands running simultaneously on almost 2000 clients at once for sustained periods. Salt also scales in the form of process space, as it supports multiple worker processes. Additionally, Salt can also scale from a topology perspective, the salt syndic interface allows for many groups of salt minions to be joined together in ad hoc management layouts.

Salt为高负载环境设计,测试数据为复杂命令运行并发支撑近2000个客户端. Salt支持多线程. 此外,salt syndic接口允许大量的salt minions组加入到特别的管理层(译者注:没太明白原文意思......).

Ease of deployment(易于部署)

To deploy Salt, it only needs to be installed, pointed to the salt master (a one line config change) and turned on. Generally, you can have Salt up and running in a matter of minutes.

部署Salt时,只需要安装salt后,指向salt master(只需一行配置)并运行它即可. 通常情况下,部署及运行salt整个过程只需要数分钟即可.

Features offered(特性)

Salt integrates configuration management with remote execution, creating a complete control interface. A few of the built-in features include support for: Apache, Portage, FreeBSD, Tomcat, YUM. Salt also executes calls on SELinux and Puppet routines.

Salt整合了配置管理及远程执行命令, 提供了一个完整的控制接口. 内置的特性包括支持Apache, Portage, FreeBSD, YUM. Salt也可以在SELinux及Puppet路由(译者注: 这个puppet routines该怎么理解......)上执行调用

Resources(资源)

* SaltStack website: http://saltstack.org/

* IRC channel #salt on OFTC

* Google User Group: https://groups.google.com/forum/#!forum/salt-users

* SaltStack video channel: http://blip.tv/saltstack

MCollective



MCollective, formerly known as “Marionette Collective” (acquired by Puppet Labs in 2010), is a tool primarily used for programmatic execution of System Administration actions on clusters of servers. MCollective delivers a very scalable and very fast parallel execution environment by leveraging Publish Subscribe Middleware and meta data (as opposed to hostnames).

MCollective, 早期被称为Marionette Collective(acquired by Puppet Labs in 2010), 是一个主要用于在集群环境中为系统管理提供命令执行的工具. MCollective通过发布/订阅(Publish Subscribe)中间件及元数据(as opposed to hostnames)提供一个易度量并快速平行执行环境.

Integration with existing management tools(与现有管理工具整合)

MCollective’s core framework allows the user to build out a customized system (replace MCollective’s choice of middleware – STOMP compliant middleware – with your own like AMQP based). You can replace the authorization system with one that suits your local needs. Additionally you can replace the serialization – Ruby Marshal and YAML based – with your own like JSONSchema that is cross language. You can also add sources of data, like Chef and Puppet, and can provide a plugin to give access to your tools data. You can also create a central inventory of services leveraging MCollective as transport that can run and distribute inventory data on a regular basis.

MCollective核心框架允许用户建立一个定制化的系统(替换掉MCollective选择的STOMP compliant中间件,替换为如AMQP等等). 你也可以基于本地环境需要替换掉授权系统. 此外也可以替换掉 Ruby Marshal及YAML,替换为JSONSchema。 你也可以添加数据源,如Chef及Puppet等能够提供访问工具数据的查件. 你也可以利用MCollective作为数据传送工具建立中心服务资产管理,定期正确的分配数据(译者注: 没用过MCollective,所以翻译得很晦涩,不过MCollective看起来很强大).

Programming interface(编程接口)

Write simple RPC style agents, clients and Web UIs in Ruby.

通过Ruby可以编写简单的RPC样式agent, clients和Web UI

Scale it can handle

Small to very large clusters of servers. Re-use the ability of middleware to do clustering, routing and network isolation to realize secure and scalable setups.

从小规模服务到大规模集群应用. Re-use the ability of middleware to do clustering, routing and network isolation to realize secure and scalable setups.

Ease of deployment(易于部署)yum,

Setup is straight-forward, requiring: 1) A Stomp server, tested against ActiveMQ; 2) Ruby; Rubygems; 3)A Ruby Stomp Client. Offers serveral easy installs: yum/rpm, plus a blip.tv channel with videos, webinars and screen casts for additional support.

Setup is straigh-forward, 需要: 1) 一个Stomp服务, tested against ActiveMQ; 2) Ruby: Rubygems; 3)一个Ruby Stomp客户端. 可以通过yum/rpm等轻松安装, blip.tv有视频,在线研讨会及截图提供额外的支持.

Features offered(特性) Interact with small to large server clusters. Uses a broadcast paradigm for request distribution. Address machines by meta-data (from Puppet, Chef, Facter, Ohai or your own plugin) as opposed to their hostnames. Simple to use command line tools to call remote agents. Write custom infrastructure reports. Active community developing agents to manage packages, services and other components. Write simple RPC style agents, clients and Web UIs in Ruby. Extremely pluggable and adaptable to local needs.

适用于从小规模服务到大规模集群应用. 使用广播来完成请求分配. 主机元数据(来源于Puppet、Chef、Facter、Ohai或你自己的插件) as opposed to their hostnames. 简单的命令行工具区调用远端agent. 可以自定义基础抱抱。 活跃的社区开发agent管理抱,服务和其他自检. 通过Ruby可以编写简单的RPC样式的agent, clients和Web UI. Extremely pluggable and adaptable to local needs.

Resources(资源)

* MCollective website: http://puppetlabs.com/mcollective/introduction/

* Author’s blog: http://www.devco.net/archives/tag/mcollective

* MCollective User Group: http://groups.google.com/group/mcollective-users

* Video Channel: http://blip.tv/the-marionette-collective

* @puppetlabs: http://twitter.com/#!/search/puppetlabs

RunDeck



RunDeck’s primary goal is to play the role of a job console, a web-based simple workflow tool for DevOps teams to define and run a variety of routine jobs in a distributed environment.

RunDeck主要目标是为DevOps团队提供一个指令控制台, 一个基于web简单工作流的工具,用于在分布式环境中定义和运行多样的任务.

Integration with existing management tools(与现有工具整合)

There exist plugins for: Chef, Puppet, Amazon EC2, and Jenkins. RunDeck has a few plugin interfaces for retrieving Node resources and Job Option values from other sources. Plugins can be defined using shell scripts which allows hand-rolled integration with e.g. in-house CMDBs. It also has webhooks for reporting job results to other systems, and a Web API for interacting with jobs and adhoc commands, resources, and executions.

现有查件可以支持Chef, Puppet, Amazon EC2及Jenkins. RunDeck提供插件接口可以用于从其他资源中检索节点资源和任务选项值等. Plugins can be defined using shell scripts which allows hand-rolled integration with e.g. in-house CMDBs. 同时也提供为WEB钩子可以将任务结果报告给其他系统及一个WebAPI作用于jobs、adhoc命令、资源及执行(译者注: 亲,没结果过RunDeck,翻译得好晦涩......)

Programming interface(编程接口)

There is a HTTP API to perform most tasks that are available via the GUI. Most plugins can be written as shell scripts and all can be written in Java.

当前提供有一个HTTP API,可以用于通过GUI完成大多数任务. 大多数插件可以使用shell编写,Java可以完整all (译者注: 看看玩RunDeck的运维得懂Java啊)

Scale it can handle

Some clients have used it with upwards of 7000 nodes. Depending on what kind of scale (concurrent jobs vs. number of nodes), different RAM requirements come into play.

一些客户用它部署了7000多个节点. Depending on what kind of scale (concurrent jobs vs. number of nodes), different RAM requirements come into play.

Ease of deployment(易于部署)

There are several easy installs: yum/rpm; debian; and a single-file “launcher” jar which can install and run itself (similar to Jenkins’ war). Projects can be set up and configured via the CLI or GUI. Requirements: java 6 (works with openjdk).

有多重方法进行安装,如yum/rpm; debian; 单个文件运行jar(类似于Jenkins的war包). 项目可以通过CLI或GUI建立. 需要安装Java 6(可可以用openjdk).

Features offered(特性)

There is a job scheduler for running commands and workflows on multiple nodes. The GUI provides easy shared view of live executions, history, nodes and jobs. Also provides CLI and web API. Authentication and Authorization via LDAP/Active-Directory or file-based. Comprehensive access control policy: control who can see, run, and modify Projects and Jobs. Adhoc executions in the GUI; type, run, and watch. Retry a job/adhoc command on any failed nodes. Plugin interface for Node sources and definition formats. Job and Node definitions can be imported/exported in XML or YAML for use with SCM systems.

有一个任务调度器用于在多节点运行命令和工作流. GUI提供简单的在线命令执行、历史、节点、任务查看等. 也提供有CLI和Web API. 认证和授权系统使用LDAP/AD或基于文件. 包括访问控制规则: 控制谁能看,运行,修改项目和任务. 可以通过GUIl临时性的执行: 类型、运行、查看等. 当节点执行失败后重试一个任务或临时性命令. 为节点(node)元和定义格式提供插件接口. 任务和节点定义可以在SCM系统中通过XML或YAML进行导入/导出.

Resources(资源)

* RunDeck website: http://rundeck.org/

* Google User Group: http://groups.google.com/group/rundeck-discuss

* Videos/Screencasts by Alex Honor and Greg Schueler: http://vimeo.com/user6885999/videos/sort:date http://vimeo.com/31115008

* @Rundeck: http://twitter.com/#!/Rundeck



推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
author-avatar
遗忘的睡骨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有