配置文件变化
导致读不到 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}