yum – 基于事实的参数化ansible命令,怎么做?

前端之家收集整理的这篇文章主要介绍了yum – 基于事实的参数化ansible命令,怎么做?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在更新我的一些ansible playbooks以运行最新版本的Fedora,现在默认使用dnf.

由于我的大部分剧本也应该在CentOS上运行,我希望我的脚本在运行CentOS机器时运行ansible yum命令,并在针对Fedora运行时运行dnf命令(Ansible 1.9中的新命令),但使用其余部分当前的角色.

换句话说,我想编写一个可以智能选择righ命令的操作(类似于):

- name: Install zsh
  sudo: yes
  yum|dnf: name=zsh state=latest

…而不是复制粘贴相同的命令两次,在两个中的一个中用dnf替换yum,然后实现一些逻辑,说明要运行两个不同的角色之一:

- name: Install zsh (yum version)
  sudo: yes
  yum: name=zsh state=latest

- name: Install zsh (dnf version)
  sudo: yes
  dnf: name=zsh state=latest

在有人赶到它之前:我知道yum在最新的Fedora中使用dnf的别名,并且我可以直接离开剧本……我的问题不是关于编写CentOS / Fedora兼容的剧本,我的问题是关于根据目标环境为相同参数选择不同的命令

Ansible 2现在有一个通用包管理器:

http://docs.ansible.com/ansible/package_module.html

对于旧版本,您可以通过事实关联包管理器

- name: Install packages
  with_items: package_list
  action: "{{ ansible_pkg_mgr }} state=installed name={{ item }}"

现在你需要的是一些逻辑,它将ansible_pkg_mgr设置为apt或yum等,并且当逻辑消失时.

看起来像Ansible are also working on doing what you want in a future module.

猜你在找的Bash相关文章