As part of my deploy script I wanna check which operating system I am deploying to. I used ansible localhost -m setup and as they say in the documentation this outputs a lot. Is there a way I can just access the ubuntu distro I am using? Ideally I want to find if the box is running Trusty or Precise
Asked
Active
Viewed 1.9k times
23
ford prefect
- 347
- 1
- 3
- 10
-
What about lsb_release? – Xen2050 Dec 17 '15 at 13:58
-
1`cat /etc/*release` is what I use, for any Linux system. – qasdfdsaq Dec 17 '15 at 15:34
-
@Xen2050 In this case I think it makes more sense to use ansible's built in functionality which probably calls what you both mention to set the fact – ford prefect Dec 17 '15 at 16:06
1 Answers
35
ansible_distribution_release
The fact is called ansible_distribution_release. If you are running Ubuntu 14.04, the fact would read "trusty".
Two other example values: ansible_distribution_release would be "xenial" for Ubuntu 16.04 and "precise" for Ubuntu 12.04.
ansible_distribution_version
You can also look at the fact ansible_distribution_version. For Ubuntu 14.04, you would see "14.04".
Two other example values: ansible_distribution_version would be "16.04" for Ubuntu 16.04 and "12.04" for Ubuntu 12.04.
Here is an example task that you could put into a playbook to install the build-essential package only on Ubuntu 14.04:
- name: Install build-essential for Ubuntu 14.04 only
apt: name=build-essential state=present
when: ansible_distribution_version == "14.04"
Deltik
- 19,353
- 17
- 73
- 114