如何使用 Ansible 安装软件


如何使用 Ansible 安装软件文章插图
使用 Ansible 剧本自动安装和更新设备上的软件 。
? 来源:Linux.cn ? 作者:Seth Kenlon ? 译者:MjSeven ?
(本文字数:6154 , 阅读时长大约:8 分钟)
Ansible 是系统管理员和开发人员用来保持计算机系统处于最佳状态的一种流行的自动化工具 。 与可扩展框架一样 ,Ansible 本身功能有限 , 它真正的功能体现在许多模块中 。 在某种程度上 , Ansible 模块就是 Linux 系统的命令 。 它们针对特定问题提供解决方案 , 而维护计算机时的一项常见任务是使所有计算机的更新和一致 。
我曾经使用软件包的文本列表来保持系统或多或少的同步:我会列出笔记本电脑上安装的软件包 , 然后将其与台式机或另一台服务器之间进行交叉参考 , 手动弥补差异 。 当然 , 在 Linux 机器上安装和维护应用程序是 Ansible 的一项基本功能 , 这意味着你可以在自己关心的计算机上列出所需的内容 。
寻找正确的 Ansible 模块Ansible 模块的数量非常庞大 , 如何找到能完成你任务的模块?在 Linux 中 , 你可以在应用程序菜单或 /usr/bin 中查找要运行的应用程序 。 使用 Ansible 时 , 你可以参考 Ansible 模块索引。
这个索引按照类别列出 。 稍加搜索 , 你就很可能找到所需的模块 。 对于包管理 ,Packaging 模块 几乎适用于所有带包管理器的系统 。
动手写一个 Ansible 剧本首先 , 选择本地计算机上的包管理器 。 例如 , 如果你打算在运行 Fedora 的笔记本电脑上编写 Ansible 指令(在 Ansible 中称为“ 剧本(playbook)”) , 那么从 dnf 模块开始 。 如果你在 Elementary OS 上编写 , 使用 apt 模块 , 以此类推 。 这样你就可以开始进行测试和验证 , 并可以在以后扩展到其它计算机 。
第一步是创建一个代表你的剧本的目录 。 这不是绝对必要的 , 但这是一个好习惯 。 Ansible 只需要一个配置文件就可以运行在 YAML 中 , 但是如果你以后想要扩展剧本 , 你就可以通过改变目录和文件的方式来控制 Ansible 。 现在 , 只需创建一个名为 install_packages 或类似的目录:
$ mkdir ~/install_packages你可以根据自己的喜好来命名 Ansible 的剧本 , 但通常将其命名为 site.yml:
$ touch ~/install_packages/site.yml在你最喜欢的文本编辑器中打开 site.yml , 添加以下内容:
---- hosts: localhosttasks:- name: install packagesbecome: truebecome_user: rootdnf:state: presentname:- tcsh- htop你必须调整使用的模块名称以匹配你使用的发行版 。 在此示例中 , 我使用 dnf 是因为我在 Fedora Linux 上编写剧本 。
就像 Linux 终端中的命令一样 , 知道 如何 来调用 Ansible 模块就已经成功了一半 。 这个示例剧本遵循标准剧本格式:

  • hosts 是一台或多台计算机 。 在本示例中 , 目标计算机是 localhost , 即你当前正在使用的计算机(而不是你希望 Ansible 连接的远程系统) 。
  • tasks 是你要在主机上执行的任务列表 。 name 是任务的人性化名称 。 在这种情况下 , 我使用 install packages , 因为这就是该任务正在做的事情 。 become 允许 Ansible 更改运行此任务的用户 。 become_user 允许 Ansible 成为 root 用户来运行此任务 。 这是必须的 , 因为只有 root 用户才能使用 dnf 安装应用程序 。 dnf 是模块名称 , 你可以在 Ansible 网站上的模块索引中找到 。
dnf 下的节点是 dnf 模块专用的 。 这是模块文档的关键所在 。 就像 Linux 命令的手册页一样 , 模块文档会告诉你可用的选项和所需的参数 。
如何使用 Ansible 安装软件文章插图