如何使用 Ansible 安装软件( 三 )
一旦你在 /etc/ansible/hosts 文件中输入了主机名或 IP 地址后 , 你就可以在剧本中更改 hosts 定义:
---- hosts: alltasks:- name: install packagesbecome: truebecome_user: rootdnf:state: presentname:- 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: alltasks:- name: install packagesbecome: truebecome_user: rootaction: >{{ 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 还能为你做些什么 。
via: opensource.com
作者: Seth Kenlon 选题: lujun9972 译者: MjSeven 校对: wxy
【如何使用 Ansible 安装软件】本文由 LCTT 原创编译 ,Linux中国 荣誉推出
点击“了解更多”可访问文内链接
推荐阅读
- Biogen将使用Apple Watch研究老年痴呆症的早期症状
- 大一非计算机专业的学生,如何利用寒假自学C语言
- Eyeware Beam使用iPhone追踪玩家在游戏中的眼睛运动
- 红米K40渲染图曝光:居中挖孔+后置四摄,这外观你觉得如何?
- 或使用天玑1000+芯片?荣耀V40已全渠道开启预约
- 苹果将推出使用mini LED屏的iPad Pro
- 手机能用多久?如果出现这3种征兆,说明“默认使用时间”已到
- 奋斗|该如何看待拼多多员工猝死:鼓励奋斗,也要保护好奋斗者
- 装机点不亮 如何简易排查硬件问题?
- 虾米音乐宣布关停!我的歌单如何导入QQ音乐、网易云音乐?