广告
返回顶部
首页 > 资讯 > 操作系统 >Linux下如何使用Ansible安装软件
  • 157
分享到

Linux下如何使用Ansible安装软件

2023-06-28 09:06:07 157人浏览 安东尼
摘要

这篇文章主要介绍了linux下如何使用Ansible安装软件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ansible是新出现的自动化运维工具,基于python开发,集合了

这篇文章主要介绍了linux下如何使用Ansible安装软件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

ansible是新出现的自动化运维工具,基于python开发集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

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: localhost tasks:   - name: install packages     become: true     become_user: root     dnf:       state: present       name:        - 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 命令的手册页一样,模块文档会告诉你可用的选项和所需的参数。

Linux下如何使用Ansible安装软件

Ansible 文档

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

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

验证 YAML

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

在 Fedora 或 Centos 上:

$ sudo dnf ins tall yamllint python3-ansible-lint

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

$ sudo apt install yamllint ansible-lint

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

$ ansible-lint ~/install_packages/site.yml

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

使用 Ansible 安装一个应用

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

开始安装:

$ ansible-playbook --ask-become-pass ~/install_packages/site.ymlBECOME passWord:PLAY [localhost] ******************************TASK [Gathering Facts] ******************************ok: [localhost]TASK [install packages] ******************************ok: [localhost]PLAY RECAP ******************************localhost: ok=0 changed=2 unreachable=0 failed=0 [...]

这些命令被执行后,目标系统将处于与剧本中描述的相同的状态。

在远程系统上安装应用程序

通过这么多操作来替换一个简单的命令可能会适得其反,但是 Ansible 的优势是它可以在你的所有系统中实现自动化。你可以使用条件语句使 Ansible 在不同的系统上使用特定的模块,但是现在,假定所有计算机都使用相同的包管理器。

要连接到远程系统,你必须在 /etc/ansible/hosts 文件中定义远程系统,该文件与 Ansible 是一起安装的,所以它已经存在了,但它可能是空的,除了一些解释性注释之外。使用 sudo 在你喜欢的文本编辑器中打开它。

你可以通过其 IP 地址或主机名(只要主机名可以解析)定义主机。例如,如果你已经在 /etc/hosts 中定义了 liavara 并可以成功 ping 通,那么你可以在 /etc/ansible/hosts 中将 liavara 设置为主机。或者,如果你正在运行一个域名服务器或 Avahi 服务器并且可以 ping 通 liavara,那么你就可以在 /etc/ansible/hosts 中定义它。否则,你必须使用它的 IP 地址。

你还必须成功地建立与目标主机的安全 shellssh)连接。最简单的方法是使用 ssh-copy-id 命令,但是如果你以前从未与主机建立 SSH 连接,阅读我关于如何创建自动 SSH 连接的文章。

一旦你在 /etc/ansible/hosts 文件中输入了主机名或 IP 地址后,你就可以在剧本中更改 hosts 定义:

---- hosts: all tasks:   - name: install packages     become: true     become_user: root     dnf:       state: present       name:        - tcsh        - htop

再次运行 ansible-playbook:

$ ansible-playbook --ask-become-pass ~/install_packages/site.yml

这次,剧本会在你的远程系统上运行。

如果你添加更多主机,则有许多方法可以过滤哪个主机执行哪个任务。例如,你可以创建主机组(服务器的 WEBserves,台式机的 workstations等)。

适用于混合环境的 Ansible

到目前为止,我们一直假定 Ansible 配置的所有主机都运行相同的操作系统(都是是使用 dnf 命令进行程序包管理的操作系统)。那么,如果你要管理不同发行版的主机,例如 Ubuntu(使用 apt)或 Arch(使用 pacman),或者其它的操作系统时,该怎么办?

只要目标操作系统具有程序包管理器(MacOs 有 Homebrew,windows 有 Chocolatey),Ansible 就能派上用场。

这就是 Ansible 优势最明显的地方。在 shell 脚本中,你必须检查目标主机上有哪些可用的包管理器,即使使用纯 python,也必须检查操作系统。Ansible 不仅内置了这些功能,而且还具有在剧本中使用命令结果的机制。你可以使用 action 关键字来执行由 Ansible 事实收集子系统提供的变量定义的任务,而不是使用 dnf 模块。

---- hosts: all tasks:   - name: install packages     become: true     become_user: root     action: >      {{ ansible_pkg_mgr }} name=htop,transmission state=present update_cache=yes

action 关键字会加载目标插件。在本例中,它使用了 ansible_pkg_mgr 变量,该变量由 Ansible 在初始 收集信息 期间填充。你不需要告诉 Ansible 收集有关其运行操作系统的事实,所以很容易忽略这一点,但是当你运行一个剧本时,你会在默认输出中看到它:

TASK [Gathering Facts] *****************************************ok: [localhost]

action 插件使用来自这个探针的信息,使用相关的包管理器命令填充 ansible_pkg_mgr,以安装在 name 参数之后列出的程序包。使用 8 行代码,你可以克服在其它脚本选项中很少允许的复杂跨平台难题。

使用 Ansible

现在是 21 世纪,我们都希望我们的计算机设备能够互联并且相对一致。无论你维护的是两台还是 200 台计算机,你都不必一次又一次地执行相同的维护任务。使用 Ansible 来同步生活中的计算机设备,看看 Ansible 还能为你做些什么。

感谢你能够认真阅读完这篇文章,希望小编分享的“Linux下如何使用Ansible安装软件”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: Linux下如何使用Ansible安装软件

本文链接: https://www.lsjlt.com/news/318449.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux下如何使用Ansible安装软件
    这篇文章主要介绍了Linux下如何使用Ansible安装软件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ansible是新出现的自动化运维工具,基于Python开发,集合了...
    99+
    2023-06-28
  • Linux下ansible如何安装
    这篇文章给大家分享的是有关Linux下ansible如何安装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、...
    99+
    2023-06-27
  • 【Linux】软件安装(三分钟教会你如何在linux下安装软件)
           🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️小林爱敲代码       🛰️博客专栏:✈️Linux之路...
    99+
    2023-10-06
    linux 运维 服务器
  • Linux下如何安装和卸载软件
    这篇文章将为大家详细讲解有关Linux下如何安装和卸载软件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。linux软件安装与卸载有多种形式,可以通过二进制形式、源代码形式对软件进行安装和卸载。二进制分发软...
    99+
    2023-06-28
  • Linux下杀毒软件(ClamAV)安装及使用
    ClamAV(Clam AntiVirus)是一个开源的杀毒软件,可以在Linux系统下进行安装和使用。以下是在Linux下安装和使...
    99+
    2023-08-22
    Linux
  • Linux下如何安装虚拟机软件VirtualBox
    小编给大家分享一下Linux下如何安装虚拟机软件VirtualBox,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!VirtualBox号称是最强的免费虚拟机软件,...
    99+
    2023-06-27
  • 如何在Linux系统下安装软件程序
    这篇文章主要介绍“如何在Linux系统下安装软件程序”,在日常操作中,相信很多人在如何在Linux系统下安装软件程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Linux系统下安装软件程序”的疑惑有所...
    99+
    2023-06-10
  • Linux下如何安装动态路由软件Quagga
    这篇“Linux下如何安装动态路由软件Quagga”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux下如何安装动态路由...
    99+
    2023-06-27
  • 如何安装Linux的应用软件
    这篇文章主要讲解了“如何安装Linux的应用软件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何安装Linux的应用软件”吧!如何安装Linux的应用软件  对于普通用户,安装或升级软件可...
    99+
    2023-06-13
  • cdrx4软件如何下载安装
    这篇文章主要讲解了“cdrx4软件如何下载安装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“cdrx4软件如何下载安装”吧!cdrx4软件下载安装方法首先我们进入官网下载页面。然后我们点击“...
    99+
    2023-07-01
  • windows下caxa软件如何安装
    本篇内容主要讲解“windows下caxa软件如何安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows下caxa软件如何安装”吧!caxa软件安装步骤首先下载caxa电脑软件解压到你...
    99+
    2023-07-04
  • Linux 系统下软件安装与管理
    Linux 系统下软件安装与管理一、二进制(RPM)程序包概述1、二进制程序包的组成部分:二进制文件、库文件、配置文件、帮助文件[root@dayi123 ~]# rpm -qpl/mnt/cdrom/Pa...
    99+
    2022-10-18
  • Linux系统如何安装软件
    这篇文章主要介绍了Linux系统如何安装软件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1)、 rpm 和 yum 命令介绍rpm: rpm 是由 Red Hat 公司开...
    99+
    2023-06-28
  • Linux下RPM软件包如何安装、更新及卸载
    这篇文章主要为大家展示了“Linux下RPM软件包如何安装、更新及卸载”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下RPM软件包如何安装、更新及卸载”这篇文章吧。RPM是由由Redh...
    99+
    2023-06-28
  • Linux下如何安装、更新及卸载RPM软件包
    这篇文章给大家分享的是有关Linux下如何安装、更新及卸载RPM软件包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全...
    99+
    2023-06-10
  • 如何理解Linux下软件包的安装与管理
    本篇内容主要讲解“如何理解Linux下软件包的安装与管理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux下软件包的安装与管理”吧!  先来看看Linux软件扩展名。软件后缀为.r...
    99+
    2023-06-13
  • 如何在Linux中安装应用软件
    本篇内容介绍了“如何在Linux中安装应用软件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!新的操作系统装好了,安装一些新的软件那是难免的。...
    99+
    2023-06-17
  • Linux系统中如何安装和使用ImageMagick软件
    Linux系统中如何安装和使用ImageMagick软件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ImageMagick是修改和处理图像的一套命令行实用程序。 ...
    99+
    2023-06-12
  • linux云主机如何安装软件
    在忆 速yiLinux云主机上安装软件可以使用命令行工具,具体操作如下:1. 更新软件包列表在安装软件之前,需要先更新软件包列表,以...
    99+
    2023-05-13
    linux云主机 云主机
  • 如何使用yum实现只下载软件不安装
    小编给大家分享一下如何使用yum实现只下载软件不安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 通过yum自带一个工具:yumdownloaderrpm&n...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作