使用者:Alexanderonepills/沙盒

Ansible
原作者Michael DeHaan
開發者Ansible Community / Ansible Inc. / 紅帽公司
首次發布2012年2月20日,​12年前​(2012-02-20
當前版本2.7.4(2018年11月30日,​5年前​(2018-11-30[1]
預覽版本2.7.0rc4(2018年9月28日,​6年前​(2018-09-28[1]
編程語言Python, PowerShell, Shell, Ruby
操作系統Linux, 類Unix系統, MacOS, Windows
語言English
類型組態管理, Infrastructure as Code, Orchestration engine
許可協議專有軟件 / GNU通用公共許可證

計算 (計算機科學)領域, Ansible 是一個提供配置管理和應用程序部署工具的開源軟件[2]. 它運行在許多類Unix系統系統上,可以配置類Unix系統系統和Microsoft Windows。 它使用自己的聲明式編程來描述系統配置。

它由Michael DeHaan編寫並於2015年被Red Hat收購。與競爭產品不同,Ansible是無代理的 - 通過SSH或遠程PowerShell臨時連接以執行其任務。

歷史

Ansible was developed by Michael DeHaan, the author of the provisioning server application Cobbler and co-author of the Func framework for remote administration.[3]

The name "Ansible" refers to a fictional instantaneous hyperspace communication system (as featured in Ursula K. Le Guin's Rocannon's World,[4] and Orson Scott Card's Ender's Game).[5][6]

Ansible, Inc. (originally AnsibleWorks, Inc.) was the company set up to commercially support and sponsor Ansible.[7][8] Red Hat acquired Ansible in October 2015.[9][10]

Ansible is included as part of the Fedora distribution of Linux, owned by Red Hat Inc., and is also available for Red Hat Enterprise Linux, CentOS, Scientific Linux and Oracle Linux via Extra Packages for Enterprise Linux (EPEL) as well as for other operating systems.[11]

Architecture

As with most configuration management software, Ansible has a single controlling machine which is where orchestration begins. Nodes are managed by this controlling machine - typically over SSH. The controlling machine describes the location of nodes through its inventory.[12]

In contrast with other popular configuration management software — such as Chef, Puppet, and CFEngine — Ansible uses an agentless architecture,[13] with controlled node not requiring a background daemon.[13]

To orchestrate nodes, Ansible deploys modules to nodes over SSH which are temporarily stored in the nodes and communicate with the controlling machine through a JSON protocol over the standard output.[14] When Ansible is not managing nodes, it does not consume resources on them because no daemons or programs are executing.[13]

設計目標

The design goals of Ansible include:[14]

  • Minimal in nature. Management systems should not impose additional dependencies on the environment.[13]
  • Consistent. With Ansible one should be able to create consistent environments.
  • Secure. Ansible does not deploy agents to nodes. Only OpenSSH and Python are required on the managed nodes.[13][15]
  • Highly reliable. When carefully written, an Ansible playbook can be idempotent, to prevent unexpected side-effects on the managed systems.[16] It should be noted, however, that it is entirely possible to have a poorly written playbook that is not idempotent.
  • Minimal learning required. Playbooks use an easy and descriptive language based on YAML and Jinja templates.

模塊

Modules are mostly standalone and can be written in a standard scripting language (such as Python, Perl, Ruby, Bash, etc.). One of the guiding properties of modules is idempotency, which means that even if an operation is repeated multiple times (e.g., upon recovery from an outage), it will always place the system into the same state.[14]

Inventory configuration

The Inventory is a description of the nodes that can be accessed by Ansible. By default, the Inventory is described by a configuration file, in INI or YAML format,[17] whose default location is in /etc/ansible/hosts. The configuration file lists either the IP address or hostname of each node that is accessible by Ansible. In addition, nodes can be assigned to groups.[12]

An example inventory:

192.168.6.1

[webservers]
foo.example.com
bar.example.com

This configuration file specifies three nodes: the first node is specified by an IP address and the latter two nodes are specified by hostnames. Additionally, the latter two nodes are grouped under the webservers group.

Ansible can also use a custom Dynamic Inventory script, which can dynamically pull data from a different system.[18]

Playbooks

Playbooks are YAML files that express configurations, deployment, and orchestration in Ansible,[19] and allows Ansible to perform operations on managed nodes. Each Playbook maps a group of hosts to a set of roles. Each role is represented by calls to Ansible tasks.[20]

Ansible Tower

Ansible Tower is a REST API, web service, and web-based console designed to make Ansible more usable for IT teams with members of different technical proficiencies and skill sets. It is a hub for automation tasks. Tower is a commercial product supported by Red Hat, Inc. but derived form AWX which is open source since September 2017.[21][22][23][24]

There is also another open source alternative to Tower, Semaphore, written in Go.[25][26]

Platform support

Control machines have to be a Linux/Unix host (for example, Red Hat Enterprise Linux, Debian, CentOS, macOS, BSD, Ubuntu[11]), and Python 2.7 or 3.5 is required.[27]

Managed nodes, if they are Unix-like, must have Python 2.4 or later. For managed nodes with Python 2.5 or earlier, the python-simplejson package is also required.[28] Since version 1.7, Ansible can also manage Windows[29] nodes.[28] In this case, native PowerShell remoting supported by the WS-Management protocol is used, instead of SSH.

Cloud integration

Ansible can deploy to bare metal hosts, virtualized systems and cloud environments, including Amazon Web Services, Atomic, CenturyLink, Cloudscale, CloudStack, DigitalOcean, Dimension Data, Docker, Google Cloud Platform, KVM, Linode, LXC, LXD, Microsoft Azure, OpenStack, OVH, oVirt, Packet, Profitbricks, PubNub, Rackspace, Scaleway, SmartOS, SoftLayer, Univention, VMware, Webfaction, and XenServer.[14][30]

AnsibleFest

AnsibleFest is an annual conference of the Ansible community of users, contributors, etc.[31]

Year Location
2016 London
2016 San Francisco
2016 Brooklyn
2017 London
2017 San Francisco
2018 Austin, Texas

See also

References

  1. ^ 1.0 1.1 Releases - ansible/ansible. [30 November 2018] –透過GitHub. 
  2. ^ Staff writer. Overview - How Ansible Works. ansible.com. Red Hat, Inc.: 1. [December 7, 2016]. 
  3. ^ Maughan, Mike. An Interview with Ansible Author Michael DeHaan. coloandcloud.com. Maughansem LLC: 1. April 17, 2012 [November 5, 2012].  [失效連結]
  4. ^ Bernardo, Susan; Murphy, Graham J. Ursula K. Le Guin : a critical companion. Westport, Conn: Greenwood Press. 2006: 18 [2017-09-27]. ISBN 9780313027307. OCLC 230345464. 
  5. ^ Ansible Community. Frequently Asked Questions. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [April 30, 2013]. 
  6. ^ DeHaan, Michael. Google Groups Post - Ansible Project. groups.google.com: 1. January 29, 2014 [April 26, 2017]. 
  7. ^ About Ansible. Ansible, Inc.: 1. [July 8, 2016]. (原始內容存檔於September 5, 2015). 
  8. ^ Bloomberg Research. Ansible, Inc.: Private Company Information. Internet Software and Services. Bloomberg L.P.: 1. [July 8, 2016]. 
  9. ^ Novet, Jordan. Source: Red Hat is buying Ansible for more than $100M. venturebeat.com. VentureBeat, Inc.: 1. October 15, 2015 [October 16, 2015]. 
  10. ^ Staff writer. Red Hat to Acquire IT Automation and DevOps Leader Ansible. redhat.com. Red Hat, Inc. October 16, 2015 [October 16, 2015]. 
  11. ^ 11.0 11.1 Ulianytskyi, Mykola. ansible Download (DEB, RPM, TGZ, TXZ, XZ). pkgs.org. Linux Packages Search: 1. [November 5, 2012]. 
  12. ^ 12.0 12.1 Ansible Community. Inventory. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [April 26, 2014]. 
  13. ^ 13.0 13.1 13.2 13.3 13.4 The Benefits of Agentless Architecture (PDF). Red Hat, Inc.: 5. 
  14. ^ 14.0 14.1 14.2 14.3 Ansible in Depth (PDF). Red Hat, Inc.: 5. 
  15. ^ Installation Guide — Ansible Documentation. docs.ansible.com. [2018-11-30] (英語). 
  16. ^ Achieving Rolling Updates and Continuous Deployment with Zero Downtime (PDF). Red Hat, Inc.: 7. 
  17. ^ Working with Inventory — Ansible Documentation. docs.ansible.com. [2018-11-30] (英語). 
  18. ^ Ansible Community. Dynamic Inventory. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [November 25, 2016]. 
  19. ^ Ansible Community. Playbooks. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [April 26, 2014]. 
  20. ^ Ansible Community. Task And Handler Organization For A Role. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [November 25, 2016]. 
  21. ^ Redditors. Ansible announces Tower to be Open Source in the near future on AnsibleFest!. reddit.com. Reddit: 1. February 19, 2016 [July 20, 2017]. 
  22. ^ Staff writer. The Open Tower Project. ansible.com/open-tower. Red Hat, Inc.: 1. [January 21, 2017]. 
  23. ^ AWX project FAQ
  24. ^ AWX on GitHub
  25. ^ Semaphore community. Semaphore API. ansible-semaphore.github.io: 1. [July 20, 2017]. 
  26. ^ Semaphore community. ansible-semaphore. github.com/ansible-semaphore. Castaway Consulting LLC. [January 21, 2017]. 
  27. ^ Ansible Community. Python 3 Support. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [July 6, 2017]. 
  28. ^ 28.0 28.1 Ansible Community. Getting started. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [February 6, 2014]. 
  29. ^ DeHaan, Michael. Ansible 1.7 is released - Windows beta and more!. ansible.com/blog. The Inside Playbook. Ansible, Inc.: 1. August 6, 2014 [August 7, 2014]. 
  30. ^ Ansible Community. List of cloud modules. docs.ansible.com. Ansible Documentation. Red Hat, Inc.: 1. [April 28, 2017]. 
  31. ^ AnsibleFest. Ansible. Red Hat, Inc. [October 4, 2018]. 
  • 找不到URL。請在此處指定URL或在維基數據上添加。

Coinage by Ursula Le Guin

Ursula K. Le Guin coined the word "ansible" in her 1966 novel Rocannon's World.[1][2] The word was a contraction of "answerable", as the device would allow its users to receive answers to their messages in a reasonable amount of time, even over interstellar distances.[3]

Although Le Guin invented the name "ansible" for this type of device, fleshed out with specific details in her fictional works, the broader concept of instantaneous or faster-than-light communication had previously existed in science fiction. For example, similar communication functions were included in a device called an interocitor in the 1952 novel This Island Earth by Raymond F. Jones, and the 1955 film based on that novel, and in the "Dirac Communicator", which first appeared in James Blish's short story "Beep" (1954), which was later expanded into the novel The Quincunx of Time (1973).[4]

In Le Guin's works

In her subsequent works, Le Guin continued to develop the concept of the ansible:

  • In The Word for World Is Forest, Le Guin explains that in order for communication to work with any pair of ansibles, at least one "must be on a large-mass body, the other can be anywhere in the cosmos."
  • In The Left Hand of Darkness, it is stated that the ansible "doesn't involve radio waves, or any form of energy. The principle it works on, the constant of simultaneity, is analogous in some ways to gravity ... One point has to be fixed, on a planet of certain mass, but the other end is portable."

Any ansible may be used to communicate through any other, by setting its coordinates to those of the receiving ansible. They have a limited bandwidth which only allows for at most a few hundred characters of text to be communicated in any transaction of a dialog session, and are attached to a keyboard and small display to perform text messaging.

Use by later authors

Since Le Guin's conception of the ansible, the name of the device has been borrowed by numerous authors. While Le Guin's ansible was said to communicate "instantaneously",[5] the name has also been adopted for devices capable of communication at finite speeds that are faster than light.

Orson Scott Card's works

Orson Scott Card, in his 1977 novelette and 1985 novel Ender's Game and its sequels, used the term "ansible" for his own fictitious communication device.[6] In Ender's Game, a character stated that "somebody dredged the name ansible out of an old book somewhere."[6]

In the universe of the Ender's Game series, the ansible's functions involved a fictional subatomic particle, the philote.[7] The two quarks inside a pi meson can be separated by an arbitrary distance, while remaining connected by "philotic rays".[7] This concept is similar to quantum teleportation due to entanglement; however, in reality, quark confinement prevents quarks from being separated by any observable distance.

Card's version of the ansible was also featured in the video game Advent Rising, for which Card helped write the story, and in the movie Ender's Game, which was based on the book.[8]

Other writers

Numerous other writers have included ansibles in their fictional works, using that word to refer to a faster-than-light communication device. Notable examples include:

參見

參考文獻

Notes

  1. ^ Sheidlower, Jesse (編). ansible n.. Science Fiction Citations for the OED. July 6, 2008 [2014-03-15]. 
  2. ^ Bernardo, Susan M.; Murphy, Graham J. Ursula K. Le Guin: A Critical Companion 1st. Westport, CT: Greenwood Press. 2006: 18. ISBN 0-313-33225-8. 
  3. ^ Quinion, Michael. Ansible. World Wide Words. 
  4. ^ Nicholls, Peter "Dirac Communicator" in Clute, John and Nicholls, Peter eds. (1995) The Encyclopedia of Science Fiction. New York: St. Martin's Griffin p.337. ISBN 0-312-13486-X
  5. ^ 5.0 5.1 Le Guin, Ursula K. The Dispossessed mass ppb. New York: Eos/HarperCollins. 2001: 276 [June 1974]. ISBN 0-06-105488-7. They print Reumere's plans for the ansible. 'What is the ansible?' 'It's what he's calling an instantaneous communication device.' 
  6. ^ 6.0 6.1 Card, Orson Scott. Ender's Game mass ppb. New York: Tor Books. 1994: 249 [August 1977]. ISBN 0-8125-5070-6. What matters is we built the ansible. The official name is Philotic Parallax Instantaneous Communicator, but somebody dredged the name ansible out of an old book somewhere and it caught on. 
  7. ^ 7.0 7.1 Card, Orson Scott. Xenocide. Orbit. 1991: 40–46. ISBN 978-1-85723-858-7. 
  8. ^ Ender's Game (2013) Movie Script. Springfield! Springfield!. (原始內容存檔於2018-04-19). 
  9. ^ Vinge, Vernor. The Blabber. Threats & Other Promises. Riverdale, NY: Baen. 1988: 254. ISBN 0-671-69790-0. 'It's an ansible.' 'Surely they don't call it that!' 'No. But that's what it is.' 
  10. ^ Moon, Elizabeth. Winning Colors mass ppb. Riverdale, NY: Baen. 1995: 89. ISBN 0-671-87677-5. ...when I was commissioned, we didn't have FTL communications except from planetary platforms. I was on Boarhound when they mounted the first shipboard ansible, and at first it was only one-way, from the planet to us. 
  11. ^ Jones, Jason; Kirkpatrick, Greg. Marathon 2: Durandal. Bungie. November 24, 1995. A connection [?ansible] was left; awaiting the next quiet [?peace]; and though destroyed by the threes, it will scream over the void one time. 
  12. ^ Graf, L.A. [Cercone, Karen Rose; Ecklar, Julia]. Time's Enemy. Star Trek: Deep Space Nine. Invasion, Book 3. Simon and Schuster. 1996: 203. ISBN 978-0-6715-4150-7. The two Dax symbionts can communicate with each other across space, instantaneously, because they're composed of identical quantum particles. I've become a living ansible, Benjamin. 
  13. ^ Simmons, Dan. Ilium hbk. New York: Eos/HarperCollins. 2003: 98. ISBN 0-380-97893-8. I can see Nightenhelser madly taking notes on his recorder ansible. 
  14. ^ Robinson, Kim Stanley. 2312. Orbit. 2012: 227. ISBN 978-0-316-19280-4. 
  15. ^ McDermott, Joe M. The Fortress at the End of Time. Tom Doherty Associates. 2017: 1. ISBN 978-0-7653-9280-0. We are born as memories and meat. The meat was spontaneously created in the ansible's quantum re-creation mechanism, built up from water vapor, hydrogen, carbon dioxide, and various other gases out of storage. The memory is what we carry across from one side of the ansible to the other, into the new flesh. 

延伸閱讀

Template:Ursula K. Le Guin