当前位置:首页 >时尚 >如何使用Ansible安装软件 安装Ansible 本身功能有限

如何使用Ansible安装软件 安装Ansible 本身功能有限

2024-05-21 22:44:26 [百科] 来源:避面尹邢网

如何使用Ansible安装软件

作者:Seth Kenlon 运维 系统运维 Ansible 是何使系统管理员和开发人员用来保持计算机系统处于最佳状态的一种流行的自动化工具。使用 Ansible 剧本自动安装和更新设备上的安装软件。

[[345428]]

使用 Ansible 剧本自动安装和更新设备上的软件软件。

如何使用Ansible安装软件 安装Ansible 本身功能有限

Ansible 是何使系统管理员和开发人员用来保持计算机系统处于最佳状态的一种流行的自动化工具。与可扩展框架一样,安装Ansible 本身功能有限,软件它真正的何使功能体现在许多模块中。在某种程度上,安装Ansible 模块就是软件 Linux 系统的命令。它们针对特定问题提供解决方案,何使而维护计算机时的安装一项常见任务是使所有计算机的更新和一致。

如何使用Ansible安装软件 安装Ansible 本身功能有限

我曾经使用软件包的软件文本列表来保持系统或多或少的同步:我会列出笔记本电脑上安装的软件包,然后将其与台式机或另一台服务器之间进行交叉参考,何使手动弥补差异。安装当然,软件在 Linux 机器上安装和维护应用程序是 Ansible 的一项基本功能,这意味着你可以在自己关心的计算机上列出所需的内容。

如何使用Ansible安装软件 安装Ansible 本身功能有限

寻找正确的 Ansible 模块

Ansible 模块的数量非常庞大,如何找到能完成你任务的模块?在 Linux 中,你可以在应用程序菜单或 /usr/bin 中查找要运行的应用程序。使用 Ansible 时,你可以参考 Ansible 模块索引。

这个索引按照类别列出。稍加搜索,你就很可能找到所需的模块。对于包管理,Packaging 模块几乎适用于所有带包管理器的系统。

动手写一个 Ansible 剧本

首先,选择本地计算机上的包管理器。例如,如果你打算在运行 Fedora 的笔记本电脑上编写 Ansible 指令(在 Ansible 中称为“剧本playbook”),那么从 dnf 模块开始。如果你在 Elementary OS 上编写,使用 apt 模块,以此类推。这样你就可以开始进行测试和验证,并可以在以后扩展到其它计算机。

第一步是创建一个代表你的剧本的目录。这不是绝对必要的,但这是一个好习惯。Ansible 只需要一个配置文件就可以运行在 YAML 中,但是如果你以后想要扩展剧本,你就可以通过改变目录和文件的方式来控制 Ansible。现在,只需创建一个名为 install_packages 或类似的目录:

  1. $ mkdir ~/install_packages

你可以根据自己的喜好来命名 Ansible 的剧本,但通常将其命名为 site.yml

  1. $ touch ~/install_packages/site.yml

在你最喜欢的文本编辑器中打开 site.yml,添加以下内容:

  1. ---
  2. - hosts: localhost
  3. tasks:
  4. - name: install packages
  5. become: true
  6. become_user: root
  7. dnf:
  8. state: present
  9. name:
  10. - tcsh
  11. - 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 文档

安装软件包是一个相对简单的任务,仅需要两个元素。state 选项指示 Ansible 检查系统上是否存在 软件包,而 name 选项列出要查找的软件包。Ansible 会针对机器的 状态 进行调整,因此模块指令始终意味着更改。假如 Ansible 扫描了系统状态,发现剧本里描述的系统(在本例中,tcsh 和 htop 存在)与实际状态存在冲突,那么 Ansible 的任务是进行必要的更改来使系统与剧本匹配。Ansible 可以通过 dnf(或 apt 或者其它任何包管理器)模块进行更改。

每个模块可能都有一组不同的选项,所以在编写剧本时,要经常参考模块文档。除非你对模块非常熟悉,否则这是期望模块完成工作的唯一合理方法。

验证 YAML

剧本是用 YAML 编写的。因为 YAML 遵循严格的语法,所以安装 yamllint 来检查剧本是很有帮助的。更妙的是,有一个专门针对 Ansible 的检查工具称为 ansible-lint,它专门为剧本而生。在继续之前,安装它。

在 Fedora 或 CentOs 上:

  1. $ sudo dnf ins tall yamllint python3-ansible-lint

在 Debian、Elementary 或 Ubuntu 上,同样的:

  1. $ sudo apt install yamllint ansible-lint

使用 ansible-link 来验证你的剧本。如果你无法使用 ansible-lint,你可以使用 yamllint

  1. $ ansible-lint ~/install_packages/site.yml

成功则不返回任何内容,但如果文件中有错误,则必须先修复它们,然后再继续。复制和粘贴过程中的常见错误包括在最后一行的末尾省略换行符、使用制表符而不是空格来缩进。在文本编辑器中修复它们,重新运行 ansible-llint,重复这个过程,直到 ansible-lint 或 yamllint 没有返回为止。

使用 Ansible 安装一个应用

现在你有了一个可验证的有效剧本,你终于可以在本地计算机上运行它了,因为你碰巧知道该剧本定义的任务需要 root 权限,所以在调用 Ansible 时必须使用 --ask-become-pass 选项,因此系统会提示你输入管理员密码。

开始安装:

  1. $ ansible-playbook --ask-become-pass ~/install_packages/site.yml
  2. BECOME password:
  3. PLAY [localhost]

    (责任编辑:综合)

    推荐文章
    热点阅读