在这篇博客中,我们将学习如何在 ubuntu 虚拟机中运行 ansible。我们还将学习一些提示和技巧,使我们的 ansible 体验更加愉快。
内容
介绍
Ansible 是一种配置管理、部署和编排工具。它使用 SSH 进行节点之间的通信。
因此无需在节点中安装任何代理。我们可以使用剧本在 Ansible 中编写自动化流程。
本指南将帮助您在 Ubuntu 18.04 LTS 和 16.04 LTS 系统上安装 Ansible。
在 Ubuntu 上设置 Ansible
Ansible 是一种配置管理系统,可自动执行服务器配置、应用程序部署和任务管理。
它是一个简单但功能强大的工具,可以大大简化配置管理任务。
在本指南中,我们将向您展示如何在一台计算机上安装 Ansible Ubuntu 18.04 服务器并用它管理服务器配置。
在 Ubuntu 18.04 Server# 上安装 Ansible
- 要在我们的 Ubuntu 服务器上安装 Ansible,我们首先需要安装一些必备包。我们可以使用 apt 命令来做到这一点:
须藤更新
sudo apt install software-properties-common
- 接下来,我们将 Ansible 存储库添加到我们的源列表中:
sudo apt-add-repository ppa:ansible/ansible
- 出现提示时按 ENTER 键继续。最后,我们可以安装 Ansible 包本身 易于:
sudo apt install ansible -y
ansible --version
2.7 应该显示表示安装成功
配置 Ansible 用户帐户
默认情况下,在 Ubuntu 中,只有特权用户(具有 sudo 访问权限的用户)才能运行 Ansibl e playbook。
但是,为了便于使用,您可能希望以普通用户帐户运行剧本,而不是一直使用 sudo。
有两种方法可以实现这一点——您可以创建一个专门用于运行剧本的新用户帐户,或者您可以使用现有的用户帐户(如果它具有 sudo 权限)。
在本指南中,我们将向您展示如何设置这两种方法,以便您可以选择适合您需要的方法
在 Ubuntu 上运行 Ansible
Ansible 是一种配置管理工具,用于管理服务器配置、部署应用程序和自动化任务。
我们还将创建一个简单的 Playbook 来部署静态 HTML 网站。 Ansible 剧本写在 YAML 数据序列化格式 它们定义了一组要在远程主机或一组远程主机上执行的任务。
在我们开始之前,请确保您的本地系统上安装了 Ansible。如果没有,您可以按照我们关于如何在 CentOS 7 上安装 Ansible 的指南进行操作。
Ansible 剧本
Ansible 剧本是一个配置和多节点部署系统。它们可以描述您希望远程系统执行的策略或一般 IT 流程中的一组步骤。
如果 Ansible 模块是您工具箱中的工具,那么 playbook 就是您的工具箱。就像您最喜欢的强大工具一样,当 Ansible 剧本超过几十行时,它们会变得非常毛茸茸。
好消息是,您可以遵循一些可靠的最佳实践来保持您的 Ansible 剧本干净、干燥和可重复使用。在这篇文章中,我们将介绍构建更好的 Ansible 剧本的 9 个技巧。
- 让你的剧本简短而有趣
这一点可能看起来很明显,但值得重复:你的剧本越短越简单,它就越容易阅读和维护。射击游戏的单一用途剧本比长篇大论的剧本更容易排除故障。如有疑问,请将相关任务分解为单独的剧本,并将它们作为角色或导入内容包含在您的主要剧本中。 - 编写幂等任务
幂等任务是指无论运行一次还是一百次都具有相同效果的任务。这听起来像是一个奇怪的目标,但幂等任务很重要,因为它们可以一遍又一遍地运行而不会产生任何不利的副作用。
例如,假设您的任务是在所有服务器上安装特定的软件包。如果任务是幂等的,那么在同一台服务器上多次运行它与运行一次的效果相同:包将被安装(或者,如果已经安装,则什么也不会发生)。另一方面,如果任务不是幂等的,那么再次运行它会安装两个软件包副本(或更糟)。 - 明智地使用包含
包含文件让您可以将相关任务组织成逻辑单元,这些逻辑单元可以在其他剧本中重复使用或直接包含在剧本中。您可以将它们视为更大剧本的构建块
虽然 include 可能非常有用,但应谨慎使用 - 太多 include 文件会使剧本难以遵循。一个好的经验法则是仅当您需要在多个地方重用任务时才使用 include;如果您只在一本剧本中包含任务,那么将它们直接嵌入到使用它们的剧本中可能会更干净
角色
Ansible 角色由许多剧本组成,类似于 Puppet 中的模块。 Ansible 角色的最大优点是,重用代码和安排任务要容易得多。在本章中,我们将通过示例了解如何创建和使用 Ansible 角色。
角色是将所有相关的剧本和其他文件捆绑在一个地方以便可以重复使用的方式。
可以把MySQL安装的所有play放在一个角色里,Apache安装的所有play放在另一个角色里。
您只需在 site.yml 中调用这些角色即可安装 MySQL 和 Apache。由于这两个角色是独立的,因此它们可以并行运行而不会出现任何问题,因为它们彼此不存在依赖关系。
银河系
如果你想在你的 Ubuntu 虚拟机上安装一个 Ansible 角色,你可以使用 Galaxy CLI 工具。该工具将允许您搜索角色、安装它们,甚至创建您自己的角色。
首先,您需要确保安装了最新版本的 Ansible。您可以通过运行以下命令来执行此操作:
$ sudo apt 更新
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes ppa:ansible/ansible
$ sudo apt 更新
$ sudo apt 安装 ansible
安装 Ansible 后,您就可以开始使用 Galaxy CLI。您需要做的第一件事是在当前工作目录中创建一个名为“requirements.yml”的文件。该文件将包含您要安装的所有角色的列表。
例如,如果您想安装“nginx”角色,您的 requirements.yml 文件将如下所示:
- 来源:geerlingguy.nginx 版本:v1.0.0
创建 requirements.yml 后,您可以使用以下命令安装文件中列出的所有角色:
$ ansible-galaxy install -r requirements.yml
Ansible 保险库
Ansible Vault 是 Ansible 的一项功能,它允许您将敏感数据(例如密码或私钥)保存在加密文件中,而不是作为剧本或角色中的纯文本。然后可以分发这些库文件或将其放置在源代码管理中。
要使用 Ansible Vault,您需要创建一个保险库文件。这可以通过 ansible-vault create 命令来完成:
$ ansible-vault 创建 myvault.yml
系统将提示您输入用于加密文件的密码。创建文件后,您可以像编辑任何其他 YAML 文件一样编辑它。完成后,您可以使用 ansible-vault encrypt 命令再次加密文件:
$ ansible-vault 加密myvault.yml
该文件将使用您创建它时所用的相同密码进行加密。要编辑加密文件,您必须使用 –询问保险库通行证 或 –vault-password-file 选项:
$ ansible-vault 编辑 --ask-vault-pass myvault.yml
结论
现在您知道如何在 Ubuntu 虚拟机上运行 Ansible,您可以开始自动化您的基础架构任务。
如果您需要更多帮助,请查看 Ansible 文档。