当前位置:  开发笔记 > 编程语言 > 正文

Amazon Linux机器-Ansible ansible_distribution *变量主要发行版本

如何解决《AmazonLinux机器-Ansibleansible_distribution*变量主要发行版本》经验,为你挑选了1个好方法。

我正在使用Ansible:2.2.0.0

我有3台机器:

两个无聊的盒子(一个CentOS 7.x和一个Ubuntu 14.04)和
第三个盒子是EC2 Amazon Linux实例(Amazon Linux AMI版本2016.03)。

在这些框中,我正在运行以下命令并获得有效的输出(如下所示):

CentOS的

[vagrant@myvagrant ~] $ ansible all -m setup -i "`hostname`," --connection=local -a "filter=ansible_distribution*"
myvagrant | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "CentOS", 
        "ansible_distribution_major_version": "7", 
        "ansible_distribution_release": "Core", 
        "ansible_distribution_version": "7.2.1511"
    }, 
    "changed": false
}

Ubuntu的

vagrant@myubuntuvagrant:~$ ansible all -m setup -i "`hostname`," --connection=local -a "filter=ansible_distribution*"
myubuntuvagrant | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "Ubuntu", 
        "ansible_distribution_major_version": "14", 
        "ansible_distribution_release": "trusty", 
        "ansible_distribution_version": "14.04"
    }, 
    "changed": false
}
vagrant@myubuntuvagrant:~$ 

Amazon EC2实例/盒子

$ ansible all -m setup -i "`hostname`," --connection=local -a "filter=ansible_distribution*"
ip-10-200-1-145 | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "Amazon", 
        "ansible_distribution_major_version": "NA", 
        "ansible_distribution_release": "NA", 
        "ansible_distribution_version": "2016.03"
    }, 
    "changed": false
}

在我的Ansible剧本/ templates / yum.repos.d.file.j2文件之一中,我正在使用{{ ansible_distribution_major_version }}变量,并将其值在.repo文件中仅用baseurl作CentOS / Amazon EC2实例的属性值,即。when: ansible_distribution == "CentOS" or ansible_distribution == "Amazon"

baseurl=https://packagecloud.io/company/packages/telegraf/el/6/$basearch

PS:我不是在寻找Ubuntu(因为那部分在我的剧本中使用apt-get既可以设置apt-get源列表,又可以安装软件包,效果很好)。



我的问题:
为什么ansible facter变量没有ansible_distribution_major_release为Amazon EC2实例的版本设置任何有效的有效值?我可以使用什么facter_*/ ansible_*可以在所有3种操作系统类型中使用。

PS:当我在其中使用baseurl../el/6/..时(在yum.repos.d / target-pacakge.amazon-os.repo文件中),yum install可以很好地在Amazon linux机器上安装软件包(尽管可以../el/7/..在baseurl中使用)没用)。有关更多详细信息,请参见此处:https : //packagecloud.io/docs#os_distro_version(在标题下:Enterprise Linux(CentOS,RedHat,Amazon Linux)



1> Vikas Aggarw..:

如果使用以下set_fact,则不必在所有三种OS类型的任务中专门处理ansible_distribution_major_version

pre_tasks:
- set_fact: ansible_distribution_major_version=6
  when: ansible_distribution == "Amazon" and ansible_distribution_major_version == "NA"

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有