博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible入门_Ansible入门成功秘诀
阅读量:2525 次
发布时间:2019-05-11

本文共 1713 字,大约阅读时间需要 5 分钟。

ansible入门

Ansible是一种开源自动化工具,用于从一个中央位置配置服务器,安装软件以及执行各种IT任务。 这是一种一对多的无代理机制,其中所有指令均从通过SSH与远程客户端进行通信的控制机上运行,​​尽管也支持其他协议。

对于具有特权访问权限的系统管理员,他们通常执行诸如安装和配置应用程序之类的任务,而Ansible也可以由非特权用户使用。 例如,使用mysql登录ID的数据库管理员可以使用Ansible创建数据库,添加用户并定义访问级别控件。

让我们看一个非常简单的示例,其中系统管理员每天配置100台服务器,并且必须在每个服务器上运行一系列Bash命令,然后再将其交付给用户。

Mapping Bash commands to an Ansible playbook

这是一个简单的示例,但应说明在yaml文件中指定命令并在远程服务器上执行命令的容易程度。 在异构环境中,可以添加条件语句,以便仅在某些服务器中执行某些命令(例如,“仅在非Ubuntu或Debian的系统中执行yum命令”)。

Ansible中的一个重要功能是,剧本描述了计算机系统中所需的状态,因此,剧本可以在不影响服务器状态的情况下针对服务器多次运行。 如果已经执行了某个任务(例如,“用户sysman已经存在”),则Ansible会简单地忽略它并继续前进。

定义

  • 任务: 任务是最小的工作单元。 它可以是“安装数据库”,“安装Web服务器”,“创建防火墙规则”或“将此配置文件复制到该服务器”之类的操作。
  • 播放: 一场戏是由任务组成的。 例如,播放:“准备要由Web服务器使用的数据库”由以下任务组成:1)安装数据库包; 2)为数据库管理员设置密码; 3)创建一个数据库; 和4)设置对数据库的访问。
  • 剧本: 剧本由剧本组成。 一本剧本可能是:“用数据库后端准备我的网站”,而剧本将是:1)设置数据库服务器; 和2)设置Web服务器。
  • 角色: 角色用于保存和组织剧本,并允许共享和重用剧本。 按照前面的示例,如果您需要完全配置Web服务器,则可以使用其他人编写和共享的角色来做到这一点。 由于角色是高度可配置的(如果编写正确),因此可以轻松地重用它们以适应任何给定的部署要求。
  • Ansible星系: Ansible 是一个在线存储库,其中角色已上载,因此可以与其他人共享。 它与GitHub集成在一起,因此可以将角色组织到Git存储库中,然后通过Ansible Galaxy进行共享。

这些定义及其关系如下所示:

Ansible definitions and how they relate to each other

请注意,这只是组织需要执行的任务的一种方法。 我们本来可以将数据库和Web服务器的安装分成单独的剧本和不同的角色。 Ansible Galaxy中的大多数角色都安装和配置单个应用程序。 您可以看到有关安装和安装示例。

编写剧本的技巧

学习Ansible的最佳来源是官方站点。 而且,和往常一样,在线搜索是您的朋友。 我建议从简单的任务开始,例如安装应用程序或创建用户。 准备就绪后,请遵循以下准则:

  • 在测试时,请使用一小部分服务器,以加快播放速度。 如果它们在一台服务器上成功,那么它们将在其他服务器上成功。
  • 务必进行--check-mode运行以确保所有命令均正常运行(使用--check-mode标志运行)。
  • 根据需要进行多次测试,而不必担心会损坏东西。 任务描述了期望的状态,因此,如果已经实现了期望的状态,则将其简单地忽略。
  • 确保/etc/ansible/hosts中定义的所有主机名都是可解析的。
  • 由于与远程主机的通信是使用SSH完成的,因此密钥必须由控制计算机接受,因此:1)在启动之前与远程主机交换密钥; 或2)准备输入“是”以接受要管理的每个远程主机的SSH密钥交换请求。
  • 尽管您可以在一个剧本中组合用于不同Linux发行版的任务,但是为每个发行版编写一个单独的剧本更为干净。

归根结底

Ansible是在数据中心实施自动化的绝佳选择:

  • 它是无代理的,因此比其他自动化工具更易于安装。
  • 指令在YAML中(尽管也支持JSON),因此比编写Shell脚本更容易。
  • 它是开源软件,因此请回馈它并使其变得更好!

您如何使用Ansible自动化数据中心? 在评论中分享您的经验。

翻译自:

ansible入门

转载地址:http://vknzd.baihongyu.com/

你可能感兴趣的文章
初识JavaScript
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
Testing your Xamarin app on Android device
查看>>
丢失控制文件恢复实验记录--4(在线日志文件没有损坏,归档日志丢失,直接重建控制文件(跟踪控制文件trace是旧的情况))...
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
java基础 第十一章(多态、抽象类、接口、包装类、String)
查看>>
Hadoop 服务器配置的副本数量 管不了客户端
查看>>
欧建新之死
查看>>
C程序之修改Windows的控制台颜色(转载)
查看>>
自定义滚动条
查看>>
[QT][待解决问题]对话框ui载入卡顿问题
查看>>
jquery中单选选中及清除选中状态
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
mysql 日期时间运算函数(转)
查看>>
初识前端作业1
查看>>
为啥程序会有bug?
查看>>