Say I use an IaaS cloud on which I installed Ubuntu 18.04 manually via the cloud company's OS installation tool and I ought to establish an all-ansible LAMP environment that will include some more stuff besides Apache, MySQL, and PHP (like `php-cli, php-curl php-mbstring, php-mcrypt, php-gd, Certbot, ssmtp and so forth) -- all installed with Ansible as well, of course.

So far so good, but what if after 4 or 8 or 12 years the particular Ubuntu rlease (18.04) becomes too old for a newer version of whatever software I installed with Ansible and also and constantly being upgraded by Ansible?

How Ansible itself deals with such a rare (?) conflict, does it usually do some "rollback" to a "previous state" (just like an autosave and autoload for video games) and also stops to work (and maybe also prompts me) until I myself decide if I want to remove this particular software (or softwares) that cause trouble and then start the Ansible process again?

2 Answers 2


Ansible is at its core a programming language - a meta programming language written in python compiling itself into python and shell scripts mostly. It will do whatever you program it to do. It all depends on how your roles and playbooks are written. It certainly can be done - almost anything can be done - your install roles could track dependencies on package versions or ranges, obviously those might need to be updated over the years, but you can be safe if you put the work into it.

It is probably unreasonable to plan further than the End of Life of the LTS distribution though, as you will fail to receive new security updates and that instantly invalidates the system as production ready.


If you try to install an unsupported version of a package using Ansible, it will do the exact same thing as if you tried to install it yourself. Ansible is merely automating your actions - it doesn't add in special packages or versions or anything.

  • With the exception of say apt module with state=latest and/or roles from Ansible Galaxy, right?...
    – user5176
    Dec 18, 2018 at 7:48
  • What do you think the apt module is doing that the apt-get upgrade command wouldn't do?
    – chicks
    Dec 19, 2018 at 13:56
  • 1
    @JohnDoea No, that is still just automation of commands you would run. apt with state=latest is going to run the appropriate apt command to install or update the specified package - from your configured repos. It's not going to go search the internet for the latest tarball of the package and download and compile and install it (I mean, unless you write the tasks to do that). Dec 19, 2018 at 18:58
  • @chicks I now know there's no difference if state=latest is given.
    – user5176
    Dec 20, 2018 at 7:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.