覆盖类似于Puppet和Facter覆盖的Ansible事实

时间:2016-09-15 17:32:38

标签: ansible ansible-facts

注意:Puppet到Ansible迁移评估的一部分。 Ansible noob。

CentOS 7返回operatingsystemrelease(木偶)或ansible_distribution_version(ansible)为7.2.1511而不是7.2。所以在puppet中我们使用以下hack。

# Hack for CentOS 7. operatingsystemrelease includes third part of release version eg 7.2.1511
if [[ "$(facter operatingsystem)" == "CentOS" && "$(facter operatingsystemmajrelease)" == "7" ]]
then
    export FACTER_operatingsystemrelease=$(facter operatingsystemmajrelease).$(facter --json os | grep minor | awk '{ print $2 }' | tr '",' ' ' | sed -e 's/ //g')
fi

设置环境变量FACTER_operatingsystemrelease会覆盖operatingsystemrelease值。这只需要CentOS 7才能实现.CentOS 6工作正常。

在Ansible中使这个工作的等效方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以将事实覆盖为任何其他变量:

set_fact: ansible_distribution_version="{{ ansible_distribution_version | regex_replace('7\.2\.\d+','7.2') }}"
when: ansible_distribution == 'CentOS'