本文共 1713 字,大约阅读时间需要 5 分钟。
ansible入门
Ansible是一种开源自动化工具,用于从一个中央位置配置服务器,安装软件以及执行各种IT任务。 这是一种一对多的无代理机制,其中所有指令均从通过SSH与远程客户端进行通信的控制机上运行,尽管也支持其他协议。
对于具有特权访问权限的系统管理员,他们通常执行诸如安装和配置应用程序之类的任务,而Ansible也可以由非特权用户使用。 例如,使用mysql
登录ID的数据库管理员可以使用Ansible创建数据库,添加用户并定义访问级别控件。
让我们看一个非常简单的示例,其中系统管理员每天配置100台服务器,并且必须在每个服务器上运行一系列Bash命令,然后再将其交付给用户。
这是一个简单的示例,但应说明在yaml文件中指定命令并在远程服务器上执行命令的容易程度。 在异构环境中,可以添加条件语句,以便仅在某些服务器中执行某些命令(例如,“仅在非Ubuntu或Debian的系统中执行yum
命令”)。
Ansible中的一个重要功能是,剧本描述了计算机系统中所需的状态,因此,剧本可以在不影响服务器状态的情况下针对服务器多次运行。 如果已经执行了某个任务(例如,“用户sysman
已经存在”),则Ansible会简单地忽略它并继续前进。
任务是最小的工作单元。 它可以是“安装数据库”,“安装Web服务器”,“创建防火墙规则”或“将此配置文件复制到该服务器”之类的操作。
一场戏是由任务组成的。 例如,播放:“准备要由Web服务器使用的数据库”由以下任务组成:1)安装数据库包; 2)为数据库管理员设置密码; 3)创建一个数据库; 和4)设置对数据库的访问。
剧本由剧本组成。 一本剧本可能是:“用数据库后端准备我的网站”,而剧本将是:1)设置数据库服务器; 和2)设置Web服务器。
角色用于保存和组织剧本,并允许共享和重用剧本。 按照前面的示例,如果您需要完全配置Web服务器,则可以使用其他人编写和共享的角色来做到这一点。 由于角色是高度可配置的(如果编写正确),因此可以轻松地重用它们以适应任何给定的部署要求。
Ansible 是一个在线存储库,其中角色已上载,因此可以与其他人共享。 它与GitHub集成在一起,因此可以将角色组织到Git存储库中,然后通过Ansible Galaxy进行共享。 这些定义及其关系如下所示:
请注意,这只是组织需要执行的任务的一种方法。 我们本来可以将数据库和Web服务器的安装分成单独的剧本和不同的角色。 Ansible Galaxy中的大多数角色都安装和配置单个应用程序。 您可以看到有关安装和安装示例。
学习Ansible的最佳来源是官方站点。 而且,和往常一样,在线搜索是您的朋友。 我建议从简单的任务开始,例如安装应用程序或创建用户。 准备就绪后,请遵循以下准则:
--check-mode
运行以确保所有命令均正常运行(使用--check-mode
标志运行)。 /etc/ansible/hosts
中定义的所有主机名都是可解析的。 Ansible是在数据中心实施自动化的绝佳选择:
您如何使用Ansible自动化数据中心? 在评论中分享您的经验。
翻译自:
ansible入门
转载地址:http://vknzd.baihongyu.com/