'Installing specific apt version with ansible
I used an ansible playbook to install git:
---
- hosts: "www"
tasks:
- name: Update apt repo
apt: update_cache=yes
- name: Install dependencies
apt: name={{item}} state=installed
with_items:
- git
I checked the installed versions:
$ git --version
git version 1.9.1
But adding these to the ansible playbook: apt: name=git=1.9.1 state=installed
and rerunning results in the following error:
fatal: [46.101.94.110]: FAILED! => {"cache_update_time": 0, "cache_updated": false, "changed": false, "failed": true, "msg": "'/usr/bin/apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" install 'git=1.9.1'' failed: E: Version '1.9.1' for 'git' was not found\n", "stderr": "E: Version '1.9.1' for 'git' was not found\n", "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\n", "stdout_lines": ["Reading package lists...", "Building dependency tree...", "Reading state information..."]}
Solution 1:[1]
Git package with that specific version is as follows:
git=1:1.9.1-1ubuntu0.2
Your task should be:
apt: name=git=1:1.9.1-1ubuntu0.2 state=present
Regards
Solution 2:[2]
You don't need two tasks for updating cache and installing. Your playbook should look like:
---
- hosts: "www"
tasks:
- name: Install dependencies
apt:
name:
- git=1:1.9.1-1ubuntu0.2
state: installed
update_cache: yes
note that Ansible supports wildcarding so you don't necessarily need the full version string
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | badbishop |
Solution 2 |