配置文件变化

导致读不到 inventory,同时使用两种格式可以兼容各个版本,如下

cat .ansible.cfg[defaults]# inventory control group_vars# < 2.8hostfile       = xxx# >=2.8inventory      = xxx

ansible 内置变量变化

ansible_distribution_version 在 centos 上在 2.7.11 和 2.8.1 结果不同,导致相同的 playbook 在升级 ansible 后无法正常运行

观察 ubuntu 和 centos 的相关变量如下,最终采用ansible_lsb.release来代替ansible_distribution_version ,可以加绒Ubuntu 和 centos 中ansible 的各个版本。

# on ubuntu trusty## ansible 1.5.4root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_os_family"localhost | success >> {    "ansible_facts": {        "ansible_os_family": "Debian"    },    "changed": false}root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_distribution_version"localhost | SUCCESS => {    "ansible_facts": {        "ansible_distribution_version": "14.04"    },    "changed": false}root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_lsb"localhost | success >> {    "ansible_facts": {        "ansible_lsb": {            "codename": "trusty",            "description": "Ubuntu 14.04.5 LTS",            "id": "Ubuntu",            "major_release": "14",            "release": "14.04"        }    },    "changed": false}## ansible 2.8.1root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_os_family"localhost | SUCCESS => {    "ansible_facts": {        "ansible_os_family": "Debian"    },    "changed": false}root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_distribution_version"localhost | SUCCESS => {    "ansible_facts": {        "ansible_distribution_version": "14.04"    },    "changed": false}root@iZhp33qecbruyuw1awh6rfZ:~# ansible localhost -m setup -a "filter=ansible_lsb"localhost | success >> {    "ansible_facts": {        "ansible_lsb": {            "codename": "trusty",            "description": "Ubuntu 14.04.5 LTS",            "id": "Ubuntu",            "major_release": "14",            "release": "14.04"        }    },    "changed": false}# on centos 7.5## ansible 2.7.11[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_os_family"localhost | SUCCESS => {    "ansible_facts": {        "ansible_os_family": "RedHat"    },    "changed": false}[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_distribution_version"localhost | SUCCESS => {    "ansible_facts": {        "ansible_distribution_version": "7.5.1804"    },    "changed": false}[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_lsb"localhost | SUCCESS => {    "ansible_facts": {        "ansible_lsb": {            "codename": "Core",            "description": "CentOS Linux release 7.5.1804 (Core)",            "id": "CentOS",            "major_release": "7",            "release": "7.5.1804"        }    },    "changed": false}## ansible 2.8.1[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_os_family"localhost | SUCCESS => {    "ansible_facts": {        "ansible_os_family": "RedHat",        "discovered_interpreter_python": "/usr/bin/python"    },    "changed": false}[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_distribution_version"localhost | SUCCESS => {    "ansible_facts": {        "ansible_distribution_version": "7"    },    "changed": false}[root@node11 ~]# ansible localhost -m setup -a "filter=ansible_lsb"localhost | SUCCESS => {    "ansible_facts": {        "ansible_lsb": {            "codename": "Core",            "description": "CentOS Linux release 7.5.1804 (Core)",            "id": "CentOS",            "major_release": "7",            "release": "7.5.1804"        }    },    "changed": false}